Mantid
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
Mantid::CurveFitting::CostFunctions::CostFuncPoisson Class Reference

CostFuncPoisson : Implements a cost function for fitting applications using a Poisson measure. More...

#include <CostFuncPoisson.h>

Inheritance diagram for Mantid::CurveFitting::CostFunctions::CostFuncPoisson:
Mantid::CurveFitting::CostFunctions::CostFuncFitting Mantid::API::ICostFunction

Public Member Functions

void addVal (API::FunctionDomain_sptr domain, API::FunctionValues_sptr values) const override
 Add a contribution to the cost function value from the fitting function evaluated on a particular domain. More...
 
void addValDerivHessian (API::IFunction_sptr function, API::FunctionDomain_sptr domain, API::FunctionValues_sptr values, bool evalDeriv=true, bool evalHessian=true) const override
 Update the cost function, derivatives and hessian by adding values calculated on a domain. More...
 
 CostFuncPoisson ()
 Constructor. More...
 
virtual std::string name () const override
 Get name of minimizer. More...
 
virtual std::string shortName () const override
 Get short name of minimizer - useful for say labels in guis. More...
 
- Public Member Functions inherited from Mantid::CurveFitting::CostFunctions::CostFuncFitting
void applyTies ()
 Apply ties in the fitting function. More...
 
virtual void calCovarianceMatrix (EigenMatrix &covar, double epsrel=1e-8)
 Calculates covariance matrix. More...
 
virtual void calFittingErrors (const EigenMatrix &covar, double chi2)
 Calculate fitting errors. More...
 
 CostFuncFitting ()
 Constructor. More...
 
virtual void deriv (std::vector< double > &der) const override
 Calculate the derivatives of the cost function. More...
 
void drop ()
 Discard saved parameters, derivatives and hessian. More...
 
const EigenVectorgetDeriv () const
 Return cached or calculate the drivatives. More...
 
API::FunctionDomain_sptr getDomain () const
 Get the domain the fitting function is applied to. More...
 
virtual API::IFunction_sptr getFittingFunction () const
 Get fitting function. More...
 
const EigenMatrixgetHessian () const
 Return cached or calculate the Hessian. More...
 
double getParameter (size_t i) const override
 Get i-th parameter. More...
 
void getParameters (EigenVector &params) const
 Get all parameters into a GSLVector. More...
 
API::FunctionValues_sptr getValues () const
 Get FunctionValues where function values are stored. More...
 
size_t nParams () const override
 Number of parameters. More...
 
std::string parameterName (size_t i) const
 Get name of i-th parameter. More...
 
void pop ()
 Restore saved parameters, derivatives and hessian. More...
 
void push ()
 Save current parameters, derivatives and hessian. More...
 
void reset () const
 Reset the fitting function (neccessary if parameters get fixed/unfixed) More...
 
virtual void setFittingFunction (API::IFunction_sptr function, API::FunctionDomain_sptr domain, API::FunctionValues_sptr values)
 Set fitting function. More...
 
void setParameter (size_t i, const double &value) override
 Set i-th parameter. More...
 
void setParameters (const EigenVector &params)
 Set all parameters. More...
 
virtual double val () const override
 Calculate value of cost function. More...
 
virtual double valAndDeriv (std::vector< double > &der) const override
 Calculate the value and the derivatives of the cost function. More...
 
virtual double valDerivHessian (bool evalDeriv=true, bool evalHessian=true) const
 Calculate the value, the first and the second derivatives of the cost function. More...
 
- Public Member Functions inherited from Mantid::API::ICostFunction
virtual void deriv (std::vector< double > &der) const =0
 Calculate the derivatives of the cost function. More...
 
virtual double getParameter (size_t i) const =0
 Get i-th parameter. More...
 
virtual std::string name () const =0
 Get name of minimizer. More...
 
virtual size_t nParams () const =0
 Number of parameters. More...
 
virtual void setParameter (size_t i, const double &value)=0
 Set i-th parameter. More...
 
virtual std::string shortName () const
 Get short name of minimizer - useful for say labels in guis. More...
 
virtual double val () const =0
 Calculate value of cost function. More...
 
virtual double valAndDeriv (std::vector< double > &der) const =0
 Calculate the value and the derivatives of the cost function. More...
 
virtual ~ICostFunction ()=default
 Virtual destructor. More...
 

Private Member Functions

void calculateDerivative (API::IFunction &function, const API::FunctionDomain &domain, API::FunctionValues &values) const
 Calculates the derivative for the addValDerivHessian method. More...
 
void calculateHessian (API::IFunction &function, const API::FunctionDomain &domain, const API::FunctionValues &values) const
 Calculates the Hessian matrix for the addValDerivHessian method. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Mantid::CurveFitting::CostFunctions::CostFuncFitting
virtual void addVal (API::FunctionDomain_sptr domain, API::FunctionValues_sptr values) const =0
 Increment to the cost function by evaluating it on a domain. More...
 
virtual void addValDerivHessian (API::IFunction_sptr function, API::FunctionDomain_sptr domain, API::FunctionValues_sptr values, bool evalDeriv=true, bool evalHessian=true) const =0
 Increments the cost function and its derivatives by evaluating them on a domain. More...
 
