LSST Applications g0d97872fb5+4fd969bb9d,g1653933729+34a971ddd9,g28da252d5a+072f89fe25,g2bbee38e9b+a99b0ab4cd,g2bc492864f+a99b0ab4cd,g2ca4be77d2+c0e3b27cd8,g2cdde0e794+704103fe75,g3156d2b45e+6e87dc994a,g347aa1857d+a99b0ab4cd,g35bb328faa+34a971ddd9,g3a166c0a6a+a99b0ab4cd,g3e281a1b8c+8ec26ec694,g4005a62e65+ba0306790b,g414038480c+9ed5ed841a,g569e0e2b34+cb4faa46ad,g5a97de2502+520531a62c,g717e5f8c0f+29153700a5,g7ede599f99+367733290c,g80478fca09+17051a22cc,g82479be7b0+f2f1ea0a87,g858d7b2824+29153700a5,g8b782ad322+29153700a5,g8cd86fa7b1+05420e7f7d,g9125e01d80+34a971ddd9,ga5288a1d22+e7f674aaf3,gae0086650b+34a971ddd9,gae74b0b5c6+45ef5cdc51,gb58c049af0+ace264a4f2,gc28159a63d+a99b0ab4cd,gcf0d15dbbd+8051a81198,gda6a2b7d83+8051a81198,gdaeeff99f8+7774323b41,gdf4d240d4a+34a971ddd9,ge2409df99d+cb167bac99,ge33fd446bb+29153700a5,ge79ae78c31+a99b0ab4cd,gf0baf85859+890af219f9,gf5289d68f6+9faa5c5784,w.2024.36
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Public Attributes | Static Protected Member Functions | Protected Attributes | List of all members
lsst::gauss2d::fit::ProperFractionParameterD Struct Reference

#include <parameters.h>

Inheritance diagram for lsst::gauss2d::fit::ProperFractionParameterD:
lsst::modelfit::parameters::Parameter< T, C > lsst::modelfit::parameters::ParameterBase< T > std::enable_shared_from_this< C > 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 Unit & get_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
 Return a full, callable string representation of this.
 
std::string str () const override
 Return a brief, human-readable string representation of this.
 
shared_from_this (T... args)
 

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 const UnitTransform< T > & transform_none ()
 

Static Public Attributes

static constexpr double _min = 0.
 
static constexpr double _max = 1.
 
static const std::string _desc = "Proper fraction (0 <= x <= 1)"
 
static const std::string _name = "proper_fraction"
 
static constexpr std::string_view CC_NAMESPACE_SEPARATOR = "::"
 The C++ namespace separator.
 

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.
 

Detailed Description

Definition at line 81 of file parameters.h.

Member Function Documentation

◆ _get_default()

template<typename T , class C >
static constexpr T lsst::modelfit::parameters::Parameter< T, C >::_get_default ( )
inlinestaticconstexprinherited

Get the default value for the derived type of this.

Definition at line 212 of file parameter.h.

212{ return C::_default; }

◆ _get_desc()

template<typename T , class C >
static const std::string lsst::modelfit::parameters::Parameter< T, C >::_get_desc ( )
inlinestaticprotectedinherited

Definition at line 204 of file parameter.h.

204{ return C::_desc; }

◆ _get_linear()

template<typename T , class C >
static constexpr bool lsst::modelfit::parameters::Parameter< T, C >::_get_linear ( )
inlinestaticconstexprprotectedinherited

Definition at line 205 of file parameter.h.

205{ return C::_linear; }

◆ _get_max()

template<typename T , class C >
static constexpr T lsst::modelfit::parameters::Parameter< T, C >::_get_max ( )
inlinestaticconstexprprotectedinherited

Definition at line 207 of file parameter.h.

207{ return C::_max; }

◆ _get_min()

template<typename T , class C >
static constexpr T lsst::modelfit::parameters::Parameter< T, C >::_get_min ( )
inlinestaticconstexprprotectedinherited

Definition at line 206 of file parameter.h.

206{ return C::_min; }

◆ _get_name()

template<typename T , class C >
static const std::string lsst::modelfit::parameters::Parameter< T, C >::_get_name ( )
inlinestaticprotectedinherited

Definition at line 208 of file parameter.h.

208{ return C::_name; }

◆ get_default()

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

Get the default value.

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

Definition at line 216 of file parameter.h.

216{ return _get_default(); }
static constexpr T _get_default()
Get the default value for the derived type of this.
Definition parameter.h:212

◆ get_desc()

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

Get a string description for this parameter class.

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

Definition at line 214 of file parameter.h.

214{ return _get_desc(); }
static const std::string _get_desc()
Definition parameter.h:204

◆ get_fixed()

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

Return whether the parameter is fixed (not free).

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

