lsst.modelfit.parameters g35bb328faa+b0138be388
 
Loading...
Searching...
No Matches
lsst::modelfit::parameters::Parameter< T, C > Class Template Reference

A parameter with values and metadata. More...

#include <parameter.h>

Inheritance diagram for lsst::modelfit::parameters::Parameter< T, C >:
lsst::modelfit::parameters::ParameterBase< T > lsst::modelfit::parameters::Object

Public Member Functions

std::string get_desc () const override
 Get a string description for this parameter class.
 
get_default () const override
 Get the default value.
 
bool get_fixed () const override
 Return whether the parameter is fixed (not free).
 
bool get_free () const override
 Return whether the parameter is free (not fixed).
 
std::string get_label () const override
 Return a string label for this parameter instance.
 
const Limits< T > & get_limits_maximal () const override
 Return limits representing the maximum/minimum untransformed value.
 
const Limits< T > & get_limits () const override
 Return the limits for the untransformed value.
 
bool get_linear () const override
 Return whether the parameter is linear.
 
get_min () const override
 Return the minimum value for this parameter instance.
 
get_max () const override
 Return the maximum value for this parameter instance.
 
std::string get_name () const override
 Get a string name for this parameter class.
 
const Transform< T > & get_transform () const override
 Return the transforming function for this parameter instance.
 
std::shared_ptr< const Transform< T > > get_transform_ptr () const override
 Return the transform pointer for this parameter instance.
 
get_transform_derivative () const override
 Return the derivative of the transform for this parameter instance.
 
const Unitget_unit () const override
 Return the unit of this parameter instance.
 
get_value () const override
 Return the untransformed value of this parameter instance.
 
get_value_transformed () const override
 Return the transformed value of this parameter instance.
 
std::shared_ptr< C > ptr ()
 Return a shared pointer to this.
 
void set_fixed (bool fixed) override
 Set the parameter to be fixed (or not).
 
void set_free (bool free) override
 Set the parameter to be free (or not).
 
void set_label (std::string label) override
 Set the string label for this parameter instance.
 
void set_limits (std::shared_ptr< const Limits< T > > limits) override
 Set the limits for this parameter instance.
 
void set_transform (const std::shared_ptr< const Transform< T > > transform) override
 Set the transforming function for this parameter instance.
 
void set_value (T value) override
 Set the untransformed value for this parameter instance.
 
void set_value_transformed (T value_transformed) override
 Set the transformed value for this parameter instance.
 
void set_unit (std::shared_ptr< const Unit > unit=nullptr) override
 Set the unit for this parameter instance.
 
std::string repr (bool name_keywords=false, const std::string_view &namespace_separator=Object::CC_NAMESPACE_SEPARATOR) const override
 
std::string str () const override
 Return a brief, human-readable string representation of this.
 
 Parameter (T value=_get_default(), std::shared_ptr< const Limits< T > > limits=nullptr, const std::shared_ptr< const Transform< T > > transform=nullptr, std::shared_ptr< const Unit > unit=nullptr, bool fixed=false, std::string label="")
 

Static Public Member Functions

static constexpr T _get_default ()
 Get the default value for the derived type of this.
 
static const std::string get_type_name (bool strip_namespace_separator=false, const std::string_view &namespace_separator=detail::NAMESPACE_SEPARATOR)
 Get the name of the derived type of this.
 
- Static Public Member Functions inherited from lsst::modelfit::parameters::ParameterBase< T >
static const UnitTransform< T > & transform_none ()
 

Static Protected Member Functions

static const std::string _get_desc ()
 
static constexpr bool _get_linear ()
 
static constexpr T _get_min ()
 
static constexpr T _get_max ()
 
static const std::string _get_name ()
 

Protected Attributes

_value
 The untransformed value.
 
_value_transformed
 The cached, transformed value.
 

Additional Inherited Members

- Static Public Attributes inherited from lsst::modelfit::parameters::Object
static constexpr std::string_view CC_NAMESPACE_SEPARATOR = "::"
 The C++ namespace separator.
 

Detailed Description

template<typename T, class C>
class lsst::modelfit::parameters::Parameter< T, C >

A parameter with values and metadata.

This is a CRTP implementation of the ParameterBase interface, which allows for concise, minimal-effort derived classes (see tests and examples).

Template Parameters
TThe type of the value. Only floating point values are tested.
CThe derived class.
Note
Parameters can be set as free/fixed when they are part of a model. This designation is indicative and does not prevent the parameter value from being changed by users.
CRTP performance benefits are likely lost by having an abstract base class with virtual methods; see ParameterBase Notes. This may be obviated by future compiler improvements.
The main benefit of CRTP left is that derived classes can be implemented just by defining static members. The implementation thereof in this class is not trivial, however.

Constructor & Destructor Documentation

◆ Parameter()

template<typename T, class C>
lsst::modelfit::parameters::Parameter< T, C >::Parameter ( T value = _get_default(),
std::shared_ptr< const Limits< T > > limits = nullptr,
const std::shared_ptr< const Transform< T > > transform = nullptr,
std::shared_ptr< const Unit > unit = nullptr,
bool fixed = false,
std::string label = "" )
inline

Initialize a Parameter.

Parameters
valueThe initial untransformed value.
limitsThe untransformed value limits.
transformThe transformation to apply to values.
unitThe unit of the untransformed value.
fixedWhether the parameter is fixed in models.
labelA descriptive label for the parameter.

Member Function Documentation

◆ get_default()

template<typename T, class C>
T lsst::modelfit::parameters::Parameter< T, C >::get_default ( ) const
inlineoverridevirtual

Get the default value.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_desc()

template<typename T, class C>
std::string lsst::modelfit::parameters::Parameter< T, C >::get_desc ( ) const
inlineoverridevirtual

