16 #ifndef _BFGSFitter_H_
17 #define _BFGSFitter_H_
42 std::vector< std::vector< double > >
m_M;
99 virtual int calcCovariance ( std::vector< std::vector < double > >& cov );
104 double wolfeStep(
const std::vector< double > & x0,
105 const std::vector< double > & p )
const;
110 double zoom(
const std::vector< double >& x0,
111 const std::vector< double >& p,
112 double phi0,
double dphi0,
113 double Alphalo,
double Alphahi )
const;
116 double interpolate(
const std::vector< double >& x0,
117 const std::vector< double >& p,
118 double Alphaim,
double Alphai )
const;
121 double function(
const std::vector< double > & x )
const;
124 std::vector< double > gradient(
const std::vector< double > & x )
const;
128 double gradp(
const std::vector< double > & u,
129 const std::vector< double > & p )
const;
132 const std::vector< double > & initIter()
const;
135 int setInitIter(
const std::vector< double > & xinit );
141 double iterParam( std::string name );
147 int setIterParam( std::string name,
double value );
152 virtual bool calcBestFit();
158 #endif // _BFGSFitter_H_
#define MDL_HIPPOPLOT_API
double m_alpha_max
Maximum step length to try, suggested value by Nocedal and Wright is alpha_max = 4.
double m_alpha1
First step length to try and this must be less than Alpha_max.
The base class for fitters.
double m_proj_cutoff
The projection cut-off parameter.
numeric::array clone(numeric::array arr)
The minimization algorithm used is a complementary quasi newton algorithm, with BFGS (Broyden-Fletche...
hippodraw::Fitter class interface
std::vector< std::vector< double > > m_M
The inverse of the quasi-Hessian.
double m_grad_cutoff
The gradient cut-off parameter.
double m_step_cutoff
The step cut-off parameter.
std::map< std::string, double * > m_iter_params
Map of the various iteration parameters to their name.
std::vector< double > m_xinit
The initial value to start the iteration from.