Definition at line 218 of file parameter.h.

218{ return !_free; }

◆ get_free()

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

Return whether the parameter is free (not fixed).

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

Definition at line 220 of file parameter.h.

220{ return _free; }

◆ get_label()

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

Return a string label for this parameter instance.

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

Definition at line 222 of file parameter.h.

222{ return _label; }

◆ get_limits()

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

Return the limits for the untransformed value.

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

Definition at line 230 of file parameter.h.

230{ return _limiter->limits; }

◆ get_limits_maximal()

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

Return limits representing the maximum/minimum untransformed value.

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

Definition at line 224 of file parameter.h.

224 {
225 static const Limits<T> limits_maximal
226 = Limits<T>(_get_min(), _get_max(), std::string(type_name<C>()) + ".limits_maximal");
227 return limits_maximal;
228 }

◆ get_linear()

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

Return whether the parameter is linear.

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

Definition at line 232 of file parameter.h.

232{ return _get_linear(); }
static constexpr bool _get_linear()
Definition parameter.h:205

◆ get_max()

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

Return the maximum value for this parameter instance.

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

Definition at line 236 of file parameter.h.

236{ return _get_max(); }

◆ get_min()

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

Return the minimum value for this parameter instance.

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

Definition at line 234 of file parameter.h.

234{ return _get_min(); }

◆ get_name()

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

Get a string name for this parameter class.

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

Definition at line 238 of file parameter.h.

238{ return _get_name(); }
static const std::string _get_name()
Definition parameter.h:208

◆ get_transform()

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

Return the transforming function for this parameter instance.

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

Definition at line 240 of file parameter.h.

240{ return _transformer->transform; }

◆ get_transform_derivative()

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

Return the derivative of the transform for this parameter instance.

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

Definition at line 244 of file parameter.h.

244 {
245 return this->get_transform().derivative(this->get_value());
246 }
T get_value() const override
Return the untransformed value of this parameter instance.
Definition parameter.h:256
const Transform< T > & get_transform() const override
Return the transforming function for this parameter instance.
Definition parameter.h:240

◆ get_transform_ptr()

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

Return the transform pointer for this parameter instance.

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

Definition at line 242 of file parameter.h.

242{ return _transform_ptr; }

◆ get_type_name()

template<typename T , class C >
static const std::string lsst::modelfit::parameters::Parameter< T, C >::get_type_name ( bool strip_namespace_separator = false,
const std::string_view & namespace_separator = detail::NAMESPACE_SEPARATOR )
inlinestaticinherited

Get the name of the derived type of this.

Definition at line 248 of file parameter.h.

250 {
251 return type_name_str<C>(strip_namespace_separator, namespace_separator);
252 }

◆ get_unit()

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

Return the unit of this parameter instance.

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

Definition at line 254 of file parameter.h.

254{ return *_unit_ptr; }

◆ get_value()

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

Return the untransformed value of this parameter instance.

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

Definition at line 256 of file parameter.h.

256{ return _value; }
T _value
The untransformed value.
Definition parameter.h:200

◆ get_value_transformed()

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

Return the transformed value of this parameter instance.

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

Definition at line 258 of file parameter.h.

258{ return _value_transformed; }
T _value_transformed
The cached, transformed value.
Definition parameter.h:202

◆ ptr()

template<typename T , class C >
std::shared_ptr< C > lsst::modelfit::parameters::Parameter< T, C >::ptr ( )
inlineinherited

Return a shared pointer to this.

Definition at line 261 of file parameter.h.

261{ return this->shared_from_this(); }

◆ 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
inlineoverridevirtualinherited

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.

Definition at line 312 of file parameter.h.

313 {
314 return get_type_name(false, namespace_separator) + "(" + (name_keywords ? "value=" : "")
315 + std::to_string(_value) + ", " + (name_keywords ? "limits=" : "") + get_limits().repr() + ", "
316 + (name_keywords ? "transform=" : "") + get_transform().repr() + ", "
317 + (name_keywords ? "fixed=" : "") + std::to_string(0 + get_fixed()) + ", "
318 + (name_keywords ? "label='" : "'") + _label + "')";
319 }
bool get_fixed() const override
Return whether the parameter is fixed (not free).
Definition parameter.h:218
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.
Definition parameter.h:248
const Limits< T > & get_limits() const override
Return the limits for the untransformed value.
Definition parameter.h:230
T to_string(T... args)

◆ set_fixed()

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

Set the parameter to be fixed (or not).

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

Definition at line 263 of file parameter.h.

263{ set_free(!fixed); }
void set_free(bool free) override
Set the parameter to be free (or not).
Definition parameter.h:264

◆ set_free()

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

Set the parameter to be free (or not).

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

Definition at line 264 of file parameter.h.

264{ _free = free; }
T free(T... args)

