bpp-core3  3.0.0
bpp::AutoParameter Class Reference

The AutoParameter class. More...

#include <Bpp/Numeric/AutoParameter.h>

+ Inheritance diagram for bpp::AutoParameter:
+ Collaboration diagram for bpp::AutoParameter:

Public Member Functions

 AutoParameter (const std::string &name="", double value=0, std::shared_ptr< ConstraintInterface > constraint=nullptr)
 Build a new AutoParameter. More...
 
 AutoParameter (const Parameter &param)
 Copy constructor. More...
 
 AutoParameter (const AutoParameter &param)
 Copy constructor. More...
 
AutoParameteroperator= (const AutoParameter &param)
 Assignment operator. More...
 
virtual ~AutoParameter ()
 
AutoParameterclone () const
 Create a copy of this object and send a pointer to it. More...
 
virtual void setValue (double value)
 Set the value of this parameter. More...
 
virtual void setMessageHandler (std::shared_ptr< OutputStream > mh)
 Set the message handler for this AutoParameter. More...
 
virtual void setName (const std::string &name)
 Set the name 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 std::shared_ptr< const ConstraintInterfacegetConstraint () const
 Return the constraint associated to this parameter if there is one. More...
 
virtual std::shared_ptr< ConstraintInterfacegetConstraint ()
 Return the constraint associated to this parameter if there is one. More...
 
virtual const ConstraintInterfaceconstraint () const
 Return the constraint associated to this parameter if there is one. More...
 
virtual ConstraintInterfaceconstraint ()
 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< ConstraintInterfaceremoveConstraint ()
 Remove the constraint associated to this parameter. More...
 
virtual void setConstraint (std::shared_ptr< ConstraintInterface > constraint)
 Set a constraint to this parameter. More...
 
virtual void addParameterListener (std::shared_ptr< ParameterListener > listener)
 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 std::string CONSTRAINTS_AUTO = "auto"
 
static std::string CONSTRAINTS_IGNORE = "ignore"
 
static std::string CONSTRAINTS_KEEP = "keep"
 
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< ConstraintInterfaceconstraint_
 
std::vector< std::shared_ptr< ParameterListener > > listeners_
 

Private Attributes

std::shared_ptr< OutputStreammessageHandler_
 

Detailed Description

The AutoParameter class.

This class overides the setValue() method of class Parameter so that no Exception is thrown. This allows to perform optimization under constraint.

Definition at line 23 of file AutoParameter.h.

Constructor & Destructor Documentation

◆ AutoParameter() [1/3]

AutoParameter::AutoParameter ( const std::string &  name = "",
double  value = 0,
std::shared_ptr< ConstraintInterface constraint = nullptr 
)

Build a new AutoParameter.

Parameters
nameThe parameter name.
valueThe parameter value.
constraintAn optional shared pointer toward a Constraint object.
Exceptions
ConstraintExceptionIf the parameter value does not match the contraint.

Constructors:

Definition at line 26 of file AutoParameter.cpp.

Referenced by clone().

◆ AutoParameter() [2/3]

AutoParameter::AutoParameter ( const Parameter param)

Copy constructor.

Parameters
paramThe parameter to copy.

Definition at line 29 of file AutoParameter.cpp.

◆ AutoParameter() [3/3]

AutoParameter::AutoParameter ( const AutoParameter param)

Copy constructor.

Parameters
paramThe parameter to copy.

Definition at line 31 of file AutoParameter.cpp.

◆ ~AutoParameter()

virtual bpp::AutoParameter::~AutoParameter ( )
inlinevirtual

Definition at line 61 of file AutoParameter.h.

Member Function Documentation

◆ addParameterListener()

virtual void bpp::Parameter::addParameterListener ( std::shared_ptr< ParameterListener listener)
inlinevirtualinherited

Add a new listener to this parameter.

Parameters
listenerThe listener to add.

Definition at line 261 of file Parameter.h.

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

◆ clone()

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

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

Returns
A pointer toward the copy object.

Implements bpp::Clonable.

Definition at line 63 of file AutoParameter.h.

References AutoParameter(), and setValue().

◆ constraint() [1/2]

virtual const ConstraintInterface& bpp::Parameter::constraint ( ) const
inlinevirtualinherited

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

Returns
A referec toward the constraint if there is one, otherwise throw an exception.

Definition at line 203 of file Parameter.h.

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

◆ constraint() [2/2]

virtual ConstraintInterface& bpp::Parameter::constraint ( )
inlinevirtualinherited

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

Returns
A referec toward the constraint if there is one, otherwise throw an exception.

Definition at line 225 of file Parameter.h.

