31#ifndef ROOT_Math_Polynomial
32#define ROOT_Math_Polynomial
113 const std::vector<std::complex <double> > &
FindRoots();
128 const std::vector<std::complex <double> > &
FindNumRoots();
143 void FdF (
double x,
double &
f,
double & df)
const {
151 double DoEvalPar (
double x,
const double * p )
const ;
166 std::vector< std::complex < double > >
fRoots;
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
Specialized Gradient interface(abstract class) for one dimensional functions It provides a method to ...
double Derivative(double x) const
Return the derivative of the function at a point x Use the private method DoDerivative.
Base template class for all Parametric Functions.
Parametric Function class describing polynomials of order n.
IGenFunction * Clone() const
Clone a function.
void FdF(double x, double &f, double &df) const
Optimized method to evaluate at the same time the function value and derivative at a point x.
double DoDerivative(double x) const
function to evaluate the derivative with respect each coordinate.
const std::vector< std::complex< double > > & FindRoots()
Find the polynomial roots.
std::vector< std::complex< double > > fRoots
Polynomial(unsigned int n=0)
Construct a Polynomial function of order n.
ParamFunction< IParamGradFunction > ParFunc
unsigned int Order() const
Order of Polynomial.
double DoParameterDerivative(double x, const double *p, unsigned int ipar) const
Evaluate the gradient, to be implemented by the derived classes.
double DoEvalPar(double x, const double *p) const
Implementation of the evaluation function using the x value and the parameters.
std::vector< double > FindRealRoots()
Find the only the real polynomial roots.
const std::vector< std::complex< double > > & FindNumRoots()
Find the polynomial roots using always an iterative numerical methods The numerical method used is fr...
std::vector< double > fDerived_params
Namespace for new Math classes and functions.