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.
 
void additiveCostFunctionValDerivHessian (const CostFunctions::CostFuncFitting &costFunction, bool evalDeriv, bool evalHessian) override
 Calculate the value, first and second derivatives of an additive cost function.
 
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.
 
 ParDomain ()
 
- Public Member Functions inherited from Mantid::CurveFitting::SeqDomain
void addCreator (const API::IDomainCreator_sptr &creator)
 Add new domain creator.
 
virtual size_t getNDomains () const
 Return the number of parts in the domain.
 
void rwpVal (const CostFunctions::CostFuncRwp &rwp)
 Calculate the value of a Rwp cost function.
 
void rwpValDerivHessian (const CostFunctions::CostFuncRwp &rwp, bool evalDeriv, bool evalHessian)
 Calculate the value, first and second derivatives of a RWP cost function.
 
 SeqDomain ()
 
size_t size () const override
 Return the number of points in the domain.
 
- Public Member Functions inherited from Mantid::API::FunctionDomain
virtual void reset () const
 Reset the domain so it can be reused.
 
virtual ~FunctionDomain ()=default
 Virtual destructor.
 

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.
 
- Protected Attributes inherited from Mantid::CurveFitting::SeqDomain
std::vector< std::shared_ptr< API::IDomainCreator > > m_creators
 Domain creators.
 
size_t m_currentIndex
 Current index.
 
std::vector< API::FunctionDomain_sptrm_domain
 Currently active domain.
 
std::vector< API::FunctionValues_sptrm_values
 Currently active values.
 

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: