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

An implementation of SeqDomain for parallel cost function and derivatives computation. More...

#include <ParDomain.h>

Inheritance diagram for Mantid::CurveFitting::ParDomain:
Mantid::CurveFitting::SeqDomain Mantid::API::FunctionDomain

Public Member Functions

void additiveCostFunctionVal (const CostFunctions::CostFuncFitting &costFunction) override
 Calculate the value of an additive cost function. More...
 
void additiveCostFunctionValDerivHessian (const CostFunctions::CostFuncFitting &costFunction, bool evalDeriv, bool evalHessian) override
 Calculate the value, first and second derivatives of an additive cost function. More...
 
void getDomainAndValues (size_t i, API::FunctionDomain_sptr &domain, API::FunctionValues_sptr &values) const override
 Create and return i-th domain and i-th values, (i-1)th domain is released. More...
 
 ParDomain ()
 
- Public Member Functions inherited from Mantid::CurveFitting::SeqDomain
void addCreator (const API::IDomainCreator_sptr &creator)
 Add new domain creator. More...
 
virtual void additiveCostFunctionVal (const CostFunctions::CostFuncFitting &costFunction)
 Calculate the value of an additive cost function. More...
 
virtual void additiveCostFunctionValDerivHessian (const CostFunctions::CostFuncFitting &costFunction, bool evalDeriv, bool evalHessian)
 Calculate the value, first and second derivatives of an additive cost function. More...
 
virtual void getDomainAndValues (size_t i, API::FunctionDomain_sptr &domain, API::FunctionValues_sptr &values) const
 Create and return i-th domain and i-th values, (i-1)th domain is released. More...
 
virtual size_t getNDomains () const
 Return the number of parts in the domain. More...
 
void rwpVal (const CostFunctions::CostFuncRwp &rwp)
 Calculate the value of a Rwp cost function. More...
 
void rwpValDerivHessian (const CostFunctions::CostFuncRwp &rwp, bool evalDeriv, bool evalHessian)
 Calculate the value, first and second derivatives of a RWP cost function. More...
 
 SeqDomain ()
 
size_t size () const override
 Return the number of points in the domain. More...
 
- Public Member Functions inherited from Mantid::API::FunctionDomain
virtual void reset () const
 Reset the the domain so it can be reused. More...
 
virtual size_t size () const =0
 Return the number of points in the domain. More...
 
virtual ~FunctionDomain ()=default
 Virtual destructor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Mantid::CurveFitting::SeqDomain
static SeqDomaincreate (API::IDomainCreator::DomainType type)
 Create an instance of SeqDomain in one of two forms: either SeqDomain for sequential domain creation or ParDomain for parallel calculations. More...
 
- Protected Attributes inherited from Mantid::CurveFitting::SeqDomain
std::vector< std::shared_ptr< API::IDomainCreator > > m_creators
 Domain creators. More...
 
size_t m_currentIndex
 Current index. More...
 
std::vector< API::FunctionDomain_sptrm_domain
 Currently active domain. More...
 
std::vector< API::FunctionValues_sptrm_values
 Currently active values. More...
 

Detailed Description

An implementation of SeqDomain for parallel cost function and derivatives computation.

Author
Roman Tolchenov, Tessella plc

Definition at line 23 of file ParDomain.h.

Constructor & Destructor Documentation

◆ ParDomain()

Mantid::CurveFitting::ParDomain::ParDomain ( )
inline

Definition at line 25 of file ParDomain.h.

Member Function Documentation

◆ additiveCostFunctionVal()

void Mantid::CurveFitting::ParDomain::additiveCostFunctionVal ( const CostFunctions::CostFuncFitting costFunction)
overridevirtual

Calculate the value of an additive cost function.

Calculate the value of a least squares cost function.

Parameters
costFunction:: The cost func to calculate the value for

Reimplemented from Mantid::CurveFitting::SeqDomain.

Definition at line 35 of file ParDomain.cpp.

References Mantid::CurveFitting::CostFunctions::CostFuncFitting::addVal(), getDomainAndValues(), Mantid::CurveFitting::SeqDomain::getNDomains(), n, and PARALLEL_FOR_NO_WSP_CHECK.

◆ additiveCostFunctionValDerivHessian()

void Mantid::CurveFitting::ParDomain::additiveCostFunctionValDerivHessian ( const CostFunctions::CostFuncFitting costFunction,
bool  evalDeriv,
bool  evalHessian 
)
overridevirtual

Calculate the value, first and second derivatives of an additive cost function.

Calculate the value, first and second derivatives of a least squares cost function.

Parameters
costFunction:: The cost func to calculate the value for
evalDeriv:: Flag to evaluate the first derivatives
evalHessian:: Flag to evaluate the Hessian (second derivatives)

Reimplemented from Mantid::CurveFitting::SeqDomain.

Definition at line 56 of file ParDomain.cpp.

References Mantid::CurveFitting::CostFunctions::CostFuncFitting::addValDerivHessian(), getDomainAndValues(), Mantid::CurveFitting::CostFunctions::CostFuncFitting::getFittingFunction(), Mantid::CurveFitting::SeqDomain::getNDomains(), n, PARALLEL_CRITICAL, PARALLEL_FOR_NO_WSP_CHECK, PARALLEL_SET_DYNAMIC, and PARALLEL_THREAD_NUMBER.

◆ getDomainAndValues()

void Mantid::CurveFitting::ParDomain::getDomainAndValues ( size_t  i,
API::FunctionDomain_sptr domain,
API::FunctionValues_sptr values 
) const
overridevirtual

Create and return i-th domain and i-th values, (i-1)th domain is released.

Parameters
i:: Index of domain to return.
domain:: Output pointer to the returned domain.
values:: Output pointer to the returned values.

Reimplemented from Mantid::CurveFitting::SeqDomain.

Definition at line 21 of file ParDomain.cpp.

References Mantid::CurveFitting::SeqDomain::m_creators, Mantid::CurveFitting::SeqDomain::m_domain, and Mantid::CurveFitting::SeqDomain::m_values.

Referenced by additiveCostFunctionVal(), and additiveCostFunctionValDerivHessian().


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