15#include <gsl/gsl_multifit_nlin.h>
18namespace CurveFitting {
19namespace FuncMinimisers {
34 std::string
name()
const override {
return "Levenberg-Marquardt"; }
39 bool iterate(
size_t)
override;
41 double costFunctionVal()
override;
44 void calCovarianceMatrix(
double epsrel, gsl_matrix *covar);
An interface for function minimizers.
Implementing Levenberg-Marquardt by wrapping the IFuncMinimizer interface around the GSL implementati...
double m_absError
Absolute error required for parameters.
std::unique_ptr< GSL_FitData > m_data
GSL data container.
double m_relError
Relative error required for parameters.
gsl_multifit_fdfsolver * m_gslSolver
pointer to the GSL solver doing the work
gsl_multifit_function_fdf gslContainer
GSL minimizer container.
std::string name() const override
Overloading base class methods Name of the minimizer.
API::IFunction_sptr m_function
Stored to access IFunction interface in iterate()
std::shared_ptr< IFunction > IFunction_sptr
shared pointer to the function base class
std::shared_ptr< ICostFunction > ICostFunction_sptr
define a shared pointer to a cost function
Helper class which provides the Collimation Length for SANS instruments.