![]() |
aGrUM
0.16.0
|
A multidim implementation for buckets. More...
#include <agrum/multidim/multiDimBucket.h>
Public Member Functions | |
const HashTable< const MultiDimContainer< GUM_SCALAR > *, Instantiation *> & | multidims () const |
Returns the MultiDimContainer and their respective Instantiation. More... | |
Constructor & destructor. | |
MultiDimBucket (Size bufferSize=INT_MAX) | |
Default constructor. More... | |
MultiDimBucket (const MultiDimBucket< GUM_SCALAR > &source) | |
Copy constructor. More... | |
virtual | ~MultiDimBucket () |
Destructor. More... | |
Bucket methods | |
void | add (const MultiDimContainer< GUM_SCALAR > &impl) |
Add a MultiDimContainer in the bucket. More... | |
void | add (const MultiDimContainer< GUM_SCALAR > *impl) |
Add a MultiDimContainer in the bucket. More... | |
void | erase (const MultiDimContainer< GUM_SCALAR > &impl) |
Remove a MultiDimContainer from this bucket. More... | |
void | erase (const MultiDimContainer< GUM_SCALAR > *impl) |
Remove a MultiDimContainer from this bucket. More... | |
bool | contains (const MultiDimContainer< GUM_SCALAR > &impl) const |
Returns true if the MultiDimContainer is in this bucket. More... | |
const Set< const DiscreteVariable *> & | allVariables () const |
Returns the sequence of all the variables contained in the bucket. More... | |
Size | bucketSize () const |
Returns the number of MultiDimContainer in in this bukcet. More... | |
bool | isBucketEmpty () const |
Returns true if this bucket is empty. More... | |
bool | bucketChanged () const |
Returns true if the bucket need re-computation since the last computation. More... | |
const MultiDimArray< GUM_SCALAR > & | bucket () const |
Returns the MultiDimArray used by this MultiDimBucket. More... | |
Size | bufferSize () const |
Returns the amount of memory allowed for this bucket. More... | |
void | setBufferSize (Size amount) |
Changes the amount of memory allowed for this bucket. More... | |
void | compute (bool force=false) const |
This method computes the final table of this bucket. More... | |
Inherited methods | |
virtual MultiDimContainer< GUM_SCALAR > * | newFactory () const override |
Default constructor. More... | |
const std::string & | name () const override |
Returns the real name of the multiDim implementation. 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 Size | realSize () const override |
Returns the real number of parameters used for this table. More... | |
bool | contains (const DiscreteVariable &v) const override |
Returns true if var is in *this. More... | |
virtual GUM_SCALAR | get (const Instantiation &i) const override |
Returns the value pointed by i. More... | |
virtual void | changeNotification (const Instantiation &i, const DiscreteVariable *const var, Idx oldval, Idx newval) override |
Listen to changes in a given Instantiation. More... | |
virtual void | setFirstNotification (const Instantiation &i) override |
Listen to setFirst in a given Instantiation. More... | |
virtual void | setLastNotification (const Instantiation &i) override |
Listen to setLast in a given Instantiation. More... | |
virtual void | setIncNotification (const Instantiation &i) override |
Listen to increment in a given Instantiation. More... | |
virtual void | setDecNotification (const Instantiation &i) override |
Listen to increment in each recorded Instantiation. More... | |
virtual void | setChangeNotification (const Instantiation &i) override |
Listen to an assignment of a value in a Instantiation. More... | |
virtual bool | registerSlave (Instantiation &i) override |
Register i as a slave of this MultiDimAdressable. More... | |
virtual bool | unregisterSlave (Instantiation &i) override |
Unregister i as a slave of this MultiDimAdressable. More... | |
virtual MultiDimAdressable & | getMasterRef () override |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer. More... | |
virtual const MultiDimAdressable & | getMasterRef () const override |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer. More... | |
virtual const std::string | toString (const Instantiation *i) const override |
Display the internal representation of i. 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 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 | empty () const override |
Returns true if no var is in *this. 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) 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 void | copy (const MultiDimContainer< GUM_SCALAR > &src) |
Removes all variables in this MultiDimContainer and copy the content of src, variables included. More... | |
Various methods. | |
virtual const std::string | toString () const |
Returns a representation of this MultiDimContainer. More... | |
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 void | _commitMultipleChanges () override |
Synchronize content after MultipleChanges. More... | |
virtual GUM_SCALAR & | _get (const Instantiation &i) const override |
virtual void | _replace (const DiscreteVariable *x, const DiscreteVariable *y) override |
Replace variable x by y. More... | |
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 (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 | _invert (Idx p1, Idx p2) |
Inverts variables at position p1 and p2. More... | |
A multidim implementation for buckets.
This class behaves in two different ways, depending on the value of memory allowed and the size of the resulting multidimensional table. If the table is above the allowed amount of memory then value are computed when demanded, having a cache for each registered instantiation to not compute several times in a row the same value.
If the memory allowed is enough to contain the bucket's table, then the resulting table is computed when a value is demanded for the first time.
Since a MultiDimArray is used as a buffer, an instantiation real master will be the internal buffer of a MultiDimBucket. This is why you should always call the Instantiation::isMaster() method with the reference retuned by MultiDimBucket::getMasterRef().
TODO handle slave switch between buffer and hashtable.
GUM_SCALAR | The type of scalars stored in this multidimensional table. |
Definition at line 75 of file multiDimBucket.h.
|
explicit |
Default constructor.
The default amount of memory available for a bucket is 2^16 (65536) elements in the table.
bufferSize | The amount of memory allowed for this bucket. |
Definition at line 36 of file multiDimBucket_tpl.h.
gum::MultiDimBucket< GUM_SCALAR >::MultiDimBucket | ( | const MultiDimBucket< GUM_SCALAR > & | source | ) |
Copy constructor.
source | The MultiDimBucket to copy. |
Definition at line 43 of file multiDimBucket_tpl.h.
|
virtual |
Destructor.
Definition at line 54 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, gum::MultiDimBucket< GUM_SCALAR >::__multiDims, and gum::BijectionIteratorSafe< T1, T2 >::second().
|
private |
Add a variable to __allVariables, and do nothing if var is already in the set.
var | The DiscreteVariable to add. |
Definition at line 435 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__allVariables, gum::MultiDimBucket< GUM_SCALAR >::__allVarsInst, and gum::Instantiation::add().
Referenced by gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges(), and gum::MultiDimBucket< GUM_SCALAR >::add().
|
private |
Compute the value of the final table of this bucket given i.
If i variables are a subset of this bucket, then the missing values are supposed to be at 0.
value | The value to compute. |
SizeError | Raised if the bucket is empty. |
Definition at line 518 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__allVarsInst, gum::MultiDimBucket< GUM_SCALAR >::__multiDims, gum::Instantiation::end(), gum::Exception::errorContent(), GUM_ERROR, gum::Instantiation::incOut(), gum::Instantiation::setFirstOut(), and gum::Instantiation::setVals().
Referenced by gum::MultiDimBucket< GUM_SCALAR >::compute(), and gum::MultiDimBucket< GUM_SCALAR >::get().
|
private |
Clean the buffer and switch it's instantiation to this bucket.
Definition at line 501 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, and gum::BijectionIteratorSafe< T1, T2 >::second().
Referenced by gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges(), gum::MultiDimBucket< GUM_SCALAR >::add(), and gum::MultiDimBucket< GUM_SCALAR >::setBufferSize().
|
private |
Erase a variable from __allVariables if no other multidimensional table uses it in this bucket.
var | The DiscreteVariable to remove. |
Definition at line 445 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__allVariables, gum::MultiDimBucket< GUM_SCALAR >::__allVarsInst, gum::MultiDimBucket< GUM_SCALAR >::__multiDims, and gum::Instantiation::erase().
Referenced by gum::MultiDimBucket< GUM_SCALAR >::erase().
|
private |
Initialize the internal buffer.
This method delete __bucket after saving it's slave instantiations.
Definition at line 466 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__changed, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, gum::MultiDimImplementation< GUM_SCALAR >::_slaves(), gum::MultiDimImplementation< GUM_SCALAR >::empty(), gum::BijectionIteratorSafe< T1, T2 >::second(), and gum::MultiDimImplementation< GUM_SCALAR >::variablesSequence().
Referenced by gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges(), gum::MultiDimBucket< GUM_SCALAR >::add(), gum::MultiDimBucket< GUM_SCALAR >::erase(), and gum::MultiDimBucket< GUM_SCALAR >::setBufferSize().
|
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.
|
overrideprotectedvirtual |
Synchronize content after MultipleChanges.
Reimplemented from gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 400 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__addVariable(), gum::MultiDimBucket< GUM_SCALAR >::__allVariables, gum::MultiDimBucket< GUM_SCALAR >::__allVarsInst, gum::MultiDimBucket< GUM_SCALAR >::__bufferSize, gum::MultiDimBucket< GUM_SCALAR >::__changed, gum::MultiDimBucket< GUM_SCALAR >::__eraseBuffer(), gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), gum::MultiDimBucket< GUM_SCALAR >::__multiDims, gum::MultiDimImplementation< GUM_SCALAR >::_commitMultipleChanges(), gum::MultiDimImplementation< GUM_SCALAR >::domainSize(), gum::Instantiation::empty(), gum::Instantiation::erase(), and gum::Instantiation::variablesSequence().
|
overrideprotectedvirtual |
Reimplemented from gum::MultiDimReadOnly< GUM_SCALAR >.
Definition at line 429 of file multiDimBucket_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().
|
overrideprotectedvirtual |
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. |
Reimplemented from gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 566 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__allVariables, gum::MultiDimBucket< GUM_SCALAR >::__allVarsInst, gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, gum::MultiDimImplementation< GUM_SCALAR >::_replace(), gum::BijectionIteratorSafe< T1, T2 >::first(), and gum::MultiDimInterface::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().
INLINE void gum::MultiDimBucket< GUM_SCALAR >::add | ( | const MultiDimContainer< GUM_SCALAR > & | impl | ) |
Add a MultiDimContainer in the bucket.
impl | The MultiDimContainer to copy. |
DuplicateElement | Raised if impl is already in the bucket. |
Definition at line 75 of file multiDimBucket_tpl.h.
Referenced by gum::prm::SVE< GUM_SCALAR >::__eliminateDelayedVariables().
void gum::MultiDimBucket< GUM_SCALAR >::add | ( | const MultiDimContainer< GUM_SCALAR > * | impl | ) |
Add a MultiDimContainer in the bucket.
impl | The MultiDimContainer to add. |
DuplicateElement | Raised if impl is already in the bucket. |
Definition at line 81 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__addVariable(), gum::MultiDimBucket< GUM_SCALAR >::__changed, gum::MultiDimBucket< GUM_SCALAR >::__multiDims, and gum::MultiDimInterface::variablesSequence().
|
overridevirtual |
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. |
Reimplemented from gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 184 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__bufferSize, gum::MultiDimBucket< GUM_SCALAR >::__eraseBuffer(), gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), gum::MultiDimImplementation< GUM_SCALAR >::add(), and gum::MultiDimImplementation< GUM_SCALAR >::domainSize().
INLINE const Set< const DiscreteVariable *> & gum::MultiDimBucket< GUM_SCALAR >::allVariables | ( | ) | const |
Returns the sequence of all the variables contained in the bucket.
Definition at line 127 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__allVariables.
Referenced by gum::prm::SVE< GUM_SCALAR >::__eliminateDelayedVariables().
|
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.
INLINE const MultiDimArray< GUM_SCALAR > & gum::MultiDimBucket< GUM_SCALAR >::bucket | ( | ) | const |
Returns the MultiDimArray used by this MultiDimBucket.
OperationNotAllowed | Raised if the bucket has not been built. |
Definition at line 557 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, and GUM_ERROR.
INLINE bool gum::MultiDimBucket< GUM_SCALAR >::bucketChanged | ( | ) | const |
Returns true if the bucket need re-computation since the last computation.
Definition at line 142 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__changed.
INLINE Size gum::MultiDimBucket< GUM_SCALAR >::bucketSize | ( | ) | const |
Returns the number of MultiDimContainer in in this bukcet.
Definition at line 132 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__multiDims.
INLINE Size gum::MultiDimBucket< GUM_SCALAR >::bufferSize | ( | ) | const |
Returns the amount of memory allowed for this bucket.
Definition at line 147 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bufferSize.
|
overridevirtual |
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 246 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, and gum::MultiDimBucket< GUM_SCALAR >::__slavesValue.
|
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.
void gum::MultiDimBucket< GUM_SCALAR >::compute | ( | bool | force = false | ) | const |
This method computes the final table of this bucket.
A flag is used to prevent unnecessary computation if the table has already been computed.
If the size of the final table is above the amount of authorized memory, an OperationNotAllowed is raised.
Remember that this method is constant because the content of a multidimensional table is mutable.
force | If true (default set at false) then the final table is re-computed. |
OperationNotAllowed | Raised if the size of the final table is above the authorized amount of memory. |
SizeError | Raised if the bucket is empty. |
Definition at line 163 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__changed, gum::MultiDimBucket< GUM_SCALAR >::__computeValue(), gum::MultiDimBucket< GUM_SCALAR >::__slavesValue, gum::Instantiation::end(), gum::Instantiation::inc(), and gum::Instantiation::setFirst().
Referenced by gum::prm::copyPotential(), and gum::MultiDimBucket< GUM_SCALAR >::get().
INLINE bool gum::MultiDimBucket< GUM_SCALAR >::contains | ( | const MultiDimContainer< GUM_SCALAR > & | impl | ) | const |
Returns true if the MultiDimContainer is in this bucket.
impl | The impl to test for existence. |
Definition at line 120 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__multiDims.
|
overridevirtual |
Returns true if var is in *this.
v | A DiscreteVariable. |
Reimplemented from gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 220 of file multiDimBucket_tpl.h.
References gum::MultiDimImplementation< GUM_SCALAR >::contains().
|
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().
|
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().
|
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.
INLINE void gum::MultiDimBucket< GUM_SCALAR >::erase | ( | const MultiDimContainer< GUM_SCALAR > & | impl | ) |
Remove a MultiDimContainer from this bucket.
impl | The MultiDimContainer to remove. |
Definition at line 95 of file multiDimBucket_tpl.h.
void gum::MultiDimBucket< GUM_SCALAR >::erase | ( | const MultiDimContainer< GUM_SCALAR > * | impl | ) |
Remove a MultiDimContainer from this bucket.
impl | The MultiDimContainer to remove. |
Definition at line 101 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__changed, gum::MultiDimBucket< GUM_SCALAR >::__eraseVariable(), gum::MultiDimBucket< GUM_SCALAR >::__multiDims, and gum::MultiDimInterface::variablesSequence().
|
overridevirtual |
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. |
Reimplemented from gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 200 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__bufferSize, gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), gum::MultiDimImplementation< GUM_SCALAR >::domainSize(), and gum::MultiDimImplementation< 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 |
Returns the value pointed by i.
i | An Instantiation of this MultiDimContainer. |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 226 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__computeValue(), gum::MultiDimBucket< GUM_SCALAR >::__instantiations, gum::MultiDimBucket< GUM_SCALAR >::__slavesValue, gum::MultiDimBucket< GUM_SCALAR >::compute(), and gum::Instantiation::isMaster().
|
overridevirtual |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 373 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket.
|
overridevirtual |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 383 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket.
INLINE bool gum::MultiDimBucket< GUM_SCALAR >::isBucketEmpty | ( | ) | const |
Returns true if this bucket is empty.
Definition at line 137 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__multiDims.
INLINE const HashTable< const MultiDimContainer< GUM_SCALAR > *, Instantiation *> & gum::MultiDimBucket< GUM_SCALAR >::multidims | ( | ) | const |
Returns the MultiDimContainer and their respective Instantiation.
Definition at line 587 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__multiDims.
|
overridevirtual |
Returns the real name of the multiDim implementation.
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 179 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__name.
|
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().
|
overridevirtual |
Default constructor.
Implements gum::MultiDimReadOnly< GUM_SCALAR >.
Definition at line 551 of file multiDimBucket_tpl.h.
|
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().
|
overridevirtual |
Returns the real number of parameters used for this table.
This function is used by the MultiDimImplementation::compressionRate() method.
Implements gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 214 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket.
|
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().
|
overridevirtual |
Register i as a slave of this MultiDimAdressable.
i | The Instantiation to enslave. |
Reimplemented from gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 342 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, and gum::MultiDimImplementation< 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.
INLINE void gum::MultiDimBucket< GUM_SCALAR >::setBufferSize | ( | Size | amount | ) |
Changes the amount of memory allowed for this bucket.
If the new amount is not enough for the current size of this bucket, then internal buffer is deleted. In the other case, the internal buffer is created but not computed.
amount | The amount of memory allowed for this bucket. |
Definition at line 152 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__bufferSize, gum::MultiDimBucket< GUM_SCALAR >::__eraseBuffer(), gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), and gum::MultiDimImplementation< GUM_SCALAR >::domainSize().
|
overridevirtual |
Listen to an assignment of a value in a Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 328 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, and gum::MultiDimBucket< GUM_SCALAR >::__slavesValue.
|
overridevirtual |
Listen to increment in each recorded Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 313 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, and gum::MultiDimBucket< GUM_SCALAR >::__slavesValue.
|
overridevirtual |
Listen to setFirst in a given Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 268 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, and gum::MultiDimBucket< GUM_SCALAR >::__slavesValue.
|
overridevirtual |
Listen to increment in a given Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 298 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, and gum::MultiDimBucket< GUM_SCALAR >::__slavesValue.
|
overridevirtual |
Listen to setLast in a given Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 283 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, and gum::MultiDimBucket< GUM_SCALAR >::__slavesValue.
|
overridevirtual |
Display the internal representation of i.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 393 of file multiDimBucket_tpl.h.
|
virtualinherited |
Returns a representation of this MultiDimContainer.
Reimplemented in gum::Potential< GUM_SCALAR >, gum::MultiDimDecorator< GUM_SCALAR >, gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimNoisyAND< GUM_SCALAR >, gum::MultiDimNoisyORCompound< GUM_SCALAR >, gum::MultiDimNoisyORNet< GUM_SCALAR >, gum::MultiDimLogit< GUM_SCALAR >, and gum::MultiDimICIModel< GUM_SCALAR >.
Definition at line 105 of file multiDimContainer_tpl.h.
References gum::Instantiation::end(), gum::MultiDimInterface::nbrDim(), gum::MultiDimContainer< GUM_SCALAR >::operator==(), and gum::Instantiation::setFirst().
Referenced by gum::operator<<().
|
overridevirtual |
Unregister i as a slave of this MultiDimAdressable.
i | The Instantiation to free. |
Reimplemented from gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 353 of file multiDimBucket_tpl.h.
References gum::MultiDimBucket< GUM_SCALAR >::__bucket, gum::MultiDimBucket< GUM_SCALAR >::__instantiations, gum::MultiDimBucket< GUM_SCALAR >::__slavesValue, and gum::MultiDimImplementation< 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::aggregator::MultiDimAggregator< GUM_SCALAR >::get(), gum::MultiDimNoisyAND< 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().
|
private |
The set of all variables of the multidims in this bucket.
Definition at line 297 of file multiDimBucket.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::__addVariable(), gum::MultiDimBucket< GUM_SCALAR >::__eraseVariable(), gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges(), gum::MultiDimBucket< GUM_SCALAR >::_replace(), and gum::MultiDimBucket< GUM_SCALAR >::allVariables().
|
mutableprivate |
Instantiation over all variable in this.
Definition at line 300 of file multiDimBucket.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::__addVariable(), gum::MultiDimBucket< GUM_SCALAR >::__computeValue(), gum::MultiDimBucket< GUM_SCALAR >::__eraseVariable(), gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges(), and gum::MultiDimBucket< GUM_SCALAR >::_replace().
|
private |
The result table of this bucket.
Definition at line 290 of file multiDimBucket.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::__eraseBuffer(), gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), gum::MultiDimBucket< GUM_SCALAR >::_replace(), gum::MultiDimBucket< GUM_SCALAR >::add(), gum::MultiDimBucket< GUM_SCALAR >::bucket(), gum::MultiDimBucket< GUM_SCALAR >::changeNotification(), gum::MultiDimBucket< GUM_SCALAR >::compute(), gum::MultiDimBucket< GUM_SCALAR >::erase(), gum::MultiDimBucket< GUM_SCALAR >::get(), gum::MultiDimBucket< GUM_SCALAR >::getMasterRef(), gum::MultiDimBucket< GUM_SCALAR >::realSize(), gum::MultiDimBucket< GUM_SCALAR >::registerSlave(), gum::MultiDimBucket< GUM_SCALAR >::setBufferSize(), gum::MultiDimBucket< GUM_SCALAR >::setChangeNotification(), gum::MultiDimBucket< GUM_SCALAR >::setDecNotification(), gum::MultiDimBucket< GUM_SCALAR >::setFirstNotification(), gum::MultiDimBucket< GUM_SCALAR >::setIncNotification(), gum::MultiDimBucket< GUM_SCALAR >::setLastNotification(), gum::MultiDimBucket< GUM_SCALAR >::unregisterSlave(), and gum::MultiDimBucket< GUM_SCALAR >::~MultiDimBucket().
|
private |
The number of element allowed in __bucket.
Definition at line 283 of file multiDimBucket.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges(), gum::MultiDimBucket< GUM_SCALAR >::add(), gum::MultiDimBucket< GUM_SCALAR >::bufferSize(), gum::MultiDimBucket< GUM_SCALAR >::erase(), and gum::MultiDimBucket< GUM_SCALAR >::setBufferSize().
|
mutableprivate |
Flag used to know if changes has occurred in the bucket since last computation.
Definition at line 343 of file multiDimBucket.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges(), gum::MultiDimBucket< GUM_SCALAR >::add(), gum::MultiDimBucket< GUM_SCALAR >::bucketChanged(), gum::MultiDimBucket< GUM_SCALAR >::compute(), and gum::MultiDimBucket< GUM_SCALAR >::erase().
|
private |
Bijection between instantiations registered on this and their equivalent on __bucket.
Definition at line 287 of file multiDimBucket.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::__eraseBuffer(), gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), gum::MultiDimBucket< GUM_SCALAR >::_replace(), gum::MultiDimBucket< GUM_SCALAR >::changeNotification(), gum::MultiDimBucket< GUM_SCALAR >::get(), gum::MultiDimBucket< GUM_SCALAR >::registerSlave(), gum::MultiDimBucket< GUM_SCALAR >::setChangeNotification(), gum::MultiDimBucket< GUM_SCALAR >::setDecNotification(), gum::MultiDimBucket< GUM_SCALAR >::setFirstNotification(), gum::MultiDimBucket< GUM_SCALAR >::setIncNotification(), gum::MultiDimBucket< GUM_SCALAR >::setLastNotification(), gum::MultiDimBucket< GUM_SCALAR >::unregisterSlave(), and gum::MultiDimBucket< GUM_SCALAR >::~MultiDimBucket().
|
mutableprivate |
The set of MultiDimContainer in this bucket.
Definition at line 294 of file multiDimBucket.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::__computeValue(), gum::MultiDimBucket< GUM_SCALAR >::__eraseVariable(), gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges(), gum::MultiDimBucket< GUM_SCALAR >::add(), gum::MultiDimBucket< GUM_SCALAR >::bucketSize(), gum::MultiDimBucket< GUM_SCALAR >::contains(), gum::MultiDimBucket< GUM_SCALAR >::erase(), gum::MultiDimBucket< GUM_SCALAR >::isBucketEmpty(), gum::MultiDimBucket< GUM_SCALAR >::multidims(), and gum::MultiDimBucket< GUM_SCALAR >::~MultiDimBucket().
|
private |
The class name.
Definition at line 350 of file multiDimBucket.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::name().
|
mutableprivate |
This table is used to keep the last value computed for an instantiation when the value are computed on the fly.
Definition at line 347 of file multiDimBucket.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::changeNotification(), gum::MultiDimBucket< GUM_SCALAR >::compute(), gum::MultiDimBucket< GUM_SCALAR >::get(), gum::MultiDimBucket< GUM_SCALAR >::setChangeNotification(), gum::MultiDimBucket< GUM_SCALAR >::setDecNotification(), gum::MultiDimBucket< GUM_SCALAR >::setFirstNotification(), gum::MultiDimBucket< GUM_SCALAR >::setIncNotification(), gum::MultiDimBucket< GUM_SCALAR >::setLastNotification(), and gum::MultiDimBucket< GUM_SCALAR >::unregisterSlave().