aGrUM 3.1.1
a C++ library for (probabilistic) graphical models
gum::DiscreteVariable Class Referenceabstract

Base class for discrete random variable. More...

#include <discreteVariable.h>

Inheritance diagram for gum::DiscreteVariable:
Collaboration diagram for gum::DiscreteVariable:

Public Member Functions

Idx operator[] (std::string_view label) const
 from the label to its index in var.
virtual Idx index (std::string_view label) const =0
virtual std::string label (Idx i) const =0
 get the indice-th label. This method is pure virtual.
std::string toString () const
 string version of *this
std::string toStringWithDescription () const
 string version of *this using description attribute instead of name.
std::string domain () const override=0
 string represent the domain of the variable
virtual std::string stype () const =0
 string represent the type of the variable
Constructors / Destructors
 DiscreteVariable (std::string_view aName, std::string_view aDesc)
 Default constructor.
 DiscreteVariable (const DiscreteVariable &aDRV)
 Copy constructor.
 ~DiscreteVariable () override
 destructor
DiscreteVariableclone () const override=0
 Copy Factory.
Accessors / Modifiers
bool empty () const
virtual Size domainSize () const =0
std::vector< std::string > labels () const
 vector of labels
virtual double numerical (Idx indice) const =0
 get a numerical representation of the indice-th value.
virtual bool isEmpirical () const
bool isNumerical () const
virtual Idx closestIndex (double val) const =0
 for numerical variables, returns the closest index for the value
virtual std::string closestLabel (double val) const
 for numerical variables, returns the closest label for the value
VarType varType () const override=0
 returns the varType of variable
virtual std::string toFast () const =0
Operators
DiscreteVariableoperator= (const DiscreteVariable &aRV)
 Copy operator.
Operators
bool operator== (const Variable &aRV) const
 equality operator
Accessors / Modifiers
void setName (std::string_view theValue)
 sets the name of the variable
const std::string & name () const
 returns the name of the variable
void setDescription (std::string_view theValue) const
 sets the description of the variable
const std::string & description () const
 returns the description of the variable

Protected Member Functions

 DiscreteVariable ()
 (protected) Default constructor
void copy_ (const Variable &aRV)
 protected copy

Private Member Functions

virtual bool _checkSameDomain_ (const Variable &aRV) const =0
 check the domain

Private Attributes

std::string _name_
 the name of the variable
std::string _description_
 the description of the variable since description is not a characteristic of a variable, we allow the description to be changed even in a const reference.

Detailed Description

Base class for discrete random variable.

This class is used as an interface.

Definition at line 80 of file discreteVariable.h.

Constructor & Destructor Documentation

◆ DiscreteVariable() [1/3]

gum::DiscreteVariable::DiscreteVariable ( std::string_view aName,
std::string_view aDesc )

◆ DiscreteVariable() [2/3]

gum::DiscreteVariable::DiscreteVariable ( const DiscreteVariable & aDRV)

Copy constructor.

Copy Constructor.

If aDRV haves any listener, it will not be copied.

Parameters
aDRVthe variable we copy

References DiscreteVariable().

Here is the call graph for this function:

◆ ~DiscreteVariable()

gum::DiscreteVariable::~DiscreteVariable ( )
override

destructor

◆ DiscreteVariable() [3/3]

gum::DiscreteVariable::DiscreteVariable ( )
protected

(protected) Default constructor

Member Function Documentation

◆ _checkSameDomain_()

virtual bool gum::Variable::_checkSameDomain_ ( const Variable & aRV) const
privatepure virtualinherited

check the domain

this function use the assumption that the concrete type of the variable is the same as *this

Implemented in gum::ContinuousVariable< GUM_SCALAR >, gum::DiscretizedVariable< T_TICKS >, gum::IntegerVariable, gum::LabelizedVariable, gum::NumericalDiscreteVariable, and gum::RangeVariable.

References Variable().

Here is the call graph for this function:

◆ clone()

DiscreteVariable * gum::DiscreteVariable::clone ( ) const
nodiscardoverridepure virtual

Copy Factory.

Returns
Returns a pointer on a new copy of this.