Get a string description for this parameter class.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_fixed()

template<typename T, class C>
bool lsst::modelfit::parameters::Parameter< T, C >::get_fixed ( ) const
inlineoverridevirtual

Return whether the parameter is fixed (not free).

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_free()

template<typename T, class C>
bool lsst::modelfit::parameters::Parameter< T, C >::get_free ( ) const
inlineoverridevirtual

Return whether the parameter is free (not fixed).

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_label()

template<typename T, class C>
std::string lsst::modelfit::parameters::Parameter< T, C >::get_label ( ) const
inlineoverridevirtual

Return a string label for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_limits()

template<typename T, class C>
const Limits< T > & lsst::modelfit::parameters::Parameter< T, C >::get_limits ( ) const
inlineoverridevirtual

Return the limits for the untransformed value.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_limits_maximal()

template<typename T, class C>
const Limits< T > & lsst::modelfit::parameters::Parameter< T, C >::get_limits_maximal ( ) const
inlineoverridevirtual

Return limits representing the maximum/minimum untransformed value.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_linear()

template<typename T, class C>
bool lsst::modelfit::parameters::Parameter< T, C >::get_linear ( ) const
inlineoverridevirtual

Return whether the parameter is linear.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_max()

template<typename T, class C>
T lsst::modelfit::parameters::Parameter< T, C >::get_max ( ) const
inlineoverridevirtual

Return the maximum value for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_min()

template<typename T, class C>
T lsst::modelfit::parameters::Parameter< T, C >::get_min ( ) const
inlineoverridevirtual

Return the minimum value for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_name()

template<typename T, class C>
std::string lsst::modelfit::parameters::Parameter< T, C >::get_name ( ) const
inlineoverridevirtual

Get a string name for this parameter class.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_transform()

template<typename T, class C>
const Transform< T > & lsst::modelfit::parameters::Parameter< T, C >::get_transform ( ) const
inlineoverridevirtual

Return the transforming function for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_transform_derivative()

template<typename T, class C>
T lsst::modelfit::parameters::Parameter< T, C >::get_transform_derivative ( ) const
inlineoverridevirtual

Return the derivative of the transform for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_transform_ptr()

template<typename T, class C>
std::shared_ptr< const Transform< T > > lsst::modelfit::parameters::Parameter< T, C >::get_transform_ptr ( ) const
inlineoverridevirtual

Return the transform pointer for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_unit()

template<typename T, class C>
const Unit & lsst::modelfit::parameters::Parameter< T, C >::get_unit ( ) const
inlineoverridevirtual

Return the unit of this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_value()

template<typename T, class C>
T lsst::modelfit::parameters::Parameter< T, C >::get_value ( ) const
inlineoverridevirtual

Return the untransformed value of this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ get_value_transformed()

template<typename T, class C>
T lsst::modelfit::parameters::Parameter< T, C >::get_value_transformed ( ) const
inlineoverridevirtual

Return the transformed value of this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ repr()

template<typename T, class C>
std::string lsst::modelfit::parameters::Parameter< T, C >::repr ( bool name_keywords = false,
const std::string_view & namespace_separator = Object::CC_NAMESPACE_SEPARATOR ) const
inlineoverridevirtual

Return a full, callable string representation of this.

Parameters
name_keywordsWhether to prefix arguments with "{name}=", where name is the arg name in the header (as with keyword arguments in Python).
namespace_separatorThe string to use to delimit namespaces, i.e. :: in C++ and . in Python.
Returns
A callable string representation of this, which should return an an identical object to this.
Note
The representation with name_keywords=false must be callable in C++. The representation with name_keywords=true should be callable in Python, if there are any bindings.

Implements lsst::modelfit::parameters::Object.

◆ set_fixed()

template<typename T, class C>
void lsst::modelfit::parameters::Parameter< T, C >::set_fixed ( bool fixed)
inlineoverridevirtual

Set the parameter to be fixed (or not).

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ set_free()

template<typename T, class C>
void lsst::modelfit::parameters::Parameter< T, C >::set_free ( bool free)
inlineoverridevirtual

Set the parameter to be free (or not).

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ set_label()

template<typename T, class C>
void lsst::modelfit::parameters::Parameter< T, C >::set_label ( std::string label)
inlineoverridevirtual

Set the string label for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ set_limits()

template<typename T, class C>
void lsst::modelfit::parameters::Parameter< T, C >::set_limits ( std::shared_ptr< const Limits< T > > limits)
inlineoverridevirtual

Set the limits for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ set_transform()

template<typename T, class C>
void lsst::modelfit::parameters::Parameter< T, C >::set_transform ( const std::shared_ptr< const Transform< T > > transform)
inlineoverridevirtual

Set the transforming function for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ set_unit()

template<typename T, class C>
void lsst::modelfit::parameters::Parameter< T, C >::set_unit ( std::shared_ptr< const Unit > unit = nullptr)
inlineoverridevirtual

Set the unit for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ set_value()

template<typename T, class C>
void lsst::modelfit::parameters::Parameter< T, C >::set_value ( T value)
inlineoverridevirtual

Set the untransformed value for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ set_value_transformed()

template<typename T, class C>
void lsst::modelfit::parameters::Parameter< T, C >::set_value_transformed ( T value_transformed)
inlineoverridevirtual

Set the transformed value for this parameter instance.

Implements lsst::modelfit::parameters::ParameterBase< T >.

◆ str()

template<typename T, class C>
std::string lsst::modelfit::parameters::Parameter< T, C >::str ( ) const
inlineoverridevirtual

Return a brief, human-readable string representation of this.

Implements lsst::modelfit::parameters::Object.


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