bpp-core3  3.0.0
bpp::IntervalTransformedParameter Class Reference

Parameter transformation from ] a, b [ to ]-inf, + inf [. More...

#include <Bpp/Numeric/TransformedParameter.h>

+ Inheritance diagram for bpp::IntervalTransformedParameter:
+ Collaboration diagram for bpp::IntervalTransformedParameter:

Public Member Functions

 IntervalTransformedParameter (const std::string &name, double value, double lowerBound=0, double upperBound=1, double scale=1, bool hyper=true)
 Build a new IntervalTransformedParameter, with given bounds and scale. More...
 
IntervalTransformedParameterclone () const
 Create a copy of this object and send a pointer to it. More...
 
void setOriginalValue (double value)
 Set the value of the parameter using the orignal coordinate system. More...
 
double getOriginalValue () const
 
double getFirstOrderDerivative () const
 
double getSecondOrderDerivative () const
 
virtual void setName (const std::string &name)
 Set the name of this parameter. More...
 
virtual void setValue (double value)
 Set the value of this parameter. More...
 
void setPrecision (double precision)
 Set the precision of this parameter. More...
 
virtual const std::string & getName () const
 Get the name of this parameter. More...
 
virtual double getValue () const
 Get the value of this parameter. More...
 
virtual double getPrecision () const
 Get the precision of this parameter. More...
 
virtual const std::shared_ptr< ConstraintgetConstraint () const
 Return the constraint associated to this parameter if there is one. More...
 
virtual std::shared_ptr< ConstraintgetConstraint ()
 Return the constraint associated to this parameter if there is one. More...
 
virtual bool hasConstraint () const
 Tells if this parameter has a constraint. More...
 
virtual std::shared_ptr< ConstraintremoveConstraint ()
 Remove the constraint associated to this parameter. More...
 
virtual void setConstraint (std::shared_ptr< Constraint > constraint)
 Set a constraint to this parameter. More...
 
virtual void addParameterListener (ParameterListener *listener, bool attachListener=true)
 Add a new listener to this parameter. More...
 
virtual void removeParameterListener (const std::string &listenerId)
 Remove all listeners with a given id from this parameter. More...
 
virtual bool hasParameterListener (const std::string &listenerId)
 Tell is there is a listener with a given id from this parameter. More...
 

Static Public Attributes

static const std::shared_ptr< IntervalConstraintR_PLUS
 
static const std::shared_ptr< IntervalConstraintR_PLUS_STAR
 
static const std::shared_ptr< IntervalConstraintR_MINUS
 
static const std::shared_ptr< IntervalConstraintR_MINUS_STAR
 
static const std::shared_ptr< IntervalConstraintPROP_CONSTRAINT_IN
 
static const std::shared_ptr< IntervalConstraintPROP_CONSTRAINT_EX
 

Protected Member Functions

void fireParameterNameChanged (ParameterEvent &event)
 
void fireParameterValueChanged (ParameterEvent &event)
 
void fireParameterConstraintChanged (ParameterEvent &event)
 

Protected Attributes

std::string name_
 
double value_
 
double precision_
 
std::shared_ptr< Constraintconstraint_
 
std::vector< ParameterListener * > listeners_
 
std::vector< bool > listenerAttach_
 

Private Attributes

double scale_
 
double lowerBound_
 
double upperBound_
 
bool hyper_
 
double tiny_
 

Detailed Description

Parameter transformation from ] a, b [ to ]-inf, + inf [.

The equation of the tranformation is

\[ x' = s\tan\left(\pi\frac{x-a}{b-a} - \frac{\pi}{2}\right) \]

The 'a' and 'b' parameters are the lower and upper bounds and 's' is a scaling factor set to 1 by default. If the hyperbolic option is set to true (the default), then the following transformation is used instead:

\[ x' = s\,\text{atanh}\left(2\frac{x-a}{b-a} - 1\right) \]

Definition at line 201 of file TransformedParameter.h.

Constructor & Destructor Documentation

◆ IntervalTransformedParameter()

bpp::IntervalTransformedParameter::IntervalTransformedParameter ( const std::string &  name,
double  value,
double  lowerBound = 0,
double  upperBound = 1,
double  scale = 1,
bool  hyper = true 
)
inline

Build a new IntervalTransformedParameter, with given bounds and scale.

Parameters
namethe name of the parameter.
valuethe value of th eparameter, in orginal coordinates.
lowerBoundthe inerval lower bound to use.
upperBoundthe inerval lower bound to use.
scalethe scaling factor.
hypertell if the hyberbolic function should be used (true by default).

Definition at line 222 of file TransformedParameter.h.

Referenced by clone().

Member Function Documentation

◆ addParameterListener()

virtual void bpp::Parameter::addParameterListener ( ParameterListener listener,
bool  attachListener = true 
)
inlinevirtualinherited

Add a new listener to this parameter.

Parameters
listenerThe listener to add.
attachListenerTell if the parameter will own this listener. If so, deep copies will be made when cloning the parameter, and the listener will be destroyed upon destruction of the parameter or upon removal. Alternatively, only superficial copies will be made, and the listener will persist if the parameter is destroyed.

Definition at line 278 of file Parameter.h.

References bpp::Parameter::listenerAttach_, and bpp::Parameter::listeners_.

Referenced by bpp::AbstractParameterAliasable::aliasParameters().

◆ clone()

IntervalTransformedParameter* bpp::IntervalTransformedParameter::clone ( ) const
inlinevirtual

Create a copy of this object and send a pointer to it.

Returns
A pointer toward the copy object.

Implements bpp::TransformedParameter.

Definition at line 233 of file TransformedParameter.h.

References IntervalTransformedParameter().

◆ fireParameterConstraintChanged()

void bpp::Parameter::fireParameterConstraintChanged ( ParameterEvent event)
inlineprotectedinherited

Definition at line 316 of file Parameter.h.

References bpp::Parameter::listeners_.

◆ fireParameterNameChanged()

void bpp::Parameter::fireParameterNameChanged ( ParameterEvent event)
inlineprotectedinherited

Definition at line 300 of file Parameter.h.

References bpp::Parameter::listeners_.

Referenced by bpp::Parameter::setName().

◆ fireParameterValueChanged()

void bpp::Parameter::fireParameterValueChanged ( ParameterEvent event)
inlineprotectedinherited

Definition at line 308 of file Parameter.h.

References bpp::Parameter::listeners_.

Referenced by bpp::Parameter::setValue().

◆ getConstraint() [1/2]

virtual std::shared_ptr<Constraint> bpp::Parameter::getConstraint ( )
inlinevirtualinherited

Return the constraint associated to this parameter if there is one.

Returns
A shared pointer toward the constraint, or NULL if there is no constraint.

Definition at line 242 of file Parameter.h.

References bpp::Parameter::constraint_.

◆ getConstraint() [2/2]

virtual const std::shared_ptr<Constraint> bpp::Parameter::getConstraint ( ) const
inlinevirtualinherited

Return the constraint associated to this parameter if there is one.

Returns
A shared pointer toward the constraint, or NULL if there is no constraint.

Definition at line 233 of file Parameter.h.

References bpp::Parameter::constraint_.

Referenced by bpp::AbstractParameterAliasable::aliasParameters(), bpp::ReparametrizationFunctionWrapper::init_(), bpp::ParameterList::matchParametersValues(), bpp::AliasParameterListener::parameterConstraintChanged(), bpp::ParameterList::setParametersValues(), and bpp::ParameterList::testParametersValues().

◆ getFirstOrderDerivative()

double bpp::IntervalTransformedParameter::getFirstOrderDerivative ( ) const
inlinevirtual
Returns
The first order derivative of the transformation at the original point.
Exceptions
NotImplementedExceptionif the transformation does not support derivation or if the derivation was not implemented.

Implements bpp::TransformedParameter.

Definition at line 254 of file TransformedParameter.h.

References bpp::Parameter::getValue(), hyper_, lowerBound_, bpp::NumConstants::PI(), scale_, and upperBound_.

◆ getName()

◆ getOriginalValue()

double bpp::IntervalTransformedParameter::getOriginalValue ( ) const
inlinevirtual
Returns
The current value of the parameter in orignal coordinates.

Implements bpp::TransformedParameter.

Definition at line 244 of file TransformedParameter.h.

References bpp::Parameter::getValue(), hyper_, lowerBound_, bpp::NumConstants::PI(), scale_, and upperBound_.

◆ getPrecision()

virtual double bpp::Parameter::getPrecision ( ) const
inlinevirtualinherited

Get the precision of this parameter.

Returns
The precision value.

Definition at line 225 of file Parameter.h.

References bpp::Parameter::precision_.

◆ getSecondOrderDerivative()

double bpp::IntervalTransformedParameter::getSecondOrderDerivative ( ) const
inlinevirtual
Returns
The second order derivative of the transformation at the original point.
Exceptions
NotImplementedExceptionif the transformation does not support derivation or if the derivation was not implemented.

Implements bpp::TransformedParameter.

Definition at line 262 of file TransformedParameter.h.

References bpp::Parameter::getValue(), hyper_, lowerBound_, bpp::NumConstants::PI(), scale_, and upperBound_.

◆ getValue()

◆ hasConstraint()

virtual bool bpp::Parameter::hasConstraint ( ) const
inlinevirtualinherited

Tells if this parameter has a constraint.

Returns
True if this parameter has a contraint.

Definition at line 249 of file Parameter.h.

References bpp::Parameter::constraint_.

Referenced by bpp::AbstractParameterAliasable::aliasParameters(), bpp::ParameterList::matchParametersValues(), bpp::ParameterList::setParametersValues(), and bpp::ParameterList::testParametersValues().

◆ hasParameterListener()

bool Parameter::hasParameterListener ( const std::string &  listenerId)
virtualinherited

Tell is there is a listener with a given id from this parameter.

Parameters
listenerIdThe id of listener to remove.
Returns
True if at list one listener with the given id was found.

Definition at line 165 of file Parameter.cpp.

References bpp::Parameter::listeners_.

◆ removeConstraint()

std::shared_ptr< Constraint > Parameter::removeConstraint ( )
virtualinherited

Remove the constraint associated to this parameter.

Warning! The contraint objet is not deleted.

Returns
A pointer toward the formerly used contraint.

Definition at line 140 of file Parameter.cpp.

References bpp::Parameter::constraint_.

Referenced by bpp::SimpleDiscreteDistribution::restrictToConstraint().

◆ removeParameterListener()

void Parameter::removeParameterListener ( const std::string &  listenerId)
virtualinherited

Remove all listeners with a given id from this parameter.

Parameters
listenerIdThe id of listener to remove.

Definition at line 149 of file Parameter.cpp.

References bpp::Parameter::listenerAttach_, and bpp::Parameter::listeners_.

Referenced by bpp::AbstractParameterAliasable::unaliasParameters().

◆ setConstraint()

void Parameter::setConstraint ( std::shared_ptr< Constraint constraint)
virtualinherited

◆ setName()

virtual void bpp::Parameter::setName ( const std::string &  name)
inlinevirtualinherited

Set the name of this parameter.

Parameters
namethe new parameter name.

Definition at line 185 of file Parameter.h.

References bpp::Parameter::fireParameterNameChanged(), and bpp::Parameter::name_.

Referenced by bpp::ParametrizableCollection< N >::addObject(), and bpp::FullHmmTransitionMatrix::setTransitionProbabilities().

◆ setOriginalValue()

void bpp::IntervalTransformedParameter::setOriginalValue ( double  value)
inlinevirtual

Set the value of the parameter using the orignal coordinate system.

Parameters
valueParameter value in original coordinates.
Exceptions
ConstraintExceptionif the value is not correct.

Implements bpp::TransformedParameter.

Definition at line 236 of file TransformedParameter.h.

References hyper_, lowerBound_, bpp::NumConstants::PI(), scale_, bpp::Parameter::setValue(), and upperBound_.

◆ setPrecision()

void Parameter::setPrecision ( double  precision)
inherited

Set the precision of this parameter.

Parameters
precisionthe new parameter precision.

Precision:

Definition at line 124 of file Parameter.cpp.

References bpp::Parameter::precision_.

Referenced by bpp::Parameter::Parameter().

◆ setValue()

Member Data Documentation

◆ constraint_

◆ hyper_

bool bpp::IntervalTransformedParameter::hyper_
private

◆ listenerAttach_

std::vector<bool> bpp::Parameter::listenerAttach_
protectedinherited

◆ listeners_

◆ lowerBound_

double bpp::IntervalTransformedParameter::lowerBound_
private

◆ name_

std::string bpp::Parameter::name_
protectedinherited

◆ precision_

double bpp::Parameter::precision_
protectedinherited

◆ PROP_CONSTRAINT_EX

const std::shared_ptr< IntervalConstraint > Parameter::PROP_CONSTRAINT_EX
staticinherited

◆ PROP_CONSTRAINT_IN

◆ R_MINUS

const std::shared_ptr< IntervalConstraint > Parameter::R_MINUS
staticinherited

Definition at line 327 of file Parameter.h.

◆ R_MINUS_STAR

const std::shared_ptr< IntervalConstraint > Parameter::R_MINUS_STAR
staticinherited

Definition at line 328 of file Parameter.h.

◆ R_PLUS

◆ R_PLUS_STAR

const std::shared_ptr< IntervalConstraint > Parameter::R_PLUS_STAR
staticinherited

◆ scale_

double bpp::IntervalTransformedParameter::scale_
private

◆ tiny_

double bpp::IntervalTransformedParameter::tiny_
private

Definition at line 209 of file TransformedParameter.h.

◆ upperBound_

double bpp::IntervalTransformedParameter::upperBound_
private

◆ value_

double bpp::Parameter::value_
protectedinherited

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