Implements gum::Variable.

Implemented in gum::DiscretizedVariable< T_TICKS >, gum::IDiscretizedVariable, gum::IntegerVariable, gum::LabelizedVariable, gum::NumericalDiscreteVariable, and gum::RangeVariable.

References DiscreteVariable().

Here is the call graph for this function:

◆ closestIndex()

virtual Idx gum::DiscreteVariable::closestIndex ( double val) const
pure virtual

for numerical variables, returns the closest index for the value

Implemented in gum::DiscretizedVariable< T_TICKS >, gum::IntegerVariable, gum::LabelizedVariable, gum::NumericalDiscreteVariable, and gum::RangeVariable.

Referenced by gum::Tensor< GUM_SCALAR >::evEq(), gum::Tensor< GUM_SCALAR >::evGt(), gum::Tensor< GUM_SCALAR >::evIn(), and gum::Tensor< GUM_SCALAR >::evLt().

Here is the caller graph for this function:

◆ closestLabel()

virtual std::string gum::DiscreteVariable::closestLabel ( double val) const
virtual

for numerical variables, returns the closest label for the value

Reimplemented in gum::IntegerVariable, and gum::NumericalDiscreteVariable.

◆ copy_()

void gum::Variable::copy_ ( const Variable & aRV)
protectedinherited

protected copy

Parameters
aRVto be copied

References Variable().

Here is the call graph for this function:

◆ description()

const std::string & gum::Variable::description ( ) const
inherited

returns the description of the variable

◆ domain()

std::string gum::DiscreteVariable::domain ( ) const
overridepure virtual

◆ domainSize()

virtual Size gum::DiscreteVariable::domainSize ( ) const
pure virtual
Returns
the number of modalities of the random discrete

Implemented in gum::DiscretizedVariable< T_TICKS >, gum::IntegerVariable, gum::LabelizedVariable, gum::NumericalDiscreteVariable, and gum::RangeVariable.

Referenced by gum::Estimator< GUM_SCALAR >::Estimator(), gum::prm::ClassDependencyGraph< GUM_SCALAR >::_addNode_(), gum::MultiDimFunctionGraphManager< GUM_ELEMENT, TerminalNodePolicy >::_checkIsomorphism_(), gum::TreeOperator< GUM_ELEMENT, COMBINEOPERATOR, TerminalNodePolicy >::_checkRedundancy_(), gum::BayesNetFactory< GUM_SCALAR >::_checkVariableModality_(), gum::MultiDimFunctionGraphOperator< GUM_ELEMENT, FUNCTOR, TerminalNodePolicy >::_compute_(), gum::Regress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::_compute_(), gum::StatesCounter::_incState_(), gum::StatesChecker::_insertState_(), gum::MultiDimFunctionGraphManager< GUM_ELEMENT, TerminalNodePolicy >::_isRedundant_(), gum::StructuredPlaner< GUM_ELEMENT >::_recurArgMaxCopy_(), gum::StructuredPlaner< GUM_ELEMENT >::_recurExtractOptPol_(), gum::credal::CNMonteCarloSampling< GUM_SCALAR, BNInferenceEngine >::_verticesSampling_(), gum::AdaptiveRMaxPlaner::_visitLearner_(), gum::TreeOperator< GUM_ELEMENT, COMBINEOPERATOR, TerminalNodePolicy >::_xPloreDT1_(), gum::TreeOperator< GUM_ELEMENT, COMBINEOPERATOR, TerminalNodePolicy >::_xPloreDT2_(), gum::MultiDimArray< GUM_ELEMENT >::add(), gum::MultiDimDecorator< GUM_ELEMENT >::add(), gum::MultiDimWithOffset< GUM_ELEMENT >::add(), gum::BayesNet< GUM_SCALAR >::addAND(), gum::BayesNet< GUM_SCALAR >::addEXISTS(), gum::BayesNet< GUM_SCALAR >::addFORALL(), gum::prm::PRMFactory< GUM_SCALAR >::addLabel(), gum::BayesNet< GUM_SCALAR >::addOR(), gum::InfluenceDiagram< GUM_SCALAR >::addUtilityNode(), gum::InternalNode::allocateNodeSons(), gum::aggregator::Median< GUM_SCALAR >::buildValue_(), gum::Instantiation::chgVal(), gum::MultiDimWithOffset< GUM_ELEMENT >::computeInstantiationValue_(), gum::InternalNode::deallocateNodeSons(), gum::Instantiation::decVar(), gum::prm::PRMFactory< GUM_SCALAR >::endDiscreteType(), gum::prm::PRMFactory< GUM_SCALAR >::endDiscretizedType(), gum::MultiDimArray< GUM_ELEMENT >::erase(), gum::MultiDimImplementation< GUM_ELEMENT >::erase(), gum::MultiDimWithOffset< GUM_ELEMENT >::erase(), gum::Tensor< GUM_SCALAR >::evGt(), gum::credal::CredalNet< GUM_SCALAR >::fillConstraint(), gum::getMaxModality(), gum::Instantiation::incVar(), gum::MultiDimFunctionGraphManager< GUM_ELEMENT, TerminalNodePolicy >::nodeRedundancyCheck_(), gum::MultiDimFunctionGraphProjector< GUM_ELEMENT, FUNCTOR, TerminalNodePolicy >::project(), gum::MultiDimInterface::replace(), gum::VariableSelector::select(), gum::prm::PRMFactory< GUM_SCALAR >::setCPFByRule(), gum::prm::PRMFactory< GUM_SCALAR >::setCPFByRule(), gum::credal::CredalNet< GUM_SCALAR >::setCPT(), gum::Estimator< GUM_SCALAR >::setFromBN(), gum::Instantiation::setLastVar(), gum::prm::PRMFormAttribute< GUM_SCALAR >::swap(), gum::prm::PRMScalarAttribute< GUM_SCALAR >::swap(), gum::prm::PRMFormAttribute< GUM_SCALAR >::type_(), and gum::prm::PRMScalarAttribute< GUM_SCALAR >::type_().

