![]() |
aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
|
Interface for all classes addressing in a multiDim fashion. More...
#include <agrum/base/multidim/multiDimInterface.h>
Public Member Functions | |
| virtual | ~MultiDimInterface () |
| Class destructor. | |
Accessors / Modifiers | |
| virtual Idx | nbrDim () const =0 |
| Returns the number of vars in the multidimensional container. | |
| virtual Size | domainSize () const =0 |
| Returns the product of the variables domain size. | |
| virtual void | add (const DiscreteVariable &v)=0 |
| Adds a new var to the variables of the multidimensional matrix. | |
| virtual void | erase (const DiscreteVariable &v)=0 |
| Removes a var from the variables of the multidimensional matrix. | |
| virtual const Sequence< const DiscreteVariable * > & | variablesSequence () const =0 |
| Returns a const ref to the sequence of DiscreteVariable*. | |
| virtual const DiscreteVariable & | variable (Idx i) const =0 |
| Returns a const ref to the ith var. | |
| virtual const DiscreteVariable & | variable (const std::string &name) const =0 |
| Returns the variable with the name. | |
| virtual Idx | pos (const DiscreteVariable &v) const =0 |
| Returns the index of a variable. | |
| virtual bool | contains (const DiscreteVariable &v) const =0 |
| Returns true if var is in *this. | |
| virtual bool | empty () const =0 |
| Returns true if no var is in *this. | |
| void | replace (const DiscreteVariable &x, const DiscreteVariable &y) |
| Replace variables in this multidim. | |
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. | |
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 82 of file multiDimInterface.h.
|
inlinevirtual |
Class destructor.
Definition at line 88 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::MultiDimArray< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< bool >, gum::MultiDimFunctionGraph< bool, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< double >, gum::MultiDimFunctionGraph< double, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< gum::ActionSet, gum::SetTerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< Size >, gum::MultiDimFunctionGraph< Size, ExactTerminalNodePolicy >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, gum::MultiDimSparse< GUM_SCALAR >, gum::MultiDimWithOffset< GUM_SCALAR >, and gum::VariableSet &)< GUM_SCALAR >.
Referenced by gum::operator<<().
|
pure virtual |
Returns true if var is in *this.
| v | A DiscreteVariable. |
Implemented in gum::Instantiation, gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, and gum::VariableSet &)< GUM_SCALAR >.
Referenced by replace().
|
pure virtual |
Returns the product of the variables domain size.
Implemented in gum::Instantiation, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, and gum::VariableSet &)< GUM_SCALAR >.
Referenced by gum::MultiDimContainer< GUM_SCALAR >::copyFrom(), gum::MultiDimContainer< GUM_SCALAR >::copyFrom(), gum::MultiDimICIModel< GUM_SCALAR >::copyFrom(), gum::MultiDimContainer< GUM_SCALAR >::operator==(), gum::MultiDimContainer< GUM_SCALAR >::populate(), and gum::MultiDimContainer< GUM_SCALAR >::populate().
|
pure virtual |
Returns true if no var is in *this.
Implemented in gum::Instantiation, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, and gum::VariableSet &)< GUM_SCALAR >.
Referenced by gum::Tensor< GUM_SCALAR >::Tensor().
|
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::MultiDimArray< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< bool >, gum::MultiDimFunctionGraph< bool, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< double >, gum::MultiDimFunctionGraph< double, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< gum::ActionSet, gum::SetTerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< Size >, gum::MultiDimFunctionGraph< Size, ExactTerminalNodePolicy >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, gum::MultiDimSparse< GUM_SCALAR >, gum::MultiDimWithOffset< GUM_SCALAR >, and gum::VariableSet &)< GUM_SCALAR >.
Referenced by gum::MultiDimContainer< GUM_SCALAR >::copy(), and gum::operator>>().
|
pure virtual |
Returns the number of vars in the multidimensional container.
Implemented in gum::Instantiation, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, and gum::VariableSet &)< GUM_SCALAR >.
Referenced by gum::MultiDimContainer< GUM_SCALAR >::copy(), and gum::MultiDimContainer< GUM_SCALAR >::operator==().
|
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::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, and gum::VariableSet &)< 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 56 of file multiDimInterface_inl.h.
References contains(), gum::DiscreteVariable::domainSize(), GUM_ERROR, and replace_().
|
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::MultiDimArray< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< bool >, gum::MultiDimFunctionGraph< bool, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< double >, gum::MultiDimFunctionGraph< double, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< gum::ActionSet, gum::SetTerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >, gum::MultiDimFunctionGraph< Size >, gum::MultiDimFunctionGraph< Size, ExactTerminalNodePolicy >, gum::MultiDimICIModel< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, gum::MultiDimSparse< GUM_SCALAR >, and gum::VariableSet &)< GUM_SCALAR >.
Referenced by replace().
|
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::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), and gum::VariableSet &)< 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::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, and gum::VariableSet &)< GUM_SCALAR >.
Referenced by gum::MultiDimContainer< GUM_SCALAR >::copy(), and gum::MultiDimContainer< double >::getMasterRef().
|
pure virtual |
Returns a const ref to the sequence of DiscreteVariable*.
Implemented in gum::Instantiation, gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< bool >, gum::MultiDimImplementation< double >, gum::MultiDimImplementation< gum::ActionSet >, gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &), gum::MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *), gum::MultiDimImplementation< Size >, gum::MultiDimImplementation< std::string >, and gum::VariableSet &)< GUM_SCALAR >.
Referenced by gum::Tensor< GUM_SCALAR >::Tensor(), gum::Instantiation::_init_(), gum::MultiDimBucket< GUM_SCALAR >::add(), gum::MultiDimBucket< GUM_SCALAR >::erase(), and gum::MultiDimContainer< GUM_SCALAR >::operator==().