23#if defined(DEBUG) || defined(WARNINGMSG)
53 double lambda)
const {
72 double eps = 8*std::numeric_limits<double>::min();
73 for (
int j = 0; j < nvar; j++) {
74 h(j,j) *= (1. + lambda);
76 if (
fabs(
h(j,j) ) < eps ) {
90 MN_INFO_MSG(
"FumiliErrorUpdator inversion fails; return diagonal matrix.");
92 for(
unsigned int i = 0; i <
h.Nrow(); i++) {
virtual MinimumError Update(const MinimumState &fMinimumState, const MinimumParameters &fMinimumParameters, const GradientCalculator &fGradientCalculator, double lambda) const
Member function that calculates the Error matrix (or the Hessian matrix containing the (approximate) ...
const MnAlgebraicSymMatrix & Hessian() const
interface class for gradient calculators
Class describing a symmetric matrix of size n.
unsigned int size() const
MinimumError keeps the inv.
const MnAlgebraicVector & Vec() const
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
int Invert(LASymMatrix &)
double sum_of_elements(const LASymMatrix &)