◆ empty()

bool gum::DiscreteVariable::empty ( ) const
Returns
true if the domainSize() < 2;

◆ index()

virtual Idx gum::DiscreteVariable::index ( std::string_view label) const
pure virtual

Implemented in gum::DiscretizedVariable< T_TICKS >, gum::IntegerVariable, gum::LabelizedVariable, gum::NumericalDiscreteVariable, and gum::RangeVariable.

References label().

Referenced by gum::Tensor< GUM_SCALAR >::deterministicTensor().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isEmpirical()

virtual bool gum::DiscreteVariable::isEmpirical ( ) const
virtual
Returns
true if the domainSize() < 2;

Reimplemented in gum::IDiscretizedVariable.

◆ isNumerical()

bool gum::DiscreteVariable::isNumerical ( ) const
Returns
true if the variable has a meaningful numerical representation (i.e. not Labelized)

◆ label()

virtual std::string gum::DiscreteVariable::label ( Idx i) const
pure virtual

◆ labels()

std::vector< std::string > gum::DiscreteVariable::labels ( ) const

vector of labels

Referenced by gum::LabelizedVariable::LabelizedVariable().

Here is the caller graph for this function:

◆ name()

const std::string & gum::Variable::name ( ) const
inherited

returns the name of the variable

Referenced by gum::learning::IBNLearner::Database::Database(), gum::Estimator< GUM_SCALAR >::Estimator(), gum::NumericalDiscreteVariable::NumericalDiscreteVariable(), gum::MultiDimImplementation< double >::~MultiDimImplementation(), gum::BNdistance< GUM_SCALAR >::_checkCompatibility_(), gum::ASTposteriorProba< GUM_SCALAR >::_compute_knw_from_bn(), gum::prm::PRMFactory< GUM_SCALAR >::_retrieveCommonType_(), gum::prm::PRMFactory< GUM_SCALAR >::_retrieveInputs_(), gum::BayesNetFactory< GUM_SCALAR >::_setCPTAndParents_(), gum::Instantiation::add(), gum::MultiDimImplementation< GUM_ELEMENT >::add(), gum::Instantiation::chgVal(), gum::GibbsBNdistance< GUM_SCALAR >::computeKL_(), gum::InfluenceDiagram< GUM_SCALAR >::copyStructureAndTables_(), gum::FMDP< double >::cost(), gum::prm::PRMFactory< GUM_SCALAR >::endDiscreteType(), gum::prm::PRMFactory< GUM_SCALAR >::endDiscretizedType(), gum::BayesNetFactory< GUM_SCALAR >::endVariableDeclaration(), gum::FMDPFactory< GUM_ELEMENT >::endVariableDeclaration(), gum::BayesNetFragment< GUM_SCALAR >::nodeId(), gum::IBayesNet< GUM_SCALAR >::operator==(), gum::Estimator< GUM_SCALAR >::posterior(), gum::Estimator< GUM_SCALAR >::setFromBN(), gum::Instantiation::setValsFrom(), gum::BayesNetFactory< GUM_SCALAR >::setVariable(), gum::BayesNetFactory< GUM_SCALAR >::setVariableValuesUnchecked(), gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::toDot(), gum::RangeVariable::toFast(), gum::Estimator< GUM_SCALAR >::update(), and gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::varNodeListe().

