![]() |
aGrUM
0.20.3
a C++ library for (probabilistic) graphical models
|
Interface for all classes addressing in a multiDim fashion. More...
#include <agrum/tools/multidim/multiDimInterface.h>
Public Member Functions | |
virtual | ~MultiDimInterface () |
Class destructor. More... | |
Accessors / Modifiers | |
virtual Idx | nbrDim () const =0 |
Returns the number of vars in the multidimensional container. More... | |
virtual Size | domainSize () const =0 |
Returns the product of the variables domain size. More... | |
virtual void | add (const DiscreteVariable &v)=0 |
Adds a new var to the variables of the multidimensional matrix. More... | |
virtual void | erase (const DiscreteVariable &v)=0 |
Removes a var from the variables of the multidimensional matrix. More... | |
virtual const Sequence< const DiscreteVariable *> & | variablesSequence () const =0 |
Returns a const ref to the sequence of DiscreteVariable*. More... | |
virtual const DiscreteVariable & | variable (Idx i) const =0 |
Returns a const ref to the ith var. More... | |
virtual const DiscreteVariable & | variable (const std::string &name) const =0 |
Returns the variable with the name. More... | |
virtual Idx | pos (const DiscreteVariable &v) const =0 |
Returns the index of a variable. More... | |
virtual bool | contains (const DiscreteVariable &v) const =0 |
Returns true if var is in *this. More... | |
virtual bool | empty () const =0 |
Returns true if no var is in *this. More... | |
void | replace (const DiscreteVariable &x, const DiscreteVariable &y) |
Replace variables in this multidim. More... | |
Protected Member Functions | |
virtual void | replace_ (const DiscreteVariable *x, const DiscreteVariable *y)=0 |
This is called by MultiDimContainer::replace() to proceed with the replacing between x and y. More... | |
Interface for all classes addressing in a multiDim fashion.
This class is a base interface for Instantiation and for all classes addressed by a Instantiation (mainly: MultiDimContainer and hence for all dimensionnal containers). Its purpose is to deal with the dimensions.
Definition at line 64 of file multiDimInterface.h.
|
inlinevirtual |
Class destructor.
Definition at line 70 of file multiDimInterface.h.
|
pure virtual |
Adds a new var to the variables of the multidimensional matrix.
v | The new var. |
DuplicateElement | Raised if the variable already belongs to the sequence of variables. |
OperationNotAllowed | Raised if this object is non mutable. |
Implemented in gum::Instantiation, gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< Size >, gum::MultiDimFunctionGraph< double >, gum::MultiDimFunctionGraph< GUM_SCALAR >, gum::MultiDimFunctionGraph< double, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< Size, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< gum::ActionSet, gum::SetTerminalNodePolicy >, gum::MultiDimFunctionGraph< bool >, gum::MultiDimFunctionGraph< bool, ExactTerminalNodePolicy >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, gum::MultiDimArray< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimSparse< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
|
pure virtual |
Returns true if var is in *this.
v | A DiscreteVariable. |
Implemented in gum::Instantiation, gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, and gum::MultiDimDecorator< GUM_SCALAR >.
|
pure virtual |
Returns the product of the variables domain size.
Implemented in gum::Instantiation, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, and gum::MultiDimDecorator< GUM_SCALAR >.
|
pure virtual |
Returns true if no var is in *this.
Implemented in gum::Instantiation, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, and gum::MultiDimDecorator< GUM_SCALAR >.
|
pure virtual |
Removes a var from the variables of the multidimensional matrix.
OperationNotAllowed | Raised if this object is non mutable. |
NotFound | Raised if v does not belong to this. |
Implemented in gum::Instantiation, gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< Size >, gum::MultiDimFunctionGraph< double >, gum::MultiDimFunctionGraph< GUM_SCALAR >, gum::MultiDimFunctionGraph< double, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< Size, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< gum::ActionSet, gum::SetTerminalNodePolicy >, gum::MultiDimFunctionGraph< bool >, gum::MultiDimFunctionGraph< bool, ExactTerminalNodePolicy >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, gum::MultiDimArray< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimSparse< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
|
pure virtual |
Returns the number of vars in the multidimensional container.
Implemented in gum::Instantiation, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, and gum::MultiDimDecorator< GUM_SCALAR >.
|
pure virtual |
Returns the index of a variable.
v | The variable for which the index is returned. |
NotFound | Raised if v is not in this multidimensional matrix. |
Implemented in gum::Instantiation, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, and gum::MultiDimDecorator< GUM_SCALAR >.
INLINE void gum::MultiDimInterface::replace | ( | const DiscreteVariable & | x, |
const DiscreteVariable & | y | ||
) |
Replace variables in this multidim.
If x is in this MultiDim and y has the same domain size, then x will be replace by y in this MultiDim.
x | The variable in this which will be replaced. |
y | The variable replacing y. |
NotFound | Raised if x does not belong to this MultiDim. |
OperationNotAllowed | If y and x are not interchangeable. |
DuplicateElement | If y is already in this MultiDim. |
Definition at line 35 of file multiDimInterface_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
protectedpure virtual |
This is called by MultiDimContainer::replace() to proceed with the replacing between x and y.
This is called only when everything have been checked.
x | The variable to replace in |
y | The second variable to swap. |
Implemented in gum::Instantiation, gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< Size >, gum::MultiDimFunctionGraph< double >, gum::MultiDimFunctionGraph< GUM_SCALAR >, gum::MultiDimFunctionGraph< double, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< Size, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< gum::ActionSet, gum::SetTerminalNodePolicy >, gum::MultiDimFunctionGraph< bool >, gum::MultiDimFunctionGraph< bool, ExactTerminalNodePolicy >, gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimArray< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimICIModel< GUM_SCALAR >, and gum::MultiDimSparse< GUM_SCALAR >.
|
pure virtual |
Returns a const ref to the ith var.
param i An index of this multidimensional matrix.
NotFound | Raised if i does not reference a variable in this multidimensional matrix. |
Implemented in gum::Instantiation, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, and gum::MultiDimDecorator< GUM_SCALAR >.
|
pure virtual |
Returns the variable with the name.
name | The index of the variable |
NotFound | Raised if the element cannot be found. |
Implemented in gum::Instantiation, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, and gum::MultiDimDecorator< GUM_SCALAR >.
|
pure virtual |
Returns a const ref to the sequence of DiscreteVariable*.
Implemented in gum::Instantiation, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, and gum::MultiDimDecorator< GUM_SCALAR >.