public DoubleMatrix2D calInverseJacobian(final DoubleMatrix1D sigma, final Function1D<DoubleMatrix1D, DoubleMatrix2D> jac, final DoubleMatrix1D originalSolution) {
final DoubleMatrix2D jacobian = getJacobian(jac, sigma, originalSolution);
final DoubleMatrix2D a = getModifiedCurvatureMatrix(jacobian, 0.0);
final DoubleMatrix2D bT = getBTranspose(jacobian, sigma);
final DecompositionResult decRes = _decomposition.evaluate(a);
return decRes.solve(bT);
}
private LeastSquareResults finish(final double newChiSqr, final DoubleMatrix2D jacobian, final DoubleMatrix1D newTheta, final DoubleMatrix1D sigma) {
final DoubleMatrix2D alpha = getModifiedCurvatureMatrix(jacobian, 0.0);
final DecompositionResult decmp = _decomposition.evaluate(alpha);