◆ numerical()

virtual double gum::DiscreteVariable::numerical ( Idx indice) const
pure virtual

get a numerical representation of the indice-th value.

Implemented in gum::DiscretizedVariable< T_TICKS >, gum::IntegerVariable, gum::LabelizedVariable, gum::NumericalDiscreteVariable, and gum::RangeVariable.

Referenced by gum::learning::BNDatabaseGenerator< GUM_SCALAR >::_label_().

Here is the caller graph for this function:

◆ operator=()

DiscreteVariable & gum::DiscreteVariable::operator= ( const DiscreteVariable & aRV)

Copy operator.

Parameters
aRVto be copied
Returns
a ref to *this

References DiscreteVariable().

Here is the call graph for this function:

◆ operator==()

bool gum::Variable::operator== ( const Variable & aRV) const
inherited

equality operator

References Variable().

Here is the call graph for this function:

◆ operator[]()

Idx gum::DiscreteVariable::operator[] ( std::string_view label) const

from the label to its index in var.

Warning
This operation may have different complexity in different subclasses.
Exceptions
NotFound

References label().

Here is the call graph for this function:

◆ setDescription()

void gum::Variable::setDescription ( std::string_view theValue) const
inherited

sets the description of the variable

Warning
since description is mutable, setDescription() is const
Parameters
theValue

◆ setName()

void gum::Variable::setName ( std::string_view theValue)
inherited

sets the name of the variable

Parameters
theValue

◆ stype()

virtual std::string gum::DiscreteVariable::stype ( ) const
pure virtual

◆ toFast()

virtual std::string gum::DiscreteVariable::toFast ( ) const
pure virtual

◆ toString()

std::string gum::DiscreteVariable::toString ( ) const

string version of *this

Referenced by gum::IntegerVariable::IntegerVariable(), and gum::BNdistance< GUM_SCALAR >::_checkCompatibility_().

Here is the caller graph for this function:

◆ toStringWithDescription()

std::string gum::DiscreteVariable::toStringWithDescription ( ) const

string version of *this using description attribute instead of name.

◆ varType()

VarType gum::DiscreteVariable::varType ( ) const
overridepure virtual

returns the varType of variable

Implements gum::Variable.

Implemented in gum::DiscretizedVariable< T_TICKS >, gum::IntegerVariable, gum::LabelizedVariable, gum::NumericalDiscreteVariable, and gum::RangeVariable.

Referenced by gum::learning::BNDatabaseGenerator< GUM_SCALAR >::_label_().

Here is the caller graph for this function:

Member Data Documentation

◆ _description_

std::string gum::Variable::_description_
mutableprivateinherited

the description of the variable since description is not a characteristic of a variable, we allow the description to be changed even in a const reference.

Definition at line 167 of file variable.h.

◆ _name_

std::string gum::Variable::_name_
privateinherited

the name of the variable

Definition at line 162 of file variable.h.


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