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++) {
int Invert(LASymMatrix &)
Namespace for new ROOT classes and functions.
const MnAlgebraicVector & Vec() const
double sum_of_elements(const LASymMatrix &)
Class describing a symmetric matrix of size n.
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
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
unsigned int Nrow() const
unsigned int size() const
const MinimumError & Error() const
MinimumError keeps the inv.
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
interface class for gradient calculators
const MnAlgebraicSymMatrix & InvHessian() const