31#ifndef ROOT_Math_Polynomial
32#define ROOT_Math_Polynomial
119 const std::vector<std::complex <double> > &
FindRoots();
132 const std::vector<std::complex <double> > &
FindNumRoots();
147 void FdF (
double x,
double &
f,
double & df)
const override {
155 double DoEvalPar (
double x,
const double *
p )
const override ;
170 std::vector< std::complex < double > >
fRoots;
winID h TVirtualViewer3D TVirtualGLPainter p
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
Interface (abstract class) for one-dimensional functions providing a gradient calculation.
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.
const std::vector< std::complex< double > > & FindRoots()
Find the polynomial roots.
std::vector< std::complex< double > > fRoots
double DoEvalPar(double x, const double *p) const override
Implementation of the evaluation function using the x value and the parameters.
ParamFunction< IParamGradFunction > ParFunc
unsigned int Order() const
Order of Polynomial.
IGenFunction * Clone() const override
Clone a function.
double DoParameterDerivative(double x, const double *p, unsigned int ipar) const override
Evaluate the gradient, to be implemented by the derived classes.
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...
double DoDerivative(double x) const override
Function to evaluate the derivative with respect each coordinate. To be implemented by the derived cl...
std::vector< double > fDerived_params
void FdF(double x, double &f, double &df) const override
Optimized method to evaluate at the same time the function value and derivative at a point x.
Namespace for new Math classes and functions.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...