LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
lsst::modelfit::parameters::ParameterBase< T > Class Template Referenceabstract

Interface for parameters with values and metadata. More...

#include <parameter.h>

Inheritance diagram for lsst::modelfit::parameters::ParameterBase< T >:
lsst::modelfit::parameters::Object lsst::modelfit::parameters::Parameter< T, C > lsst::gauss2d::fit::CentroidXParameterD lsst::gauss2d::fit::CentroidYParameterD lsst::gauss2d::fit::IntegralParameterD lsst::gauss2d::fit::MeanParameterD lsst::gauss2d::fit::MoffatConcentrationParameterD lsst::gauss2d::fit::ProperFractionParameterD lsst::gauss2d::fit::RadiusScaleParameterD lsst::gauss2d::fit::ReffXParameterD lsst::gauss2d::fit::ReffYParameterD lsst::gauss2d::fit::RhoParameterD lsst::gauss2d::fit::SersicIndexParameterD lsst::gauss2d::fit::SigmaXParameterD lsst::gauss2d::fit::SigmaYParameterD lsst::gauss2d::fit::StdDevParameterD

Public Member Functions

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

Static Public Member Functions

static const UnitTransform< T > & transform_none ()
 

Static Public Attributes

static constexpr std::string_view CC_NAMESPACE_SEPARATOR = "::"
 The C++ namespace separator.
 

Friends

bool operator== (const ParameterBase< T > &first, const ParameterBase< T > &second)
 
bool operator!= (const ParameterBase< T > &first, const ParameterBase< T > &second)
 
bool operator< (const ParameterBase< T > &first, const ParameterBase< T > &second)
 

Detailed Description

template<typename T>
class lsst::modelfit::parameters::ParameterBase< T >

Interface for parameters with values and metadata.

A parameter represents a single numeric value, with metadata like a name, description, unit, as well as optional limits and a transforming function. This class is intended for use in numerical optimization.

Template Parameters
TThe type of the value. Only floating point values are tested.
Note
This base class exists partly because e.g. Python bindings can't understand CRTP. It is probably unnecessary (albeit convenient) in C++ and comes with a performance cost.

Definition at line 58 of file parameter.h.

Constructor & Destructor Documentation

◆ ~ParameterBase()

template<typename T >
virtual lsst::modelfit::parameters::ParameterBase< T >::~ParameterBase ( )
virtualdefault

Member Function Documentation

◆ get_default()

template<typename T >
virtual T lsst::modelfit::parameters::ParameterBase< T >::get_default ( ) const
pure virtual

Get the default value.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_desc()

template<typename T >
virtual std::string lsst::modelfit::parameters::ParameterBase< T >::get_desc ( ) const
pure virtual

Get a string description for this parameter class.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_fixed()

template<typename T >
virtual bool lsst::modelfit::parameters::ParameterBase< T >::get_fixed ( ) const
pure virtual

Return whether the parameter is fixed (not free).

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_free()

template<typename T >
virtual bool lsst::modelfit::parameters::ParameterBase< T >::get_free ( ) const
pure virtual

Return whether the parameter is free (not fixed).

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_label()

template<typename T >
virtual std::string lsst::modelfit::parameters::ParameterBase< T >::get_label ( ) const
pure virtual

Return a string label for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_limits()

template<typename T >
virtual const Limits< T > & lsst::modelfit::parameters::ParameterBase< T >::get_limits ( ) const
pure virtual

Return the limits for the untransformed value.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_limits_maximal()

template<typename T >
virtual const Limits< T > & lsst::modelfit::parameters::ParameterBase< T >::get_limits_maximal ( ) const
pure virtual

Return limits representing the maximum/minimum untransformed value.

Implemented in lsst::gauss2d::fit::SersicMixComponentIndexParameterD, and lsst::modelfit::parameters::Parameter< T, C >.

◆ get_linear()

template<typename T >
virtual bool lsst::modelfit::parameters::ParameterBase< T >::get_linear ( ) const
pure virtual

Return whether the parameter is linear.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_max()

template<typename T >
virtual T lsst::modelfit::parameters::ParameterBase< T >::get_max ( ) const
pure virtual

Return the maximum value for this parameter instance.

Implemented in lsst::gauss2d::fit::SersicMixComponentIndexParameterD, and lsst::modelfit::parameters::Parameter< T, C >.

◆ get_min()

template<typename T >
virtual T lsst::modelfit::parameters::ParameterBase< T >::get_min ( ) const
pure virtual

Return the minimum value for this parameter instance.

Implemented in lsst::gauss2d::fit::SersicMixComponentIndexParameterD, and lsst::modelfit::parameters::Parameter< T, C >.

◆ get_name()

template<typename T >
virtual std::string lsst::modelfit::parameters::ParameterBase< T >::get_name ( ) const
pure virtual

Get a string name for this parameter class.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_transform()

template<typename T >
virtual const Transform< T > & lsst::modelfit::parameters::ParameterBase< T >::get_transform ( ) const
pure virtual

