![]() |
aGrUM
0.20.3
a C++ library for (probabilistic) graphical models
|
Abstract base class for all multi dimensionnal addressable. More...
#include <agrum/tools/multidim/multiDimAdressable.h>
Public Member Functions | |
Constructors / Destructors | |
MultiDimAdressable () | |
Default constructor. More... | |
MultiDimAdressable (const MultiDimAdressable &from) | |
Copy constructor. More... | |
MultiDimAdressable & | operator= (const MultiDimAdressable &from) |
Default constructor. More... | |
MultiDimAdressable (MultiDimAdressable &&) noexcept | |
Class move constructor. More... | |
MultiDimAdressable & | operator= (MultiDimAdressable &&from) noexcept |
Default constructor. More... | |
~MultiDimAdressable () override | |
Destructor. More... | |
Slave management and extension due to slave management | |
virtual MultiDimAdressable & | getMasterRef ()=0 |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer. More... | |
virtual const MultiDimAdressable & | getMasterRef () const =0 |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer. More... | |
virtual bool | registerSlave (Instantiation &i)=0 |
Register i as a slave of this MultiDimAdressable. More... | |
virtual bool | unregisterSlave (Instantiation &i)=0 |
Unregister i as a slave of this MultiDimAdressable. More... | |
virtual void | changeNotification (const Instantiation &i, const DiscreteVariable *const var, Idx oldval, Idx newval)=0 |
Listen to changes in a given Instantiation. More... | |
virtual void | setFirstNotification (const Instantiation &i)=0 |
Listen to setFirst in a given Instantiation. More... | |
virtual void | setLastNotification (const Instantiation &i)=0 |
Listen to setLast in a given Instantiation. More... | |
virtual void | setIncNotification (const Instantiation &i)=0 |
Listen to increment in a given Instantiation. More... | |
virtual void | setDecNotification (const Instantiation &i)=0 |
Listen to increment in each recorded Instantiation. More... | |
virtual void | setChangeNotification (const Instantiation &i)=0 |
Listen to an assignment of a value in a Instantiation. More... | |
virtual std::string | toString (const Instantiation *i) const =0 |
Return a string representation of internal data about i in this. 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... | |
Abstract base class for all multi dimensionnal addressable.
MultiDimAdressable is the abstract base class for all multi dimensionnal adressable. Its purpose is to deal with slave Instantiation and notification.
Definition at line 58 of file multiDimAdressable.h.
INLINE gum::MultiDimAdressable::MultiDimAdressable | ( | ) |
Default constructor.
Definition at line 44 of file multiDimAdressable_inl.h.
References gum::Set< Key, Alloc >::emplace().
INLINE gum::MultiDimAdressable::MultiDimAdressable | ( | const MultiDimAdressable & | from | ) |
Copy constructor.
Definition at line 46 of file multiDimAdressable_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
noexcept |
Class move constructor.
Definition at line 39 of file multiDimAdressable_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
override |
Destructor.
Definition at line 50 of file multiDimAdressable_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
pure virtualinherited |
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 |
Listen to changes in a given Instantiation.
i | The Instantiation to listen. |
var | The changed dim. |
oldval | The old value. |
newval | The changed value. |
Implemented in 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::MultiDimDecorator< GUM_SCALAR >, gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimWithOffset< GUM_SCALAR >, and gum::MultiDimICIModel< GUM_SCALAR >.
|
pure virtualinherited |
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 virtualinherited |
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 virtualinherited |
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 virtualinherited |
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 |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Implemented in gum::MultiDimContainer< GUM_SCALAR >, and gum::MultiDimBucket< GUM_SCALAR >.
|
pure virtual |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Implemented in gum::MultiDimContainer< GUM_SCALAR >, and gum::MultiDimBucket< GUM_SCALAR >.
|
pure virtualinherited |
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 >.
INLINE MultiDimAdressable & gum::MultiDimAdressable::operator= | ( | const MultiDimAdressable & | from | ) |
Default constructor.
Definition at line 52 of file multiDimAdressable_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
noexcept |
Default constructor.
Definition at line 57 of file multiDimAdressable_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
pure virtualinherited |
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 >.
|
pure virtual |
Register i as a slave of this MultiDimAdressable.
i | The Instantiation to enslave. |
Implemented in gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, gum::MultiDimDecorator< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
|
inherited |
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 virtualinherited |
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 |
Listen to an assignment of a value in a Instantiation.
i | The Instantiation to listen. |
Implemented in 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::MultiDimDecorator< GUM_SCALAR >, gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimICIModel< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
|
pure virtual |
Listen to increment in each recorded Instantiation.
i | The Instantiation to listen. |
Implemented in 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::MultiDimDecorator< GUM_SCALAR >, gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimWithOffset< GUM_SCALAR >, and gum::MultiDimICIModel< GUM_SCALAR >.
|
pure virtual |
Listen to setFirst in a given Instantiation.
i | The Instantiation to listen. |
Implemented in 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::MultiDimDecorator< GUM_SCALAR >, gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimWithOffset< GUM_SCALAR >, and gum::MultiDimICIModel< GUM_SCALAR >.
|
pure virtual |
Listen to increment in a given Instantiation.
i | The Instantiation to listen. |
Implemented in 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::MultiDimDecorator< GUM_SCALAR >, gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimWithOffset< GUM_SCALAR >, and gum::MultiDimICIModel< GUM_SCALAR >.
|
pure virtual |
Listen to setLast in a given Instantiation.
i | The Instantiation to listen. |
Implemented in 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::MultiDimDecorator< GUM_SCALAR >, gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimWithOffset< GUM_SCALAR >, and gum::MultiDimICIModel< GUM_SCALAR >.
|
pure virtual |
Return a string representation of internal data about i in this.
i | The Instantiation to represent. |
Implemented in gum::MultiDimContainer< GUM_SCALAR >, gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimDecorator< 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::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimICIModel< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
|
pure virtual |
Unregister i as a slave of this MultiDimAdressable.
i | The Instantiation to free. |
Implemented in gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimImplementation< GUM_SCALAR >, gum::MultiDimImplementation< std::string >, gum::MultiDimDecorator< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
|
pure virtualinherited |
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 virtualinherited |
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 virtualinherited |
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 >.