/usr/include/root/Math/BrentMethods.h is in libroot-math-mathcore-dev 5.34.19+dfsg-1.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #ifndef ROOT_Math_BrentMethods
#define ROOT_Math_BrentMethods
#ifndef ROOT_Math_IFunctionfwd
#include "Math/IFunctionfwd.h"
#endif
namespace ROOT {
namespace Math {
namespace BrentMethods {
/**
Grid search implementation, used to bracket the minimum and later
use Brent's method with the bracketed interval
The step of the search is set to (xmax-xmin)/fNpx
type: 0-returns MinimumX
1-returns Minimum
2-returns MaximumX
3-returns Maximum
4-returns X corresponding to fy
*/
double MinimStep(const IGenFunction* f, int type, double &xmin, double &xmax, double fy, int npx = 100, bool useLog = false);
/**
Finds a minimum of a function, if the function is unimodal between xmin and xmax
This method uses a combination of golden section search and parabolic interpolation
Details about convergence and properties of this algorithm can be
found in the book by R.P.Brent "Algorithms for Minimization Without Derivatives"
or in the "Numerical Recipes", chapter 10.2
convergence is reached using tolerance = 2 *( epsrel * abs(x) + epsabs)
type: 0-returns MinimumX
1-returns Minimum
2-returns MaximumX
3-returns Maximum
4-returns X corresponding to fy
if ok=true the method has converged.
Maxiter returns the actual number of iteration performed
*/
double MinimBrent(const IGenFunction* f, int type, double &xmin, double &xmax, double xmiddle, double fy, bool &ok, int &niter, double epsabs = 1.E-8, double epsrel = 1.E-10, int maxiter = 100 );
} // end namespace BrentMethods
} // end namespace Math
} // ned namespace ROOT
#endif
|