Return the transforming function for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_transform_derivative()

template<typename T >
virtual T lsst::modelfit::parameters::ParameterBase< T >::get_transform_derivative ( ) const
pure virtual

Return the derivative of the transform for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_transform_ptr()

template<typename T >
virtual std::shared_ptr< const Transform< T > > lsst::modelfit::parameters::ParameterBase< T >::get_transform_ptr ( ) const
pure virtual

Return the transform pointer for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_unit()

template<typename T >
virtual const Unit & lsst::modelfit::parameters::ParameterBase< T >::get_unit ( ) const
pure virtual

Return the unit of this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_value()

template<typename T >
virtual T lsst::modelfit::parameters::ParameterBase< T >::get_value ( ) const
pure virtual

Return the untransformed value of this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ get_value_transformed()

template<typename T >
virtual T lsst::modelfit::parameters::ParameterBase< T >::get_value_transformed ( ) const
pure virtual

Return the transformed value of this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ repr()

virtual std::string lsst::modelfit::parameters::Object::repr ( bool name_keywords = false,
const std::string_view & namespace_separator = CC_NAMESPACE_SEPARATOR ) const
pure virtualinherited

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.

Implemented in lsst::modelfit::parameters::Limits< double >, lsst::modelfit::parameters::Limits< T >, lsst::modelfit::parameters::Parameter< T, C >, lsst::gauss2d::fit::InverseTransform, lsst::gauss2d::fit::JanskyToABMagTransform, lsst::gauss2d::fit::NanojanskyToABMagTransform, lsst::gauss2d::fit::LogTransform, lsst::gauss2d::fit::Log10Transform, lsst::gauss2d::fit::LogitTransform, lsst::gauss2d::fit::LogitLimitedTransform, and lsst::modelfit::parameters::UnitTransform< T >.

◆ set_fixed()

template<typename T >
virtual void lsst::modelfit::parameters::ParameterBase< T >::set_fixed ( bool fixed)
pure virtual

Set the parameter to be fixed (or not).

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ set_free()

template<typename T >
virtual void lsst::modelfit::parameters::ParameterBase< T >::set_free ( bool free)
pure virtual

Set the parameter to be free (or not).

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ set_label()

template<typename T >
virtual void lsst::modelfit::parameters::ParameterBase< T >::set_label ( std::string label)
pure virtual

Set the string label for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ set_limits()

template<typename T >
virtual void lsst::modelfit::parameters::ParameterBase< T >::set_limits ( std::shared_ptr< const Limits< T > > limits)
pure virtual

Set the limits for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ set_transform()

template<typename T >
virtual void lsst::modelfit::parameters::ParameterBase< T >::set_transform ( std::shared_ptr< const Transform< T > > transform)
pure virtual

Set the transforming function for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ set_unit()

template<typename T >
virtual void lsst::modelfit::parameters::ParameterBase< T >::set_unit ( std::shared_ptr< const Unit > unit = nullptr)
pure virtual

Set the unit for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ set_value()

template<typename T >
virtual void lsst::modelfit::parameters::ParameterBase< T >::set_value ( T value)
pure virtual

Set the untransformed value for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ set_value_transformed()

template<typename T >
virtual void lsst::modelfit::parameters::ParameterBase< T >::set_value_transformed ( T value_transformed)
pure virtual

Set the transformed value for this parameter instance.

Implemented in lsst::modelfit::parameters::Parameter< T, C >.

◆ str()

virtual std::string lsst::modelfit::parameters::Object::str ( ) const
pure virtualinherited

◆ transform_none()

template<typename T >
static const UnitTransform< T > & lsst::modelfit::parameters::ParameterBase< T >::transform_none ( )
inlinestatic

Definition at line 111 of file parameter.h.

111{ return UnitTransform<T>::get(); };
static const UnitTransform< T > & get()
Definition transform.h:64

Friends And Related Symbol Documentation

◆ operator!=

template<typename T >
bool operator!= ( const ParameterBase< T > & first,
const ParameterBase< T > & second )
friend

Definition at line 117 of file parameter.h.

117 {
118 return &first != &second;
119 }

◆ operator<

template<typename T >
bool operator< ( const ParameterBase< T > & first,
const ParameterBase< T > & second )
friend

Definition at line 121 of file parameter.h.

121 {
122 return std::less<const ParameterBase<T>*>{}(&first, &second) == true;
123 }

◆ operator==

template<typename T >
bool operator== ( const ParameterBase< T > & first,
const ParameterBase< T > & second )
friend

Definition at line 113 of file parameter.h.

113 {
114 return &first == &second;
115 }

Member Data Documentation

◆ CC_NAMESPACE_SEPARATOR

constexpr std::string_view lsst::modelfit::parameters::Object::CC_NAMESPACE_SEPARATOR = "::"
staticconstexprinherited

The C++ namespace separator.

Definition at line 42 of file object.h.


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