![]() |
aGrUM
0.16.0
|
Decorator design pattern in order to separate implementations from multidimensional matrix concepts. More...
#include <agrum/multidim/multiDimDecorator.h>
Public Member Functions | |
Constructors / Destructors | |
MultiDimDecorator (MultiDimImplementation< GUM_SCALAR > *aContent=nullptr, GUM_SCALAR empty_value=(GUM_SCALAR) 0) | |
Class constructor. More... | |
MultiDimDecorator (const MultiDimDecorator< GUM_SCALAR > &from) | |
copy constructor & assignment More... | |
MultiDimDecorator< GUM_SCALAR > & | operator= (const MultiDimDecorator &from) noexcept |
copy operator More... | |
MultiDimDecorator (MultiDimDecorator< GUM_SCALAR > &&) noexcept | |
Class move constructor. More... | |
MultiDimDecorator< GUM_SCALAR > & | operator= (MultiDimDecorator &&from) |
assignment operator. More... | |
~MultiDimDecorator () | |
Class destructor. More... | |
MultiDimInterface implementation | |
virtual Idx | nbrDim () const final |
Returns the number of vars in the multidimensional container. More... | |
virtual Size | domainSize () const final |
Returns the product of the variables domain size. More... | |
virtual void | add (const DiscreteVariable &v) final |
Adds a new var to the variables of the multidimensional matrix. More... | |
virtual void | erase (const DiscreteVariable &var) final |
Removes a var from the variables of the multidimensional matrix. More... | |
virtual const Sequence< const DiscreteVariable *> & | variablesSequence () const final |
Returns a const ref to the sequence of DiscreteVariable*. More... | |
virtual const DiscreteVariable & | variable (Idx) const final |
Returns a const ref to the ith var. More... | |
virtual const DiscreteVariable & | variable (const std::string &name) const final |
Returns the variable with the name. More... | |
virtual Idx | pos (const DiscreteVariable &var) const final |
Returns the index of a variable. More... | |
virtual bool | contains (const DiscreteVariable &var) const final |
Returns true if var is in *this. More... | |
virtual bool | empty () const final |
Returns true if no var is in *this. More... | |
MultiDimAdressable implementation | |
virtual bool | unregisterSlave (Instantiation &i) final |
Unregister i as a slave of this MultiDimAdressable. More... | |
virtual bool | registerSlave (Instantiation &i) final |
Register i as a slave of this MultiDimAdressable. More... | |
virtual void | changeNotification (const Instantiation &i, const DiscreteVariable *const var, Idx oldval, Idx newval) final |
Listen to changes in a given Instantiation. More... | |
virtual void | setChangeNotification (const Instantiation &i) final |
Listen to an assignment of a value in a Instantiation. More... | |
virtual void | setFirstNotification (const Instantiation &i) final |
Listen to setFirst in a given Instantiation. More... | |
virtual void | setLastNotification (const Instantiation &i) final |
Listen to setLast in a given Instantiation. More... | |
virtual void | setIncNotification (const Instantiation &i) final |
Listen to increment in a given Instantiation. More... | |
virtual void | setDecNotification (const Instantiation &i) final |
Listen to increment in each recorded Instantiation. More... | |
virtual void | notifyChange () const final |
MultiDimContainer implementation | |
virtual void | set (const Instantiation &i, const GUM_SCALAR &value) const final |
Default implementation of MultiDimContainer::set(). More... | |
virtual GUM_SCALAR | get (const Instantiation &i) const final |
Default implementation of MultiDimContainer::get(). More... | |
virtual void | fill (const GUM_SCALAR &d) const final |
Default implementation of MultiDimContainer::set(). More... | |
virtual void | populate (const std::vector< GUM_SCALAR > &v) const final |
Automatically fills this MultiDimContainer with the values in v. More... | |
virtual void | apply (std::function< GUM_SCALAR(GUM_SCALAR) > f) const final |
Apply a function on every element of the container. More... | |
virtual GUM_SCALAR | reduce (std::function< GUM_SCALAR(GUM_SCALAR, GUM_SCALAR) > f, GUM_SCALAR base) const final |
compute lfold for this container More... | |
virtual MultiDimDecorator< GUM_SCALAR > * | newFactory () const =0 |
Default implementation of MultiDimContainer::set(). More... | |
virtual void | beginMultipleChanges () final |
Default implementation of MultiDimContainer::set(). More... | |
virtual void | endMultipleChanges () final |
Default implementation of MultiDimContainer::set(). More... | |
virtual void | endMultipleChanges (const GUM_SCALAR &) final |
Default implementation of MultiDimContainer::set(). More... | |
virtual const std::string | toString (const Instantiation *i) const |
Default implementation of MultiDimContainer::set(). More... | |
virtual const std::string | toString () const |
Default implementation of MultiDimContainer::set(). More... | |
Various methods. | |
virtual const MultiDimImplementation< GUM_SCALAR > * | content () const final |
Returns the implementation for this object (may be *this). More... | |
virtual MultiDimImplementation< GUM_SCALAR > * | content () final |
Returns the implementation for this object (may be *this). More... | |
Accessors / Modifiers | |
GUM_SCALAR | operator[] (const Instantiation &i) const |
An [] operator using a Instantiation as argument. More... | |
virtual void | populate (std::initializer_list< GUM_SCALAR > l) const |
Automatically fills this MultiDimContainer with the values in l. More... | |
Copy methods. | |
virtual void | copyFrom (const MultiDimContainer< GUM_SCALAR > &src) const |
Basic copy of a MultiDimContainer. More... | |
virtual void | copyFrom (const MultiDimContainer< GUM_SCALAR > &src, Instantiation *p_i) const |
Basic copy of a MultiDimContainer. More... | |
virtual void | extractFrom (const MultiDimContainer< GUM_SCALAR > &src, const Instantiation &mask) |
Basic extraction of a MultiDimContainer. More... | |
virtual MultiDimAdressable & | getMasterRef () |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer. More... | |
virtual const MultiDimAdressable & | getMasterRef () const |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer. More... | |
virtual void | copy (const MultiDimContainer< GUM_SCALAR > &src) |
Removes all variables in this MultiDimContainer and copy the content of src, variables included. More... | |
Various methods. | |
bool | operator== (const MultiDimContainer< GUM_SCALAR > &p) const |
Test if this MultiDimContainer is equal to p. More... | |
bool | operator!= (const MultiDimContainer< GUM_SCALAR > &p) const |
Test if this MultiDimContainer is different of p. More... | |
Accessors / Modifiers | |
void | replace (const DiscreteVariable &x, const DiscreteVariable &y) |
Replace variables in this multidim. More... | |
Protected Attributes | |
MultiDimImplementation< GUM_SCALAR > * | _content |
The true container. More... | |
GUM_SCALAR | _empty_value |
value of the MultiDimDecorator if no dimension. More... | |
Protected Member Functions | |
virtual void | _replace (const DiscreteVariable *x, const DiscreteVariable *y) |
This is called by MultiDimContainer::replace() to proceed with the replacing between x and y. More... | |
void | _swapContent (MultiDimImplementation< GUM_SCALAR > *aContent) const |
protecte method to swap the implementation behind the Potential More... | |
GUM_SCALAR & | _get (const Instantiation &i) const final |
Return a data, given a Insantiation - final method. More... | |
Decorator design pattern in order to separate implementations from multidimensional matrix concepts.
A MultiDimDecorator is a virtual class for all encapsulation of MultiDimImplementation, for example probability, utility, etc. It implements a decorator design pattern in order to have a array, tree, sparse or matrix (...) implementation of MultiDimImplementation.
GUM_SCALAR | The type of the scalar stored in this multidimensional matrix. |
Definition at line 59 of file multiDimDecorator.h.
INLINE gum::MultiDimDecorator< GUM_SCALAR >::MultiDimDecorator | ( | MultiDimImplementation< GUM_SCALAR > * | aContent = nullptr , |
GUM_SCALAR | empty_value = (GUM_SCALAR)0 |
||
) |
Class constructor.
aContent | The implementation used by this MultiDimDecorator. |
Definition at line 67 of file multiDimDecorator_tpl.h.
INLINE gum::MultiDimDecorator< GUM_SCALAR >::MultiDimDecorator | ( | const MultiDimDecorator< GUM_SCALAR > & | from | ) |
copy constructor & assignment
Definition at line 76 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, gum::MultiDimDecorator< GUM_SCALAR >::content(), and gum::MultiDimDecorator< GUM_SCALAR >::operator=().
|
noexcept |
Class move constructor.
Definition at line 105 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, and gum::MultiDimDecorator< GUM_SCALAR >::operator=().
INLINE gum::MultiDimDecorator< GUM_SCALAR >::~MultiDimDecorator | ( | ) |
Class destructor.
Definition at line 132 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
finalprotectedvirtual |
Return a data, given a Insantiation - final method.
i | The instantiation. |
NullElement | |
NotFound |
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 142 of file multiDimDecorator_tpl.h.
References GUM_ERROR.
|
protectedvirtual |
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. |
Implements gum::MultiDimInterface.
Definition at line 416 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::content().
|
protected |
protecte method to swap the implementation behind the Potential
Definition at line 393 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
finalvirtual |
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. |
Implements gum::MultiDimInterface.
Definition at line 176 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, gum::DiscreteVariable::domainSize(), and GUM_ERROR.
Referenced by gum::prm::gspan::StrictSearch< GUM_SCALAR >::__elimination_cost(), gum::prm::PRMSystem< double >::__groundPotential(), gum::prm::GroundedInference< GUM_SCALAR >::_evidenceAdded(), gum::prm::PRMInference< double >::addEvidence(), gum::BayesNetInference< GUM_SCALAR >::addEvidence(), gum::BayesNetInference< GUM_SCALAR >::chgEvidence(), gum::prm::copyPotential(), gum::MarginalTargetedInference< GUM_SCALAR >::evidenceImpact(), gum::JointTargetedInference< GUM_SCALAR >::evidenceJointImpact(), gum::prm::PRMInference< double >::joint(), gum::prm::PRMInference< double >::marginal(), gum::prm::PRMInference< double >::operator=(), gum::Potential< GUM_SCALAR >::Potential(), gum::prm::PRMInference< double >::PRMInference(), and gum::Potential< GUM_SCALAR >::reorganize().
|
finalvirtual |
Apply a function on every element of the container.
f | the function to apply |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 339 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, and gum::MultiDimDecorator< GUM_SCALAR >::empty().
Referenced by gum::Potential< GUM_SCALAR >::abs(), gum::Potential< GUM_SCALAR >::isNonZeroMap(), gum::Potential< GUM_SCALAR >::normalize(), gum::Potential< GUM_SCALAR >::operator-(), gum::Potential< GUM_SCALAR >::operator/(), gum::Potential< GUM_SCALAR >::scale(), gum::Potential< GUM_SCALAR >::sq(), and gum::Potential< GUM_SCALAR >::translate().
|
finalvirtual |
Default implementation of MultiDimContainer::set().
Calls _get as a r-value.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 374 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::BayesNet< double >::__copyPotentials(), gum::BayesNetInference< GUM_SCALAR >::__createHardEvidence(), gum::Potential< GUM_SCALAR >::Potential(), and gum::Potential< GUM_SCALAR >::reorganize().
|
finalvirtual |
Listen to changes in a given Instantiation.
i | The Instantiation to listen. |
var | The changed dim. |
oldval | The old value. |
newval | The changed value. |
Implements gum::MultiDimAdressable.
Definition at line 187 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
finalvirtual |
Returns true if var is in *this.
v | A DiscreteVariable. |
Implements gum::MultiDimInterface.
Definition at line 275 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::_marginal(), gum::prm::PRMInference< double >::addEvidence(), gum::Potential< GUM_SCALAR >::KL(), gum::Potential< GUM_SCALAR >::putFirst(), and gum::Potential< GUM_SCALAR >::reorganize().
|
finalvirtual |
Returns the implementation for this object (may be *this).
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 369 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::MultiDimDecorator< GUM_SCALAR >::_replace(), gum::prm::copyPotential(), gum::Potential< GUM_SCALAR >::margMaxIn(), gum::Potential< GUM_SCALAR >::margMaxOut(), gum::Potential< GUM_SCALAR >::margMinIn(), gum::Potential< GUM_SCALAR >::margMinOut(), gum::Potential< GUM_SCALAR >::margProdIn(), gum::Potential< GUM_SCALAR >::margProdOut(), gum::Potential< GUM_SCALAR >::margSumIn(), gum::Potential< GUM_SCALAR >::margSumOut(), gum::Potential< GUM_SCALAR >::max(), gum::Potential< GUM_SCALAR >::min(), gum::MultiDimDecorator< GUM_SCALAR >::MultiDimDecorator(), gum::Potential< GUM_SCALAR >::newFactory(), gum::Potential< GUM_SCALAR >::operator*(), gum::Potential< GUM_SCALAR >::operator+(), gum::Potential< GUM_SCALAR >::operator-(), gum::Potential< GUM_SCALAR >::operator/(), gum::MultiDimDecorator< GUM_SCALAR >::operator=(), gum::Potential< GUM_SCALAR >::Potential(), gum::Potential< GUM_SCALAR >::product(), and gum::Potential< GUM_SCALAR >::sum().
|
finalvirtual |
Returns the implementation for this object (may be *this).
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 362 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
virtualinherited |
Removes all variables in this MultiDimContainer and copy the content of src, variables included.
src | The MultiDimContainer to copy. |
Reimplemented in gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR >, and gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >.
Definition at line 282 of file multiDimContainer_tpl.h.
References gum::MultiDimInterface::add(), gum::MultiDimContainer< GUM_SCALAR >::beginMultipleChanges(), gum::MultiDimContainer< GUM_SCALAR >::copyFrom(), gum::MultiDimContainer< GUM_SCALAR >::endMultipleChanges(), gum::MultiDimInterface::erase(), gum::MultiDimInterface::nbrDim(), and gum::MultiDimInterface::variable().
Referenced by gum::MCBayesNetGenerator< GUM_SCALAR, ICPTGenerator, ICPTDisturber >::__eraseArc(), and gum::MCBayesNetGenerator< GUM_SCALAR, ICPTGenerator, ICPTDisturber >::disturbBN().
|
virtualinherited |
Basic copy of a MultiDimContainer.
This method is virtual because it should be optimized in certain MultiDimContainer.
src | The MultiDimContainer src which values are copied. This is a full copy with no verification of dimensions. |
OperationNotAllowed | Raised if src does not have the same domain size than this MultiDimContainer. |
Reimplemented in gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimICIModel< GUM_SCALAR >, and gum::MultiDimArray< GUM_SCALAR >.
Definition at line 265 of file multiDimContainer_tpl.h.
References gum::MultiDimInterface::domainSize(), gum::Instantiation::end(), GUM_ERROR, and gum::Instantiation::setFirst().
Referenced by gum::BayesNet< double >::__copyPotentials(), gum::MultiDimContainer< GUM_SCALAR >::copy(), gum::MultiDimArray< GUM_SCALAR >::copyFrom(), gum::MultiDimICIModel< GUM_SCALAR >::copyFrom(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::copyFrom(), and gum::Potential< GUM_SCALAR >::reorganize().
|
virtualinherited |
Basic copy of a MultiDimContainer.
This method is virtual because it should be optimized in certain MultiDimContainer.
src | The MultiDimContainer src which values are copied. |
p_i | Give the order to iterate in this MultiDimContainer during the copy (nullptr will correctly copy if this is a reorganization of src). |
OperationNotAllowed | Raised if src does not have the same domain size than this MultiDimContainer. |
Reimplemented in gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR >, and gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >.
Definition at line 218 of file multiDimContainer_tpl.h.
References gum::MultiDimInterface::domainSize(), gum::Instantiation::end(), GUM_ERROR, gum::Instantiation::incIn(), and gum::Instantiation::setFirst().
|
finalvirtual |
Returns the product of the variables domain size.
Implements gum::MultiDimInterface.
Definition at line 169 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::prm::gspan::StrictSearch< GUM_SCALAR >::__elimination_cost(), gum::credal::CNMonteCarloSampling< GUM_SCALAR, BNInferenceEngine >::__verticesSampling(), gum::credal::CredalNet< GUM_SCALAR >::approximatedBinarization(), gum::credal::CredalNet< GUM_SCALAR >::fillConstraint(), gum::Potential< GUM_SCALAR >::fillWith(), gum::SimpleUTGenerator::generateUT(), gum::Potential< GUM_SCALAR >::random(), and gum::credal::CredalNet< GUM_SCALAR >::toString().
|
finalvirtual |
Returns true if no var is in *this.
Implements gum::MultiDimInterface.
Definition at line 280 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::MultiDimDecorator< GUM_SCALAR >::apply(), gum::Potential< GUM_SCALAR >::entropy(), gum::MultiDimDecorator< GUM_SCALAR >::fill(), gum::Potential< GUM_SCALAR >::findAll(), gum::MultiDimDecorator< GUM_SCALAR >::get(), gum::Potential< GUM_SCALAR >::margMaxIn(), gum::Potential< GUM_SCALAR >::margMaxOut(), gum::Potential< GUM_SCALAR >::margMinIn(), gum::Potential< GUM_SCALAR >::margMinOut(), gum::Potential< GUM_SCALAR >::margProdIn(), gum::Potential< GUM_SCALAR >::margProdOut(), gum::Potential< GUM_SCALAR >::margSumIn(), gum::Potential< GUM_SCALAR >::margSumOut(), gum::Potential< GUM_SCALAR >::max(), gum::Potential< GUM_SCALAR >::maxNonOne(), gum::Potential< GUM_SCALAR >::min(), gum::Potential< GUM_SCALAR >::minNonZero(), gum::Potential< GUM_SCALAR >::normalize(), gum::Potential< GUM_SCALAR >::normalizeAsCPT(), gum::Potential< GUM_SCALAR >::operator*(), gum::Potential< GUM_SCALAR >::operator+(), gum::Potential< GUM_SCALAR >::operator-(), gum::Potential< GUM_SCALAR >::operator/(), gum::Potential< GUM_SCALAR >::operator==(), gum::MultiDimDecorator< GUM_SCALAR >::populate(), gum::Potential< GUM_SCALAR >::product(), gum::MultiDimDecorator< GUM_SCALAR >::reduce(), gum::Potential< GUM_SCALAR >::sum(), and gum::MultiDimDecorator< GUM_SCALAR >::toString().
|
finalvirtual |
Default implementation of MultiDimContainer::set().
Calls _get as a r-value.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 380 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::BayesNet< double >::__copyPotentials(), gum::MultiDimDecorator< GUM_SCALAR >::endMultipleChanges(), gum::Potential< GUM_SCALAR >::Potential(), and gum::Potential< GUM_SCALAR >::reorganize().
|
finalvirtual |
Default implementation of MultiDimContainer::set().
Calls _get as a r-value.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 387 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, and gum::MultiDimDecorator< GUM_SCALAR >::endMultipleChanges().
|
finalvirtual |
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. |
Implements gum::MultiDimInterface.
Definition at line 250 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::prm::gspan::StrictSearch< GUM_SCALAR >::__elimination_cost(), gum::prm::StructuredInference< GUM_SCALAR >::__removeBarrenNodes(), gum::prm::GroundedInference< GUM_SCALAR >::_evidenceRemoved(), and gum::prm::eliminateNode().
|
virtualinherited |
Basic extraction of a MultiDimContainer.
This method is virtual because it should be optimized in certain MultiDimContainer.
src | The MultiDimContainer src which datas are copied. |
mask | partial instantiation of variables of the Potential : the extraction will concern every variable not in the instantiation and the copy of data will use the values in this instantiation. |
Definition at line 240 of file multiDimContainer_tpl.h.
References gum::MultiDimInterface::add(), gum::MultiDimContainer< GUM_SCALAR >::beginMultipleChanges(), gum::Instantiation::contains(), gum::Instantiation::end(), gum::MultiDimContainer< GUM_SCALAR >::endMultipleChanges(), gum::MultiDimInterface::erase(), GUM_ERROR, gum::Instantiation::incOut(), gum::MultiDimInterface::nbrDim(), gum::Instantiation::setFirstOut(), gum::Instantiation::setVals(), and gum::MultiDimInterface::variable().
Referenced by gum::Potential< GUM_SCALAR >::extract().
|
finalvirtual |
Default implementation of MultiDimContainer::set().
Calls _get as a r-value.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 292 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, and gum::MultiDimDecorator< GUM_SCALAR >::empty().
Referenced by gum::Potential< GUM_SCALAR >::fillWith().
|
finalvirtual |
Default implementation of MultiDimContainer::get().
Calls _get as a l-value.
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 148 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, and gum::MultiDimDecorator< GUM_SCALAR >::empty().
Referenced by gum::prm::StructuredBayesBall< GUM_SCALAR >::__isHardEvidence(), gum::prm::GroundedInference< GUM_SCALAR >::_evidenceAdded(), gum::prm::StructuredInference< GUM_SCALAR >::_marginal(), gum::prm::PRMInference< double >::addEvidence(), gum::credal::CredalNet< GUM_SCALAR >::bnToCredal(), gum::SimpleCPTDisturber< GUM_SCALAR >::disturbAugmCPT(), gum::SimpleCPTDisturber< GUM_SCALAR >::disturbReducCPT(), gum::Potential< GUM_SCALAR >::fillWith(), gum::Potential< GUM_SCALAR >::KL(), gum::prm::PRMInference< double >::marginal(), and gum::prm::o3prmr::O3prmrInterpreter::query().
|
virtualinherited |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >.
Definition at line 301 of file multiDimContainer_tpl.h.
References gum::MultiDimContainer< GUM_SCALAR >::content().
|
virtualinherited |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >.
Definition at line 307 of file multiDimContainer_tpl.h.
References gum::MultiDimContainer< GUM_SCALAR >::content().
|
finalvirtual |
Returns the number of vars in the multidimensional container.
Implements gum::MultiDimInterface.
Definition at line 320 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::GibbsOperator< GUM_SCALAR >::__GibbsSample(), gum::prm::SVED< GUM_SCALAR >::_marginal(), gum::prm::PRMInference< double >::addEvidence(), gum::BayesNet< double >::changePotential(), gum::BayesNetInference< GUM_SCALAR >::chgEvidence(), gum::Potential< GUM_SCALAR >::draw(), gum::Potential< GUM_SCALAR >::fillWith(), gum::BayesNetFragment< GUM_SCALAR >::installCPT(), gum::BayesNetFragment< GUM_SCALAR >::installMarginal(), gum::prm::PRMInference< double >::joint(), gum::Potential< GUM_SCALAR >::KL(), gum::prm::PRMInference< double >::marginal(), gum::Potential< GUM_SCALAR >::putFirst(), gum::Potential< GUM_SCALAR >::reorganize(), gum::MultiDimDecorator< GUM_SCALAR >::set(), and gum::BayesNetFragment< GUM_SCALAR >::uninstallCPT().
|
pure virtual |
Default implementation of MultiDimContainer::set().
Calls _get as a r-value.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Implemented in gum::Potential< GUM_SCALAR >.
|
finalvirtual |
|
inherited |
Test if this MultiDimContainer is different of p.
p | The MultiDimContainer to test for inequality. |
Definition at line 160 of file multiDimContainer_tpl.h.
References gum::MultiDimContainer< GUM_SCALAR >::operator==().
Referenced by gum::MultiDimContainer< GUM_SCALAR >::operator==().
|
noexcept |
copy operator
Definition at line 119 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, gum::MultiDimDecorator< GUM_SCALAR >::content(), and gum::MultiDimContainer< GUM_SCALAR >::operator=().
Referenced by gum::MultiDimDecorator< GUM_SCALAR >::MultiDimDecorator(), and gum::Potential< GUM_SCALAR >::operator=().
INLINE MultiDimDecorator< GUM_SCALAR > & gum::MultiDimDecorator< GUM_SCALAR >::operator= | ( | MultiDimDecorator< GUM_SCALAR > && | from | ) |
assignment operator.
Definition at line 88 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, and gum::MultiDimContainer< GUM_SCALAR >::operator=().
|
inherited |
Test if this MultiDimContainer is equal to p.
p | The MultiDimContainer to test for equality. |
Definition at line 129 of file multiDimContainer_tpl.h.
References gum::MultiDimInterface::domainSize(), gum::Instantiation::end(), gum::MultiDimContainer< GUM_SCALAR >::get(), gum::MultiDimInterface::nbrDim(), gum::MultiDimContainer< GUM_SCALAR >::operator!=(), gum::Instantiation::setFirst(), and gum::MultiDimInterface::variablesSequence().
Referenced by gum::MultiDimContainer< GUM_SCALAR >::operator!=(), and gum::MultiDimContainer< GUM_SCALAR >::toString().
|
inherited |
An [] operator using a Instantiation as argument.
i | An Instantiation. |
Definition at line 82 of file multiDimContainer_tpl.h.
Referenced by gum::MultiDimContainer< GUM_SCALAR >::~MultiDimContainer().
|
finalvirtual |
Automatically fills this MultiDimContainer with the values in v.
The order used to fill this MultiDimContainer is the same as with an instantiation over it.
v | Vector of values. |
SizeError | Raised if v size's does not matches this MultiDimContainer domain size. |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 325 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, gum::MultiDimDecorator< GUM_SCALAR >::empty(), and GUM_ERROR.
Referenced by gum::Potential< GUM_SCALAR >::fillWith(), and gum::SimpleUTGenerator::generateUT().
|
virtualinherited |
Automatically fills this MultiDimContainer with the values in l.
The order used to fill this MultiDimContainer is the same as with an instantiation over it.
l | contains the data. |
SizeError | Raised if l size's does not matches this MultiDimContainer domain size. |
Reimplemented in gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR >, and gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >.
Definition at line 181 of file multiDimContainer_tpl.h.
References gum::MultiDimInterface::domainSize(), and GUM_ERROR.
|
finalvirtual |
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. |
Implements gum::MultiDimInterface.
Definition at line 269 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::credal::CredalNet< GUM_SCALAR >::approximatedBinarization().
|
finalvirtual |
compute lfold for this container
f | the function to apply |
base | the initial value |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 349 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, and gum::MultiDimDecorator< GUM_SCALAR >::empty().
Referenced by gum::Potential< GUM_SCALAR >::entropy(), gum::Potential< GUM_SCALAR >::maxNonOne(), and gum::Potential< GUM_SCALAR >::minNonZero().
|
finalvirtual |
Register i as a slave of this MultiDimAdressable.
i | The Instantiation to enslave. |
Implements gum::MultiDimAdressable.
Definition at line 244 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
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 36 of file multiDimInterface_inl.h.
References gum::MultiDimInterface::_replace(), gum::MultiDimInterface::contains(), gum::DiscreteVariable::domainSize(), and GUM_ERROR.
Referenced by gum::MultiDimImplementation< std::string >::_replace(), gum::MultiDimBucket< GUM_SCALAR >::_replace(), and gum::MultiDimInterface::~MultiDimInterface().
|
finalvirtual |
Default implementation of MultiDimContainer::set().
Calls _get as a r-value.
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 157 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, and gum::MultiDimDecorator< GUM_SCALAR >::nbrDim().
Referenced by gum::BayesNetFactory< GUM_SCALAR >::__fillProbaWithValuesTable(), gum::prm::PRMSystem< double >::__groundPotential(), gum::prm::GroundedInference< GUM_SCALAR >::_evidenceAdded(), gum::prm::StructuredInference< GUM_SCALAR >::_marginal(), gum::prm::PRMInference< double >::addEvidence(), gum::credal::CredalNet< GUM_SCALAR >::bnToCredal(), gum::BayesNetInference< GUM_SCALAR >::chgEvidence(), gum::MarginalTargetedInference< GUM_SCALAR >::evidenceImpact(), gum::JointTargetedInference< GUM_SCALAR >::evidenceJointImpact(), gum::credal::CredalNet< GUM_SCALAR >::fillConstraint(), gum::SimpleCPTGenerator< GUM_SCALAR >::generateCPT(), gum::credal::CredalNet< GUM_SCALAR >::idmLearning(), gum::prm::PRMInference< double >::marginal(), gum::prm::PRMInference< double >::operator=(), gum::learning::DAG2BNLearner< ALLOC >::operator=(), and gum::prm::PRMInference< double >::PRMInference().
|
finalvirtual |
Listen to an assignment of a value in a Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 199 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
finalvirtual |
Listen to increment in each recorded Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 236 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
finalvirtual |
Listen to setFirst in a given Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 208 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
finalvirtual |
Listen to increment in a given Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 227 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
finalvirtual |
Listen to setLast in a given Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 218 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
virtual |
Default implementation of MultiDimContainer::set().
Calls _get as a r-value.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 409 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
virtual |
Default implementation of MultiDimContainer::set().
Calls _get as a r-value.
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Reimplemented in gum::Potential< GUM_SCALAR >.
Definition at line 422 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, gum::MultiDimDecorator< GUM_SCALAR >::_empty_value, and gum::MultiDimDecorator< GUM_SCALAR >::empty().
Referenced by gum::Potential< GUM_SCALAR >::toString().
|
finalvirtual |
Unregister i as a slave of this MultiDimAdressable.
i | The Instantiation to free. |
Implements gum::MultiDimAdressable.
Definition at line 286 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
|
finalvirtual |
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. |
Implements gum::MultiDimInterface.
Definition at line 256 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::BayesNetFactory< GUM_SCALAR >::__fillProbaWithValuesTable(), gum::credal::CredalNet< GUM_SCALAR >::__intervalToCredal(), gum::BayesNet< double >::changePotential(), gum::BayesNetInference< GUM_SCALAR >::chgEvidence(), gum::Potential< GUM_SCALAR >::draw(), gum::Potential< GUM_SCALAR >::fillWith(), gum::SimpleCPTGenerator< GUM_SCALAR >::generateCPT(), gum::BayesNetFragment< GUM_SCALAR >::installCPT(), gum::BayesNetFragment< GUM_SCALAR >::installMarginal(), gum::credal::CredalNet< GUM_SCALAR >::intervalToCredal(), gum::credal::CredalNet< GUM_SCALAR >::intervalToCredalWithFiles(), gum::credal::CredalNet< GUM_SCALAR >::lagrangeNormalization(), gum::Potential< GUM_SCALAR >::normalizeAsCPT(), gum::Potential< GUM_SCALAR >::putFirst(), gum::credal::CredalNet< GUM_SCALAR >::setCPT(), gum::credal::CredalNet< GUM_SCALAR >::setCPTs(), gum::BayesNetFragment< GUM_SCALAR >::uninstallCPT(), and gum::MultiDimDecorator< GUM_SCALAR >::variable().
|
finalvirtual |
Returns the variable with the name.
name | The index of the variable |
NotFound | Raised if the element cannot be found. |
Implements gum::MultiDimInterface.
Definition at line 262 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content, and gum::MultiDimDecorator< GUM_SCALAR >::variable().
|
finalvirtual |
Returns a const ref to the sequence of DiscreteVariable*.
Implements gum::MultiDimInterface.
Definition at line 312 of file multiDimDecorator_tpl.h.
References gum::MultiDimDecorator< GUM_SCALAR >::_content.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildPatternGraph(), gum::prm::__print_pot__(), gum::BayesNetFactory< GUM_SCALAR >::__setCPTAndParents(), gum::Potential< GUM_SCALAR >::_complementVars(), gum::prm::SVED< GUM_SCALAR >::_marginal(), gum::prm::StructuredInference< GUM_SCALAR >::_marginal(), gum::learning::DAG2BNLearner< ALLOC >::createBN(), gum::credal::CredalNet< GUM_SCALAR >::fillConstraint(), gum::Potential< GUM_SCALAR >::fillWith(), gum::Potential< GUM_SCALAR >::KL(), and gum::learning::DAG2BNLearner< ALLOC >::operator=().
|
mutableprotected |
The true container.
Definition at line 250 of file multiDimDecorator.h.
Referenced by gum::MultiDimDecorator< GUM_SCALAR >::_swapContent(), gum::MultiDimDecorator< GUM_SCALAR >::add(), gum::MultiDimDecorator< GUM_SCALAR >::apply(), gum::MultiDimDecorator< GUM_SCALAR >::beginMultipleChanges(), gum::MultiDimDecorator< GUM_SCALAR >::changeNotification(), gum::MultiDimDecorator< GUM_SCALAR >::contains(), gum::MultiDimDecorator< GUM_SCALAR >::content(), gum::MultiDimDecorator< GUM_SCALAR >::domainSize(), gum::MultiDimDecorator< GUM_SCALAR >::empty(), gum::MultiDimDecorator< GUM_SCALAR >::endMultipleChanges(), gum::Potential< GUM_SCALAR >::entropy(), gum::MultiDimDecorator< GUM_SCALAR >::erase(), gum::MultiDimDecorator< GUM_SCALAR >::fill(), gum::Potential< GUM_SCALAR >::findAll(), gum::MultiDimDecorator< GUM_SCALAR >::get(), gum::Potential< GUM_SCALAR >::margMaxIn(), gum::Potential< GUM_SCALAR >::margMaxOut(), gum::Potential< GUM_SCALAR >::margMinIn(), gum::Potential< GUM_SCALAR >::margMinOut(), gum::Potential< GUM_SCALAR >::margProdIn(), gum::Potential< GUM_SCALAR >::margProdOut(), gum::Potential< GUM_SCALAR >::margSumIn(), gum::Potential< GUM_SCALAR >::margSumOut(), gum::Potential< GUM_SCALAR >::max(), gum::Potential< GUM_SCALAR >::maxNonOne(), gum::Potential< GUM_SCALAR >::min(), gum::Potential< GUM_SCALAR >::minNonZero(), gum::MultiDimDecorator< GUM_SCALAR >::MultiDimDecorator(), gum::MultiDimDecorator< GUM_SCALAR >::nbrDim(), gum::Potential< GUM_SCALAR >::normalize(), gum::Potential< GUM_SCALAR >::normalizeAsCPT(), gum::MultiDimDecorator< GUM_SCALAR >::operator=(), gum::Potential< GUM_SCALAR >::operator==(), gum::MultiDimDecorator< GUM_SCALAR >::populate(), gum::MultiDimDecorator< GUM_SCALAR >::pos(), gum::Potential< GUM_SCALAR >::product(), gum::MultiDimDecorator< GUM_SCALAR >::reduce(), gum::MultiDimDecorator< GUM_SCALAR >::registerSlave(), gum::MultiDimDecorator< GUM_SCALAR >::set(), gum::MultiDimDecorator< GUM_SCALAR >::setChangeNotification(), gum::MultiDimDecorator< GUM_SCALAR >::setDecNotification(), gum::MultiDimDecorator< GUM_SCALAR >::setFirstNotification(), gum::MultiDimDecorator< GUM_SCALAR >::setIncNotification(), gum::MultiDimDecorator< GUM_SCALAR >::setLastNotification(), gum::Potential< GUM_SCALAR >::sum(), gum::MultiDimDecorator< GUM_SCALAR >::toString(), gum::MultiDimDecorator< GUM_SCALAR >::unregisterSlave(), gum::MultiDimDecorator< GUM_SCALAR >::variable(), gum::MultiDimDecorator< GUM_SCALAR >::variablesSequence(), and gum::MultiDimDecorator< GUM_SCALAR >::~MultiDimDecorator().
|
mutableprotected |
value of the MultiDimDecorator if no dimension.
Definition at line 264 of file multiDimDecorator.h.
Referenced by gum::MultiDimDecorator< GUM_SCALAR >::apply(), gum::MultiDimDecorator< GUM_SCALAR >::fill(), gum::MultiDimDecorator< GUM_SCALAR >::get(), gum::Potential< GUM_SCALAR >::margMaxIn(), gum::Potential< GUM_SCALAR >::margMaxOut(), gum::Potential< GUM_SCALAR >::margMinIn(), gum::Potential< GUM_SCALAR >::margMinOut(), gum::Potential< GUM_SCALAR >::margProdIn(), gum::Potential< GUM_SCALAR >::margProdOut(), gum::Potential< GUM_SCALAR >::margSumIn(), gum::Potential< GUM_SCALAR >::margSumOut(), gum::Potential< GUM_SCALAR >::max(), gum::Potential< GUM_SCALAR >::maxNonOne(), gum::Potential< GUM_SCALAR >::min(), gum::Potential< GUM_SCALAR >::minNonZero(), gum::MultiDimDecorator< GUM_SCALAR >::MultiDimDecorator(), gum::Potential< GUM_SCALAR >::normalize(), gum::Potential< GUM_SCALAR >::normalizeAsCPT(), gum::Potential< GUM_SCALAR >::operator*(), gum::Potential< GUM_SCALAR >::operator+(), gum::Potential< GUM_SCALAR >::operator-(), gum::Potential< GUM_SCALAR >::operator/(), gum::MultiDimDecorator< GUM_SCALAR >::operator=(), gum::Potential< GUM_SCALAR >::operator==(), gum::MultiDimDecorator< GUM_SCALAR >::populate(), gum::Potential< GUM_SCALAR >::Potential(), gum::Potential< GUM_SCALAR >::product(), gum::MultiDimDecorator< GUM_SCALAR >::set(), gum::Potential< GUM_SCALAR >::sum(), and gum::MultiDimDecorator< GUM_SCALAR >::toString().