virtual void calActiveCovarianceMatrix (EigenMatrix &covar, double epsrel=1e-8)
 Calculates covariance matrix for fitting function's active parameters. More...
 
void calTransformationMatrixNumerically (EigenMatrix &tm)
 Calculate the transformation matrix T by numeric differentiation. More...
 
void checkValidity () const
 Throw a runtime_error if function is invalid. More...
 
bool isValid () const
 Is the function set and valid? More...
 
void setDirty ()
 Set all dirty flags. More...
 
- Protected Attributes inherited from Mantid::CurveFitting::CostFunctions::CostFuncFitting
EigenVector m_der
 
bool m_dirtyDeriv
 dirty derivatives flag More...
 
bool m_dirtyHessian
 dirty hessian flag More...
 
bool m_dirtyVal
 dirty value flag More...
 
API::FunctionDomain_sptr m_domain
 Shared pointer to the function domain. More...
 
API::IFunction_sptr m_function
 Shared pointer to the fitting function. More...
 
EigenMatrix m_hessian
 
bool m_includePenalty
 Flag to include constraint in cost function value. More...
 
std::vector< size_t > m_indexMap
 maps the cost function's parameters to the ones of the fitting function. More...
 
size_t m_numberFunParams
 Number of all parameters in the fitting function. More...
 
bool m_pushed
 
EigenVector m_pushedParams
 
double m_pushedValue
 
double m_value
 
API::FunctionValues_sptr m_values
 Shared poinetr to the function values. More...
 

Detailed Description

CostFuncPoisson : Implements a cost function for fitting applications using a Poisson measure.

Definition at line 20 of file CostFuncPoisson.h.

Constructor & Destructor Documentation

◆ CostFuncPoisson()

Mantid::CurveFitting::CostFunctions::CostFuncPoisson::CostFuncPoisson ( )

Constructor.

Definition at line 43 of file CostFuncPoisson.cpp.

Member Function Documentation

◆ addVal()

void Mantid::CurveFitting::CostFunctions::CostFuncPoisson::addVal ( API::FunctionDomain_sptr  domain,
API::FunctionValues_sptr  values 
) const
overridevirtual

Add a contribution to the cost function value from the fitting function evaluated on a particular domain.

Parameters
domain:: A domain
values:: Values

Implements Mantid::CurveFitting::CostFunctions::CostFuncFitting.

Definition at line 51 of file CostFuncPoisson.cpp.

References Mantid::CurveFitting::CostFunctions::CostFuncFitting::m_function, Mantid::CurveFitting::CostFunctions::CostFuncFitting::m_value, and PARALLEL_ATOMIC.

◆ addValDerivHessian()

void Mantid::CurveFitting::CostFunctions::CostFuncPoisson::addValDerivHessian ( API::IFunction_sptr  function,
API::FunctionDomain_sptr  domain,
API::FunctionValues_sptr  values,
bool  evalDeriv = true,
bool  evalHessian = true 
) const
overridevirtual

Update the cost function, derivatives and hessian by adding values calculated on a domain.

Parameters
function:: Function to use to calculate the value and the derivatives
domain:: The domain.
values:: The fit function values
evalDeriv:: Flag to evaluate the derivatives
evalHessian:: Flag to evaluate the Hessian

Implements Mantid::CurveFitting::CostFunctions::CostFuncFitting.

Definition at line 89 of file CostFuncPoisson.cpp.

References calculateDerivative(), calculateHessian(), Mantid::CurveFitting::CostFunctions::CostFuncFitting::m_der, Mantid::CurveFitting::CostFunctions::CostFuncFitting::m_hessian, Mantid::CurveFitting::CostFunctions::CostFuncFitting::nParams(), Mantid::CurveFitting::EigenVector::resize(), Mantid::CurveFitting::EigenMatrix::resize(), Mantid::CurveFitting::EigenMatrix::zero(), and Mantid::CurveFitting::EigenVector::zero().

◆ calculateDerivative()

void Mantid::CurveFitting::CostFunctions::CostFuncPoisson::calculateDerivative ( API::IFunction function,
const API::FunctionDomain domain,
API::FunctionValues values 
) const
private

◆ calculateHessian()

void Mantid::CurveFitting::CostFunctions::CostFuncPoisson::calculateHessian ( API::IFunction function,
const API::FunctionDomain domain,
const API::FunctionValues values 
) const
private

◆ name()

virtual std::string Mantid::CurveFitting::CostFunctions::CostFuncPoisson::name ( ) const
inlineoverridevirtual

Get name of minimizer.

Implements Mantid::API::ICostFunction.

Definition at line 24 of file CostFuncPoisson.h.

◆ shortName()

virtual std::string Mantid::CurveFitting::CostFunctions::CostFuncPoisson::shortName ( ) const
inlineoverridevirtual

Get short name of minimizer - useful for say labels in guis.

Reimplemented from Mantid::API::ICostFunction.

Definition at line 26 of file CostFuncPoisson.h.


The documentation for this class was generated from the following files: