39 #include "gsl/gsl_roots.h" 40 #include "gsl/gsl_errno.h" 50 fRoot(0), fPrevRoot(0),
51 fIter(0), fStatus(-1),
71 if (
this == &rhs)
return *
this;
111 MATH_ERROR_MSG(
"GSLRootFinderDeriv::Iterate",
" Function is not valid");
115 MATH_ERROR_MSG(
"GSLRootFinderDeriv::Iterate",
" Estimated point is not valid");
120 int status = gsl_root_fdfsolver_iterate(
fS->
Solver());
134 return gsl_root_fdfsolver_name(
fS->
Solver() );
148 MATH_ERROR_MSG(
"GSLRootFinderDeriv::Solve",
"error returned when performing an iteration");
162 while (status == GSL_CONTINUE && iter < maxIter);
164 if (status == GSL_CONTINUE) {
166 MATH_INFO_MSGVAL(
"GSLRootFinderDeriv::Solve",
"exceeded max iterations, reached tolerance is not sufficient",tol);
int Iterate()
iterate (return GSL_SUCCESS in case of successful iteration)
Namespace for new ROOT classes and functions.
bool IsValid()
check if function is valid (has been set)
double Root() const
Returns the previously calculated root.
gsl_root_fdfsolver * Solver() const
bool Solve(int maxIter=100, double absTol=1E-8, double relTol=1E-10)
Find the root (return false if failed)
gsl_function_fdf * GetFunc()
class to wrap a gsl_function_fdf (with derivatives)
void SetFdfPointer(GSLFdfPointer f)
#define MATH_INFO_MSGVAL(loc, str, x)
GSLFunctionDerivWrapper * fFunction
void SetSolver(GSLRootFdFSolver *s)
Interface for finding function roots of one-dimensional functions.
double(* GSLFuncPointer)(double, void *)
bool SetFunction(const IGradFunction &f, double xstart)
Sets the function for algorithms using derivatives.
GSLRootFinderDeriv & operator=(const GSLRootFinderDeriv &)
void SetFuncPointer(GSLFuncPointer f)
void SetDerivPointer(GSLFuncPointer f)
Root-Finder with derivatives implementation class using GSL.
int TestDelta(double x1, double x0, double epsAbs, double epsRel)
Base class for GSL Root-Finding algorithms for one dimensional functions which use function derivativ...
Namespace for new Math classes and functions.
void(* GSLFdFPointer)(double, void *, double *, double *)
const char * Name() const
Return name of root finder algorithm.
virtual ~GSLRootFinderDeriv()
#define MATH_ERROR_MSG(loc, str)