40 double MultiNumGradFunction::fgEps = 0.001;
42 double MultiNumGradFunction::DoDerivative (
const double * x,
unsigned int icoord )
const {
46 static double kPrecision = std::sqrt ( std::numeric_limits<double>::epsilon() );
47 double x0 = std::abs(x[icoord]);
50 double step = (x0>0) ? std::max( fgEps* x0, 8.0*kPrecision*(x0 + kPrecision) ) : kPrecision;
51 return ROOT::Math::Derivator::Eval(*fFunc, x, icoord, step);
54 void MultiNumGradFunction::SetDerivPrecision(
double eps) { fgEps = eps; }
56 double MultiNumGradFunction::GetDerivPrecision( ) {
return fgEps; }