![]() |
aGrUM
0.16.0
|
<agrum/multidim/aggregators/multiDimAggregator.h> More...
#include <multiDimAggregator.h>
Public Member Functions | |
virtual MultiDimContainer< GUM_SCALAR > * | newFactory () const override=0 |
This method creates a clone of this object, withouth its content (including variable), you must use this method if you want to ensure that the generated object has the same type than the object containing the called newFactory() More... | |
Constructors / Destructors | |
MultiDimAggregator () | |
Default constructor. More... | |
MultiDimAggregator (const MultiDimAggregator< GUM_SCALAR > &from) | |
Copy constructor. More... | |
virtual | ~MultiDimAggregator () |
Class destructor. More... | |
Accessors / Modifiers | |
virtual GUM_SCALAR | get (const Instantiation &i) const override |
virtual std::string | aggregatorName () const =0 |
const std::string | toString () const override |
void | changeNotification (const gum::Instantiation &, const gum::DiscreteVariable *const, gum::Idx, gum::Idx) override |
void | setFirstNotification (const gum::Instantiation &) override |
void | setLastNotification (const gum::Instantiation &) override |
void | setIncNotification (const gum::Instantiation &) override |
void | setDecNotification (const gum::Instantiation &) override |
void | setChangeNotification (const gum::Instantiation &) override |
const std::string | toString (const gum::Instantiation *i) const override |
Size | realSize () const override |
const std::string & | name () const override |
Returns the real name of the multiDimArray. More... | |
void | copyFrom (const MultiDimContainer< GUM_SCALAR > &src) const override |
Copy of a multiDimICIModel. More... | |
Accessors / Modifiers | |
virtual void | set (const Instantiation &i, const GUM_SCALAR &value) const |
virtual void | fill (const GUM_SCALAR &) const |
Accessors / Modifiers | |
const std::string & | basename () const |
Returns the base class name of this MultiDimImplementation. More... | |
float | compressionRate () const |
The compression ratio of the table (depending on the type of implementation). More... | |
MultiDimInterface implementation | |
virtual Idx | nbrDim () const override |
Returns the number of vars in the multidimensional container. More... | |
virtual Size | domainSize () const override |
Returns the product of the variables domain size. More... | |
virtual void | add (const DiscreteVariable &v) override |
Adds a new var to the variables of the multidimensional matrix. More... | |
virtual void | erase (const DiscreteVariable &v) override |
Removes a var from the variables of the multidimensional matrix. More... | |
virtual const Sequence< const DiscreteVariable *> & | variablesSequence () const override |
Returns a const ref to the sequence of DiscreteVariable*. More... | |
virtual const DiscreteVariable & | variable (Idx i) const override |
Returns a const ref to the ith var. More... | |
virtual const DiscreteVariable & | variable (const std::string &name) const override |
Returns the variable with the name. More... | |
virtual Idx | pos (const DiscreteVariable &v) const override |
Returns the index of a variable. More... | |
virtual bool | contains (const DiscreteVariable &v) const override |
Returns true if var is in *this. More... | |
virtual bool | empty () const override |
Returns true if no var is in *this. More... | |
MultiDimAdressable implementation | |
virtual bool | registerSlave (Instantiation &slave) override |
Register i as a slave of this MultiDimAdressable. More... | |
virtual bool | unregisterSlave (Instantiation &slave) override |
Unregister i as a slave of this MultiDimAdressable. More... | |
MultiDimContainer implementation | |
virtual void | beginMultipleChanges () override |
Call this method before doing important changes in this MultiDimContainer. More... | |
virtual void | endMultipleChanges () override |
Call this method after doing important changes in this MultiDimContainer. More... | |
virtual void | endMultipleChanges (const GUM_SCALAR &) override |
Call this method after doing important changes in this MultiDimContainer. More... | |
Accessors / Modifiers | |
GUM_SCALAR | operator[] (const Instantiation &i) const |
An [] operator using a Instantiation as argument. More... | |
virtual void | populate (const std::vector< GUM_SCALAR > &v) const |
Automatically fills this MultiDimContainer with the values in v. 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, 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... | |
virtual void | apply (std::function< GUM_SCALAR(GUM_SCALAR) > f) const |
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 |
compute lfold for this container More... | |
Accessors / Modifiers | |
void | replace (const DiscreteVariable &x, const DiscreteVariable &y) |
Replace variables in this multidim. More... | |
Protected Member Functions | |
virtual Idx | _buildValue (const gum::Instantiation &i) const |
by default, _buildValue uses a "fold" scheme and the user has to implement _neutralElt and _fold but if necessary (as for Median), _buildValue can be reimplemented. More... | |
virtual Idx | _neutralElt () const =0 |
_neutralElt() is the result value for the first application of _fold More... | |
virtual Idx | _fold (const DiscreteVariable &v, Idx i1, Idx i2, bool &stop_iteration) const =0 |
_fold is applied on value i1 for variable v. the actual result for precedent applications is i2. More... | |
virtual GUM_SCALAR & | _get (const Instantiation &i) const |
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... | |
Fast large modifications in structures | |
virtual void | _commitMultipleChanges () |
Synchronize content after MultipleChanges. More... | |
virtual void | _commitMultipleChanges (const GUM_SCALAR &value) |
Synchronize content after MultipleChanges. More... | |
bool | _isInMultipleChangeMethod () const |
Get the actual change method of this MultiDimImplementation. More... | |
bool | _isCommitNeeded () const |
Get the actual state of *this. More... | |
const List< Instantiation *> & | _slaves () const |
Returns a constant reference over the list of slaved instantiations. More... | |
virtual void | _replace (const DiscreteVariable *x, const DiscreteVariable *y) override |
Replace variable x by y. More... | |
virtual void | _invert (Idx p1, Idx p2) |
Inverts variables at position p1 and p2. More... | |
<agrum/multidim/aggregators/multiDimAggregator.h>
Abstract base class for all multi dimensionnal aggregator.
The principle of a deterministic aggregator is that \(P[i,J_1,\cdots,J_n]=1 \iff i==f(J_1,f(J_2,\cdots,f(J_n,NeutraElement)\cdots))\) and 0 otherwise. f is a virtual function called the folder function (like folder_left or folder_right in OCaml). NeutralElement is an Idx
Definition at line 64 of file multiDimAggregator.h.
INLINE gum::aggregator::MultiDimAggregator< GUM_SCALAR >::MultiDimAggregator | ( | ) |
Default constructor.
Definition at line 38 of file multiDimAggregator_tpl.h.
INLINE gum::aggregator::MultiDimAggregator< GUM_SCALAR >::MultiDimAggregator | ( | const MultiDimAggregator< GUM_SCALAR > & | from | ) |
Copy constructor.
Definition at line 45 of file multiDimAggregator_tpl.h.
|
virtual |
Class destructor.
Definition at line 53 of file multiDimAggregator_tpl.h.
|
protectedvirtual |
by default, _buildValue uses a "fold" scheme and the user has to implement _neutralElt and _fold but if necessary (as for Median), _buildValue can be reimplemented.
Reimplemented in gum::aggregator::Median< GUM_SCALAR >, and gum::aggregator::Amplitude< GUM_SCALAR >.
Definition at line 58 of file multiDimAggregator_tpl.h.
References gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_fold(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_neutralElt(), gum::MultiDimImplementation< GUM_SCALAR >::nbrDim(), gum::Instantiation::val(), and gum::MultiDimImplementation< GUM_SCALAR >::variable().
Referenced by gum::aggregator::MultiDimAggregator< GUM_SCALAR >::get(), and gum::aggregator::MultiDimAggregator< GUM_SCALAR >::realSize().
|
protectedvirtualinherited |
Synchronize content after MultipleChanges.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimArray< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, and gum::MultiDimSparse< GUM_SCALAR >.
Definition at line 255 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges().
|
protectedvirtualinherited |
Synchronize content after MultipleChanges.
value | Default value for uninitialized values. |
Reimplemented in gum::MultiDimArray< GUM_SCALAR >.
Definition at line 260 of file multiDimImplementation_tpl.h.
|
protectedpure virtual |
_fold is applied on value i1 for variable v. the actual result for precedent applications is i2.
Implemented in gum::aggregator::Median< GUM_SCALAR >, gum::aggregator::Amplitude< GUM_SCALAR >, gum::aggregator::Count< GUM_SCALAR >, gum::aggregator::Or< GUM_SCALAR >, gum::aggregator::And< GUM_SCALAR >, gum::aggregator::Forall< GUM_SCALAR >, gum::aggregator::Max< GUM_SCALAR >, gum::aggregator::Exists< GUM_SCALAR >, and gum::aggregator::Min< GUM_SCALAR >.
Referenced by gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_buildValue(), and gum::aggregator::MultiDimAggregator< GUM_SCALAR >::realSize().
|
protectedvirtualinherited |
Implements gum::MultiDimContainer< GUM_SCALAR >.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >.
Definition at line 74 of file multiDimReadOnly_tpl.h.
References GUM_ERROR.
|
protectedvirtualinherited |
Inverts variables at position p1 and p2.
Call this from subclass when you want to invert position of two variables in the MultiDimImplementation.
p1 | The first position. |
p2 | The second position. |
Definition at line 319 of file multiDimImplementation_tpl.h.
|
protectedinherited |
Get the actual state of *this.
Definition at line 274 of file multiDimImplementation_tpl.h.
|
protectedinherited |
Get the actual change method of this MultiDimImplementation.
Definition at line 268 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimArray< GUM_SCALAR >::add(), and gum::MultiDimArray< GUM_SCALAR >::erase().
|
protectedpure virtual |
_neutralElt() is the result value for the first application of _fold
Implemented in gum::aggregator::Median< GUM_SCALAR >, gum::aggregator::Amplitude< GUM_SCALAR >, gum::aggregator::Count< GUM_SCALAR >, gum::aggregator::Or< GUM_SCALAR >, gum::aggregator::And< GUM_SCALAR >, gum::aggregator::Forall< GUM_SCALAR >, gum::aggregator::Max< GUM_SCALAR >, gum::aggregator::Exists< GUM_SCALAR >, and gum::aggregator::Min< GUM_SCALAR >.
Referenced by gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_buildValue(), and gum::aggregator::MultiDimAggregator< GUM_SCALAR >::realSize().
|
overrideprotectedvirtualinherited |
Replace variable x by y.
Technically this should be call by any subclass overloading this method to proceed with the changes in this class containers.
x | The first variable to swap. |
y | The second variable to swap. |
Implements gum::MultiDimInterface.
Reimplemented in 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::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimICIModel< GUM_SCALAR >, and gum::MultiDimSparse< GUM_SCALAR >.
Definition at line 306 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimSparse< GUM_SCALAR >::_replace(), gum::MultiDimICIModel< GUM_SCALAR >::_replace(), gum::MultiDimBijArray< GUM_SCALAR >::_replace(), gum::MultiDimArray< GUM_SCALAR >::_replace(), and gum::MultiDimBucket< GUM_SCALAR >::_replace().
|
protectedinherited |
Returns a constant reference over the list of slaved instantiations.
Definition at line 281 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer().
|
overridevirtualinherited |
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.
Reimplemented 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::MultiDimArray< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimSparse< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
Definition at line 77 of file multiDimImplementation_tpl.h.
Referenced by gum::prm::PRMFormAttribute< GUM_SCALAR >::_type(), gum::MultiDimWithOffset< GUM_SCALAR >::add(), gum::MultiDimBucket< GUM_SCALAR >::add(), gum::prm::PRMFormAttribute< GUM_SCALAR >::addParent(), gum::prm::PRMFormAttribute< GUM_SCALAR >::becomeCastDescendant(), gum::prm::PRMFormAttribute< GUM_SCALAR >::copyCpf(), gum::prm::PRMFormAttribute< GUM_SCALAR >::PRMFormAttribute(), and gum::prm::PRMFormAttribute< GUM_SCALAR >::swap().
|
pure virtual |
This function is used for compute
Implemented in gum::aggregator::Or< GUM_SCALAR >, gum::aggregator::And< GUM_SCALAR >, gum::aggregator::Forall< GUM_SCALAR >, gum::aggregator::Max< GUM_SCALAR >, gum::aggregator::Exists< GUM_SCALAR >, gum::aggregator::Min< GUM_SCALAR >, gum::aggregator::Median< GUM_SCALAR >, gum::aggregator::Amplitude< GUM_SCALAR >, and gum::aggregator::Count< GUM_SCALAR >.
Referenced by gum::aggregator::MultiDimAggregator< GUM_SCALAR >::toString().
|
virtualinherited |
Apply a function on every element of the container.
f | the function to apply |
Reimplemented in gum::MultiDimDecorator< GUM_SCALAR >, and gum::MultiDimArray< GUM_SCALAR >.
Definition at line 196 of file multiDimContainer_tpl.h.
References gum::Instantiation::end(), and gum::Instantiation::setFirst().
|
inherited |
Returns the base class name of this MultiDimImplementation.
This method is used for chosing a proposer operator when no specialized operator have been defined.
Definition at line 299 of file multiDimImplementation_tpl.h.
|
overridevirtualinherited |
Call this method before doing important changes in this MultiDimContainer.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 229 of file multiDimImplementation_tpl.h.
|
inlineoverridevirtual |
This function is used for compute
Implements gum::MultiDimAdressable.
Definition at line 118 of file multiDimAggregator.h.
|
inherited |
The compression ratio of the table (depending on the type of implementation).
This method uses domainSize() and realSize() to compute the ration, both methods are virtual and should be surcharge if a subclass has a special policies about memory management.
Definition at line 293 of file multiDimImplementation_tpl.h.
|
overridevirtualinherited |
Returns true if var is in *this.
v | A DiscreteVariable. |
Implements gum::MultiDimInterface.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >.
Definition at line 208 of file multiDimImplementation_tpl.h.
Referenced by gum::prm::PRMFormAttribute< GUM_SCALAR >::__fillCpf(), gum::prm::PRMFormAttribute< GUM_SCALAR >::_type(), gum::prm::PRMFormAttribute< GUM_SCALAR >::addParent(), gum::MultiDimICIModel< GUM_SCALAR >::causalWeight(), gum::MultiDimBucket< GUM_SCALAR >::contains(), gum::prm::PRMFormAttribute< GUM_SCALAR >::copyCpf(), gum::prm::PRMFormAttribute< GUM_SCALAR >::getCastDescendant(), and gum::prm::PRMFormAttribute< GUM_SCALAR >::swap().
|
finalprotectedvirtualinherited |
Returns the implementation for this object (may be *this).
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 342 of file multiDimImplementation_tpl.h.
|
finalprotectedvirtualinherited |
Returns the implementation for this object (may be *this).
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 335 of file multiDimImplementation_tpl.h.
|
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().
|
overridevirtual |
Copy of a multiDimICIModel.
This method is virtual because it should be optimized in certain MultiDimContainer.
OperationNotAllowed | Raised if src does not have the same domain size than this MultiDimContainer. |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 110 of file multiDimAggregator_tpl.h.
References gum::MultiDimContainer< GUM_SCALAR >::copyFrom(), GUM_ERROR, and gum::aggregator::MultiDimAggregator< GUM_SCALAR >::name().
Referenced by gum::aggregator::MultiDimAggregator< GUM_SCALAR >::realSize().
|
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().
|
overridevirtualinherited |
Returns the product of the variables domain size.
Implements gum::MultiDimInterface.
Definition at line 180 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges(), gum::MultiDimWithOffset< GUM_SCALAR >::_computeInstantiationValue(), gum::MultiDimWithOffset< GUM_SCALAR >::add(), gum::MultiDimArray< GUM_SCALAR >::add(), gum::MultiDimBucket< GUM_SCALAR >::add(), gum::MultiDimWithOffset< GUM_SCALAR >::changeNotification(), gum::MultiDimICIModel< GUM_SCALAR >::copyFrom(), gum::MultiDimArray< GUM_SCALAR >::erase(), gum::MultiDimBucket< GUM_SCALAR >::erase(), gum::MultiDimArray< GUM_SCALAR >::realSize(), gum::MultiDimBucket< GUM_SCALAR >::setBufferSize(), gum::MultiDimWithOffset< GUM_SCALAR >::setIncNotification(), and gum::MultiDimWithOffset< GUM_SCALAR >::setLastNotification().
|
overridevirtualinherited |
Returns true if no var is in *this.
Implements gum::MultiDimInterface.
Definition at line 223 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), and gum::MultiDimArray< GUM_SCALAR >::fill().
|
overridevirtualinherited |
Call this method after doing important changes in this MultiDimContainer.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 234 of file multiDimImplementation_tpl.h.
|
overridevirtualinherited |
Call this method after doing important changes in this MultiDimContainer.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 244 of file multiDimImplementation_tpl.h.
|
overridevirtualinherited |
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.
Reimplemented 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::MultiDimArray< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimSparse< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
Definition at line 110 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimWithOffset< GUM_SCALAR >::erase(), and gum::MultiDimBucket< GUM_SCALAR >::erase().
|
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().
|
virtualinherited |
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 67 of file multiDimReadOnly_tpl.h.
References GUM_ERROR.
|
overridevirtual |
This function is used for compute
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 79 of file multiDimAggregator_tpl.h.
References gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_buildValue(), gum::DiscreteVariable::domainSize(), GUM_ERROR, gum::MultiDimImplementation< GUM_SCALAR >::nbrDim(), gum::Instantiation::val(), and gum::MultiDimImplementation< GUM_SCALAR >::variable().
|
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().
|
overridevirtual |
Returns the real name of the multiDimArray.
In aGrUM, all the types of multi-dimensional arrays/functionals have a name that describes what they are in reality. For instance, a table stored in extension is a "MultiDimArray", one that stores only non zero elements is a "MultiDimSparseArray", and so on. These names are unique for each type of implementation and is used by the system to determine which is the best functions to use, say, when we wish to use operators such as operator+ on two MultiDimImplementations.
Implements gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 127 of file multiDimAggregator_tpl.h.
Referenced by gum::aggregator::MultiDimAggregator< GUM_SCALAR >::copyFrom(), and gum::aggregator::MultiDimAggregator< GUM_SCALAR >::realSize().
|
overridevirtualinherited |
Returns the number of vars in the multidimensional container.
Implements gum::MultiDimInterface.
Definition at line 175 of file multiDimImplementation_tpl.h.
Referenced by gum::aggregator::Amplitude< GUM_SCALAR >::_buildValue(), gum::aggregator::Median< GUM_SCALAR >::_buildValue(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_buildValue(), gum::MultiDimWithOffset< GUM_SCALAR >::_computeInstantiationValue(), gum::MultiDimICIModel< GUM_SCALAR >::copyFrom(), gum::MultiDimLogit< GUM_SCALAR >::get(), gum::MultiDimNoisyORNet< GUM_SCALAR >::get(), gum::MultiDimNoisyORCompound< GUM_SCALAR >::get(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::get(), gum::MultiDimNoisyAND< GUM_SCALAR >::get(), gum::MultiDimICIModel< GUM_SCALAR >::realSize(), gum::BayesNetFactory< GUM_SCALAR >::setVariableCPTImplementation(), gum::MultiDimICIModel< GUM_SCALAR >::toString(), gum::MultiDimLogit< GUM_SCALAR >::toString(), and gum::aggregator::MultiDimAggregator< GUM_SCALAR >::toString().
|
overridepure virtual |
This method creates a clone of this object, withouth its content (including variable), you must use this method if you want to ensure that the generated object has the same type than the object containing the called newFactory()
For example :
Then x is a MultiDimArray<double>*
Implements gum::MultiDimReadOnly< GUM_SCALAR >.
Implemented in gum::aggregator::Median< GUM_SCALAR >, gum::aggregator::Amplitude< GUM_SCALAR >, gum::aggregator::Count< GUM_SCALAR >, gum::aggregator::Or< GUM_SCALAR >, gum::aggregator::And< GUM_SCALAR >, gum::aggregator::Forall< GUM_SCALAR >, gum::aggregator::Max< GUM_SCALAR >, gum::aggregator::Exists< GUM_SCALAR >, and gum::aggregator::Min< GUM_SCALAR >.
|
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==().
|
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().
|
virtualinherited |
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 in gum::MultiDimDecorator< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >, gum::MultiDimFunctionGraph< GUM_SCALAR >, and gum::MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >.
Definition at line 166 of file multiDimContainer_tpl.h.
References gum::MultiDimInterface::domainSize(), gum::Instantiation::end(), GUM_ERROR, and gum::Instantiation::setFirst().
|
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.
|
overridevirtualinherited |
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 203 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimWithOffset< GUM_SCALAR >::erase(), gum::MultiDimArray< GUM_SCALAR >::erase(), and gum::MultiDimImplementation< std::string >::pos().
|
inlineoverridevirtual |
This function is used for compute
Implements gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 142 of file multiDimAggregator.h.
References gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_buildValue(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_fold(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_neutralElt(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::copyFrom(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::name(), and gum::aggregator::operator<<().
|
virtualinherited |
compute lfold for this container
f | the function to apply |
base | the initial value |
Reimplemented in gum::MultiDimDecorator< GUM_SCALAR >, and gum::MultiDimArray< GUM_SCALAR >.
Definition at line 205 of file multiDimContainer_tpl.h.
References gum::Instantiation::end(), and gum::Instantiation::setFirst().
|
overridevirtualinherited |
Register i as a slave of this MultiDimAdressable.
i | The Instantiation to enslave. |
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
Definition at line 147 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::registerSlave().
|
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().
|
virtualinherited |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 59 of file multiDimReadOnly_tpl.h.
References GUM_ERROR.
|
inlineoverridevirtual |
This function is used for compute
Implements gum::MultiDimAdressable.
Definition at line 131 of file multiDimAggregator.h.
|
inlineoverridevirtual |
This function is used for compute
Implements gum::MultiDimAdressable.
Definition at line 129 of file multiDimAggregator.h.
|
inlineoverridevirtual |
This function is used for compute
Implements gum::MultiDimAdressable.
Definition at line 123 of file multiDimAggregator.h.
|
inlineoverridevirtual |
This function is used for compute
Implements gum::MultiDimAdressable.
Definition at line 127 of file multiDimAggregator.h.
|
inlineoverridevirtual |
This function is used for compute
Implements gum::MultiDimAdressable.
Definition at line 125 of file multiDimAggregator.h.
|
overridevirtual |
This function is used for compute
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 95 of file multiDimAggregator_tpl.h.
References gum::aggregator::MultiDimAggregator< GUM_SCALAR >::aggregatorName(), gum::MultiDimImplementation< GUM_SCALAR >::nbrDim(), and gum::MultiDimImplementation< GUM_SCALAR >::variable().
Referenced by gum::aggregator::operator<<().
|
inlineoverridevirtual |
This function is used for compute
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 133 of file multiDimAggregator.h.
References gum::Instantiation::toString().
|
overridevirtualinherited |
Unregister i as a slave of this MultiDimAdressable.
i | The Instantiation to free. |
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
Definition at line 168 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimWithOffset< GUM_SCALAR >::unregisterSlave(), and gum::MultiDimBucket< GUM_SCALAR >::unregisterSlave().
|
overridevirtualinherited |
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 186 of file multiDimImplementation_tpl.h.
Referenced by gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_buildValue(), gum::MultiDimWithOffset< GUM_SCALAR >::_computeInstantiationValue(), gum::MultiDimICIModel< GUM_SCALAR >::copyFrom(), gum::MultiDimLogit< GUM_SCALAR >::get(), gum::MultiDimNoisyORNet< GUM_SCALAR >::get(), gum::MultiDimNoisyORCompound< GUM_SCALAR >::get(), gum::MultiDimNoisyAND< GUM_SCALAR >::get(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::get(), gum::MultiDimICIModel< GUM_SCALAR >::toString(), gum::MultiDimLogit< GUM_SCALAR >::toString(), and gum::aggregator::MultiDimAggregator< GUM_SCALAR >::toString().
|
overridevirtualinherited |
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 191 of file multiDimImplementation_tpl.h.
|
overridevirtualinherited |
Returns a const ref to the sequence of DiscreteVariable*.
Implements gum::MultiDimInterface.
Definition at line 217 of file multiDimImplementation_tpl.h.
Referenced by gum::prm::PRMFormAttribute< GUM_SCALAR >::__fillCpf(), gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), gum::ITI< AttributeSelection, isScalar >::__insertNodeInFunctionGraph(), gum::ITI< AttributeSelection, isScalar >::__insertTerminalNode(), gum::StructuredPlaner< double >::_makeArgMax(), gum::prm::PRMFormAttribute< GUM_SCALAR >::copy(), gum::prm::copyPotential(), gum::MultiDimWithOffset< GUM_SCALAR >::erase(), gum::MultiDimArray< GUM_SCALAR >::erase(), gum::MultiDimFunctionGraphGenerator::generate(), gum::StatesCounter::insertSetOfVars(), gum::MultiDimBijArray< GUM_SCALAR >::MultiDimBijArray(), and gum::TreeOperatorStrategy< GUM_SCALAR >::regress().