13#include "MantidCurveFitting/DllConfig.h"
15#include <gsl/gsl_multifit_nlin.h>
16#include <gsl/gsl_multimin.h>
19namespace CurveFitting {
20namespace FuncMinimisers {
36 bool iterate(
size_t)
override;
38 double costFunctionVal()
override;
44 void setStopGradient(
const double value);
69 static double fun(
const gsl_vector *x,
void *params);
71 static void dfun(
const gsl_vector *x,
void *params, gsl_vector *g);
73 static void fundfun(
const gsl_vector *x,
void *params,
double *f, gsl_vector *g);
double value
The value of the point.
An interface for function minimizers.
A wrapper around the GSL functions implementing a minimizer using derivatives.
gsl_multimin_function_fdf m_gslMultiminContainer
GSL container.
double m_stopGradient
the norm of the gradient at which iterations stop
void calCovarianceMatrix(gsl_matrix *covar, double epsrel=0.0001)
Calculate the covariance matrix.
gsl_multimin_fdfminimizer * m_gslSolver
pointer to the GSL solver doing the work
double m_tolerance
Tolerance.
virtual const gsl_multimin_fdfminimizer_type * getGSLMinimizerType()=0
Return a concrete type to initialize m_gslSolver with.
API::ICostFunction_sptr m_costFunction
Function to minimize.
gsl_vector * m_x
GSL vector with function parameters.
double m_stepSize
First trial step size.
std::shared_ptr< ICostFunction > ICostFunction_sptr
define a shared pointer to a cost function
Helper class which provides the Collimation Length for SANS instruments.