with a constrained conjugate gradient algorithm adapted from GMM++/ITL. This algorithm is needed for Step.