◆ set_label()

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

Set the string label for this parameter instance.

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

Definition at line 265 of file parameter.h.

265{ _label = std::move(label); }
T move(T... args)

◆ set_limits()

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

Set the limits for this parameter instance.

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

Definition at line 266 of file parameter.h.

266 {
267 // TODO: Fix bad_alloc when calling this without &
268 // Disable copy constructor explicitly maybe?
269 const auto& limits_maximal = this->get_limits_maximal();
270 if (limits == nullptr) {
271 _limiter = std::make_unique<Limiter>(limits_maximal);
272 } else {
273 if (!((limits->get_min() >= this->get_min()) && (limits->get_max() <= this->get_max()))) {
274 std::string error = get_type_name() + ".set_limits(" + limits->str()
275 + ") sets limits that are less restrictive than the minimum="
276 + limits_maximal.str();
277 throw std::runtime_error(error);
278 }
279 _limits_ptr = std::move(limits);
280 _limiter = std::make_unique<Limiter>(*_limits_ptr);
281 }
282 }
const Limits< T > & get_limits_maximal() const override
Return limits representing the maximum/minimum untransformed value.
Definition parameter.h:224

◆ set_transform()

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

Set the transforming function for this parameter instance.

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

Definition at line 283 of file parameter.h.

283 {
284 if (transform == nullptr) {
285 // TODO: determine why passing transform_none as arg here returns:
286 // error: modification of '<temporary>' is not a constant expression
287 // whereas get_transform_unit<T>() results in a segfault
288 // (iff Transform has a virtual destructor)
289 _transformer = std::make_unique<Transformer>(this->transform_none());
290 } else {
291 _transform_ptr = std::move(transform);
292 _transformer = std::make_unique<Transformer>(*_transform_ptr);
293 }
294 _value_transformed = _transformer->transform.forward(_value);
295 }
static const UnitTransform< T > & transform_none()
Definition parameter.h:111

◆ set_unit()

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

Set the unit for this parameter instance.

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

Definition at line 308 of file parameter.h.

308 {
309 _unit_ptr = unit == nullptr ? nullptr : std::move(unit);
310 }

◆ set_value()

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

Set the untransformed value for this parameter instance.

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

Definition at line 297 of file parameter.h.

297 {
298 _set_value(value);
299 double value_new = this->get_value();
300 _value_transformed = _transformer->transform.forward(value_new);
301 };

◆ set_value_transformed()

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

Set the transformed value for this parameter instance.

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

Definition at line 303 of file parameter.h.

303 {
304 _set_value(_transformer->transform.reverse(value_transformed));
305 _value_transformed = _transformer->transform.forward(this->get_value());
306 }

◆ str()

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

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

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

Definition at line 321 of file parameter.h.

321 {
322 return get_type_name(true) + "(value=" + std::to_string(_value)
323 + ", "
324 // TODO: Implement equality operators for limits/transforms
325 + ((&get_limits() == &get_limits_maximal()) ? "" : ("limits=" + get_limits().repr() + ", "))
326 + ((&get_transform() == &(this->transform_none()))
327 ? ""
328 : ("transform=" + get_transform().repr() + ", "))
329 + (!get_fixed() ? "" : (std::string("fixed=") + std::to_string(0 + get_fixed()) + ", "))
330 + ((get_label() == "") ? "" : ("label='" + get_label() + "'")) + ")";
331 }
std::string get_label() const override
Return a string label for this parameter instance.
Definition parameter.h:222
std::string repr(bool name_keywords=false, const std::string_view &namespace_separator=Object::CC_NAMESPACE_SEPARATOR) const override
Return a full, callable string representation of this.
Definition parameter.h:312
STL namespace.

◆ transform_none()

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

Definition at line 111 of file parameter.h.

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

Member Data Documentation

◆ _desc

const std::string lsst::gauss2d::fit::ProperFractionParameterD::_desc = "Proper fraction (0 <= x <= 1)"
inlinestatic

Definition at line 85 of file parameters.h.

◆ _max

constexpr double lsst::gauss2d::fit::ProperFractionParameterD::_max = 1.
inlinestaticconstexpr

Definition at line 84 of file parameters.h.

◆ _min

constexpr double lsst::gauss2d::fit::ProperFractionParameterD::_min = 0.
inlinestaticconstexpr

Definition at line 83 of file parameters.h.

◆ _name

const std::string lsst::gauss2d::fit::ProperFractionParameterD::_name = "proper_fraction"
inlinestatic

Definition at line 86 of file parameters.h.

◆ _value

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

The untransformed value.

Definition at line 200 of file parameter.h.

◆ _value_transformed

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

The cached, transformed value.

Definition at line 202 of file parameter.h.

◆ 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 struct was generated from the following file: