|
SourceXtractorPlusPlus 1.0.3
SourceXtractor++, the next generation SExtractor
|
Implementation of a parameter depending on an arbitrary number of other parameters. More...
#include <DependentParameter.h>


Public Types | |
| using | ValueCalculator = std::function<double(decltype(std::declval<Parameters>()->getValue())...)> |
| Public Types inherited from ModelFitting::BasicParameter | |
| using | ParameterObserver = std::function<void(double)> |
Public Member Functions | |
| DependentParameter (ValueCalculator calculator, Parameters... parameters) | |
| virtual | ~DependentParameter ()=default |
| double | getValue () const override |
| Public Member Functions inherited from ModelFitting::BasicParameter | |
| virtual | ~BasicParameter () |
| BasicParameter (const BasicParameter &)=delete | |
| BasicParameter & | operator= (const BasicParameter &)=delete |
| BasicParameter (BasicParameter &&)=delete | |
| BasicParameter & | operator= (BasicParameter &&)=delete |
| std::size_t | addObserver (ParameterObserver observer) |
| The addObserver method adding observer to the member list. | |
| bool | removeObserver (std::size_t id) |
| bool | isObserved () const |
Static Public Attributes | |
| static constexpr int | PARAM_NO = sizeof...(Parameters) |
Private Member Functions | |
| template<typename First, typename ... Rest> | |
| void | inputParameterLoop (First &first, Rest &... rest) |
| template<typename Last> | |
| void | inputParameterLoop (Last &last) |
| template<typename... ParamValues> | |
| void | update (ParamValues... values) |
| void | update (decltype(std::declval< Parameters >() ->getValue())... values) |
| template<typename Param> | |
| void | addParameterObserver (int, Param ¶m) |
Private Attributes | |
| std::shared_ptr< ValueCalculator > | m_calculator |
| function to calculate the dependent parameter value | |
| std::shared_ptr< std::array< std::shared_ptr< BasicParameter >, PARAM_NO > > | m_params |
Additional Inherited Members | |
| Protected Types inherited from ModelFitting::BasicParameter | |
| typedef std::function< void(void)> | GetValueHook |
| Protected Member Functions inherited from ModelFitting::BasicParameter | |
| BasicParameter (const double value) | |
| virtual void | setValue (const double new_value) |
| Protected Attributes inherited from ModelFitting::BasicParameter | |
| GetValueHook | m_get_value_hook |
| double | m_value |
Implementation of a parameter depending on an arbitrary number of other parameters.
Variadic template implementation of a parameter depending on an arbitrary number of other parameters. A dependent parameter cannot be copied, but only moved.
DependentParameter creation should be achieved using the factory method createDependentParameter(...) provide after the end of this class.
Definition at line 48 of file DependentParameter.h.
| using ModelFitting::DependentParameter< Parameters >::ValueCalculator = std::function<double(decltype(std::declval<Parameters>()->getValue())...)> |
Definition at line 54 of file DependentParameter.h.
|
inline |
This constructor take a function which is used to compute the dependent parameter value as a function of input parameter values.
Definition at line 60 of file DependentParameter.h.
References ModelFitting::BasicParameter::BasicParameter(), getValue(), m_calculator, m_params, std::move(), and PARAM_NO.
Referenced by getValue().

|
virtualdefault |
|
inlineprivate |
Definition at line 120 of file DependentParameter.h.
References getValue(), ModelFitting::BasicParameter::isObserved(), m_params, and update().
Referenced by inputParameterLoop(), and inputParameterLoop().

|
inlineoverridevirtual |
Reimplemented from ModelFitting::BasicParameter.
Definition at line 70 of file DependentParameter.h.
References DependentParameter(), getValue(), ModelFitting::BasicParameter::isObserved(), m_params, ModelFitting::BasicParameter::m_value, and update().
Referenced by addParameterObserver(), DependentParameter(), getValue(), and update().

|
inlineprivate |
Definition at line 91 of file DependentParameter.h.
References addParameterObserver(), inputParameterLoop(), and PARAM_NO.
Referenced by inputParameterLoop().

|
inlineprivate |
Definition at line 97 of file DependentParameter.h.
References addParameterObserver(), and PARAM_NO.

|
inlineprivate |
Definition at line 112 of file DependentParameter.h.
References std::declval(), getValue(), m_calculator, and ModelFitting::BasicParameter::setValue().

|
inlineprivate |
Definition at line 108 of file DependentParameter.h.
References m_params, and update().
Referenced by addParameterObserver(), getValue(), and update().

|
private |
function to calculate the dependent parameter value
Definition at line 80 of file DependentParameter.h.
Referenced by DependentParameter(), and update().
|
private |
Definition at line 83 of file DependentParameter.h.
Referenced by addParameterObserver(), DependentParameter(), getValue(), and update().
|
staticconstexpr |
Definition at line 52 of file DependentParameter.h.
Referenced by DependentParameter(), inputParameterLoop(), and inputParameterLoop().