#ifndef ROOT_Math_GSLRootFinder
#define ROOT_Math_GSLRootFinder
#ifndef ROOT_Math_GSLFunctionAdapter
#include "Math/GSLFunctionAdapter.h"
#endif
#ifndef ROOT_Math_IFunctionfwd
#include "Math/IFunctionfwd.h"
#endif
#include <iostream>
namespace ROOT {
namespace Math {
class GSLRootFSolver;
class GSLFunctionWrapper;
class GSLRootFinder {
public:
GSLRootFinder();
virtual ~GSLRootFinder();
private:
GSLRootFinder(const GSLRootFinder &);
GSLRootFinder & operator = (const GSLRootFinder &);
public:
#if defined(__MAKECINT__) || defined(G__DICTIONARY)
void SetFunction( const IGradFunction & , double ) {
std::cerr <<"GSLRootFinder - Error : this method must be used with a Root Finder algorithm using derivatives" << std::endl;
}
#endif
void SetFunction( const IGenFunction & f, double xlow, double xup);
typedef double ( * GSLFuncPointer ) ( double, void *);
void SetFunction( GSLFuncPointer f, void * params, double xlow, double xup);
int Iterate();
double Root() const;
int Solve( int maxIter = 100, double absTol = 1E-3, double relTol = 1E-6);
int Iterations() const {
return fIter;
}
const char * Name() const;
protected:
void SetSolver ( GSLRootFSolver * s );
void FreeSolver();
private:
GSLFunctionWrapper * fFunction;
GSLRootFSolver * fS;
protected:
private:
double fRoot;
double fXlow;
double fXup;
int fIter;
};
}
}
#endif /* ROOT_Math_GSLRootFinder */
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.