◆ fireParameterConstraintChanged()

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

Definition at line 298 of file Parameter.h.

◆ fireParameterNameChanged()

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

Definition at line 282 of file Parameter.h.

◆ fireParameterValueChanged()

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

Definition at line 290 of file Parameter.h.

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

◆ getConstraint() [1/2]

virtual std::shared_ptr<const ConstraintInterface> 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 196 of file Parameter.h.

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

◆ getConstraint() [2/2]

virtual std::shared_ptr<ConstraintInterface> 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 218 of file Parameter.h.

◆ getName()

◆ getPrecision()

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

Get the precision of this parameter.

Returns
The precision value.

Definition at line 188 of file Parameter.h.

◆ 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 238 of file Parameter.h.

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 104 of file Parameter.cpp.

References bpp::Parameter::listeners_, bpp::Parameter::PROP_CONSTRAINT_EX, bpp::Parameter::PROP_CONSTRAINT_IN, bpp::Parameter::R_MINUS, bpp::Parameter::R_MINUS_STAR, bpp::Parameter::R_PLUS, and bpp::Parameter::R_PLUS_STAR.

◆ operator=()

AutoParameter & AutoParameter::operator= ( const AutoParameter param)

Assignment operator.

Parameters
paramThe parameter to copy.

Definition at line 33 of file AutoParameter.cpp.

References messageHandler_, and bpp::Parameter::operator=().

◆ removeConstraint()

std::shared_ptr< ConstraintInterface > 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 85 of file Parameter.cpp.

References bpp::Parameter::constraint_.

Referenced by bpp::AbstractParametrizable::removeConstraint(), and 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 94 of file Parameter.cpp.

References bpp::Parameter::listeners_.

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

◆ setConstraint()

◆ setMessageHandler()

virtual void bpp::AutoParameter::setMessageHandler ( std::shared_ptr< OutputStream mh)
inlinevirtual

Set the message handler for this AutoParameter.

The message handler keeps all messages that the parameter may send. The default handler is set to standard output, but you can pass any ostream object (cerr, ofstream, etc.).

A NULL pointer disable message output.

Parameters
mhThe message handler to use.

Definition at line 95 of file AutoParameter.h.

Referenced by bpp::DirectionFunction::autoParameter(), bpp::AbstractOptimizer::autoParameter(), and bpp::BppODiscreteDistributionFormat::initialize_().

◆ 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 148 of file Parameter.h.

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

◆ setPrecision()

void Parameter::setPrecision ( double  precision)
inherited

Set the precision of this parameter.

Parameters
precisionthe new parameter precision.

Precision:

Definition at line 69 of file Parameter.cpp.

References bpp::Parameter::precision_.

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

◆ setValue()

void AutoParameter::setValue ( double  value)
virtual

Set the value of this parameter.

This method is redefined so that no constraintException is thrown! When a Constraint is match, we automatically apply a correct value instead. This correct value is the nearest limit reached by the value, or a value next to the limit if the limit is not reachable.

This allow to perform optimization under constraint whith algorithms that are not initially built for this.

Parameters
valuethe new parameter value.

Reimplemented from bpp::Parameter.

Definition at line 42 of file AutoParameter.cpp.

References bpp::Parameter::constraint_, bpp::ConstraintException::getBadValue(), messageHandler_, bpp::Parameter::name_, bpp::Parameter::setValue(), and bpp::NumConstants::TINY().

Referenced by clone().

Member Data Documentation

◆ constraint_

std::shared_ptr<ConstraintInterface> bpp::Parameter::constraint_
protectedinherited

◆ CONSTRAINTS_AUTO

◆ CONSTRAINTS_IGNORE

string AutoParameter::CONSTRAINTS_IGNORE = "ignore"
static

◆ CONSTRAINTS_KEEP

string AutoParameter::CONSTRAINTS_KEEP = "keep"
static

◆ listeners_

std::vector< std::shared_ptr<ParameterListener> > bpp::Parameter::listeners_
protectedinherited

◆ messageHandler_

std::shared_ptr<OutputStream> bpp::AutoParameter::messageHandler_
private

Definition at line 27 of file AutoParameter.h.

Referenced by operator=(), and setValue().

◆ name_

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

Definition at line 101 of file Parameter.h.

Referenced by bpp::Parameter::operator=(), and setValue().

◆ 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 309 of file Parameter.h.

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

◆ R_MINUS_STAR

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

Definition at line 310 of file Parameter.h.

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

◆ R_PLUS

◆ R_PLUS_STAR

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

◆ value_

double bpp::Parameter::value_
protectedinherited

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