![]() |
aGrUM 3.1.1
a C++ library for (probabilistic) graphical models
|
Class implementingting a function graph. More...
#include <multiDimFunctionGraph.h>
Public Member Functions | |
Unallowed inherited methods | |
| void | set (const Instantiation &i, const GUM_ELEMENT &value) const override |
| void | fill (const GUM_ELEMENT &d) const override |
| void | populate (const std::vector< GUM_ELEMENT > &v) const override |
| void | populate (std::initializer_list< GUM_ELEMENT > v) const override |
| void | copyFrom (const MultiDimContainer< GUM_ELEMENT > &src, Instantiation *p_i=(Instantiation *) 0) const override |
| void | copy (const MultiDimContainer< GUM_ELEMENT > &src) override |
Inherited methods | |
| MultiDimContainer< GUM_ELEMENT > * | newFactory () const override |
| Creates an empty clone of this MultiDimContainer. | |
| GUM_ELEMENT | get (const Instantiation &i) const override |
| Returns the value pointed by i. | |
| const std::string & | name () const override |
| Returns the real name of the multiDim implementation. | |
| void | add (const DiscreteVariable &v) override |
| Adds a new var to the variables of the multidimensional matrix. | |
| void | erase (const DiscreteVariable &v) override |
| Removes a var from the variables of the multidimensional matrix. | |
| Size | realSize () const override |
| Returns the real number of parameters used for this table. | |
| void | changeNotification (const Instantiation &i, const DiscreteVariable *const var, Idx oldval, Idx newval) override |
| Listen to changes in a given Instantiation. | |
| void | setFirstNotification (const Instantiation &i) override |
| Listen to setFirst in a given Instantiation. | |
| void | setLastNotification (const Instantiation &i) override |
| Listen to setLast in a given Instantiation. | |
| void | setIncNotification (const Instantiation &i) override |
| Listen to increment in a given Instantiation. | |
| void | setDecNotification (const Instantiation &i) override |
| Listen to increment in each recorded Instantiation. | |
| void | setChangeNotification (const Instantiation &i) override |
| Listen to an assignment of a value in a Instantiation. | |
| std::string | toString (const Instantiation *i) const override |
| Display the internal representation of i. | |
Copy methods. | |
| void | copy (const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > &src) |
| Removes all variables in this MultiDimFunctionGraph and copy the content of src, variables included. | |
| void | copyAndReassign (const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > &src, const Bijection< const DiscreteVariable *, const DiscreteVariable * > &reassign) |
| Copies src diagrams structure into this diagrams. | |
| void | copyAndMultiplyByScalar (const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > &src, GUM_ELEMENT gamma) |
| Copies src diagrams and multiply every value by the given scalar. | |
| void | clear () |
| Clears the function graph. | |
Accessors / Modifiers | |
| const std::string & | basename () const |
| Returns the base class name of this MultiDimImplementation. | |
| float | compressionRate () const |
| The compression ratio of the table (depending on the type of implementation). | |
| virtual const GUM_ELEMENT * | data () const noexcept |
| Returns a pointer to the contiguous data buffer, or nullptr if the implementation does not store data contiguously. | |
| virtual GUM_ELEMENT * | data () noexcept |
| Returns a mutable pointer to the contiguous data buffer, or nullptr if the implementation does not store data contiguously. | |
MultiDimInterface implementation | |
| Idx | nbrDim () const override |
| Returns the number of vars in the multidimensional container. | |
| Size | domainSize () const override |
| Returns the product of the variables domain size. | |
| const Sequence< const DiscreteVariable * > & | variablesSequence () const override |
| Returns a const ref to the sequence of DiscreteVariable*. | |
| const DiscreteVariable & | variable (Idx i) const override |
| Returns a const ref to the ith var. | |
| const DiscreteVariable & | variable (std::string_view name) const override |
| Returns the variable with the name. | |
| Idx | pos (const DiscreteVariable &v) const override |
| Returns the index of a variable. | |
| bool | contains (const DiscreteVariable &v) const override |
| Returns true if var is in *this. | |
| bool | empty () const override |
| Returns true if no var is in *this. | |
MultiDimAdressable implementation | |
| bool | registerSlave (Instantiation &slave) override |
| Register i as a slave of this MultiDimAdressable. | |
| bool | unregisterSlave (Instantiation &slave) override |
| Unregister i as a slave of this MultiDimAdressable. | |
MultiDimContainer implementation | |
| void | beginMultipleChanges () override |
| Call this method before doing important changes in this MultiDimContainer. | |
| void | endMultipleChanges () override |
| Call this method after doing important changes in this MultiDimContainer. | |
| void | endMultipleChanges (const GUM_ELEMENT &) override |
| Call this method after doing important changes in this MultiDimContainer. | |
Accessors / Modifiers | |
| GUM_ELEMENT | operator[] (const Instantiation &i) const |
| An [] operator using a Instantiation as argument. | |
Copy methods. | |
| virtual void | copyFrom (const MultiDimContainer< GUM_ELEMENT > &src) const |
| Basic copy of a MultiDimContainer. | |
| virtual void | extractFrom (const MultiDimContainer< GUM_ELEMENT > &src, const Instantiation &mask) |
| Basic extraction of a MultiDimContainer. | |
| MultiDimAdressable & | getMasterRef () override |
| In order to insure the dereference for decorators, we need to virtualize the access to master pointer. | |
| const MultiDimAdressable & | getMasterRef () const override |
| In order to insure the dereference for decorators, we need to virtualize the access to master pointer. | |
Various methods. | |
| virtual std::string | toString () const |
| Returns a representation of this MultiDimContainer. | |
| bool | operator== (const MultiDimContainer< GUM_ELEMENT > &p) const |
| Test if this MultiDimContainer is equal to p. | |
| virtual void | apply (std::function< GUM_ELEMENT(GUM_ELEMENT) > f) const |
| Apply a function on every element of the container. | |
| virtual GUM_ELEMENT | reduce (std::function< GUM_ELEMENT(GUM_ELEMENT, GUM_ELEMENT) > f, GUM_ELEMENT base) const |
| compute lfold for this container | |
Accessors / Modifiers | |
| void | replace (const DiscreteVariable &x, const DiscreteVariable &y) |
| Replace variables in this multidim. | |
Terminal Node Creation and Destruction | |
| void | addTerminalNode (const NodeId &n, const GUM_ELEMENT &v) override |
| Insert a new terminal node with given value. | |
| void | eraseTerminalNode (const NodeId &n) override |
| Remove node matching given id. | |
| void | clearAllTerminalNodes () override |
| Erase all terminal nodes. | |
Terminal Nodes Existence | |
| bool | existsTerminalNodeWithId (const NodeId &n) const override |
| Returns true if a terminal node matching this id exists. | |
| bool | existsTerminalNodeWithValue (const GUM_ELEMENT &v) const override |
| Returns true if a terminal node matching this value exists. | |
Terminal Nodes value and id access | |
| const GUM_ELEMENT & | terminalNodeValue (const NodeId &n) const override |
| Returns the value of the terminal node that has the given id. | |
| const NodeId & | terminalNodeId (const GUM_ELEMENT &v) const override |
| Returns the id of the terminal node that has the given value. | |
Iterator on Terminal Nodes | |
| void | beginValues () const override |
| Initializes the constant safe iterator on terminal nodes. | |
| bool | hasValue () const override |
| Indicates if constant safe iterator has reach end of terminal nodes list. | |
| void | nextValue () const override |
| Increments the constant safe iterator. | |
| const GUM_ELEMENT & | value () const override |
| Returns the value of the current terminal nodes pointed by the constant safe iterator. | |
| const NodeId & | id () const override |
| Returns the id of the current terminal nodes pointed by the constant safe iterator. | |
Static Public Attributes | |
| static const GUM_ELEMENT | defaultValue |
| Only for proper initialization of a certain returned value. | |
Protected Member Functions | |
| void | replace_ (const DiscreteVariable *x, const DiscreteVariable *y) override |
| GUM_ELEMENT & | get_ (const Instantiation &inst) const override |
| const MultiDimImplementation< GUM_ELEMENT > * | content () const final |
| Returns the implementation for this object (may be *this). | |
| MultiDimImplementation< GUM_ELEMENT > * | content () final |
| Returns the implementation for this object (may be *this). | |
Fast large modifications in structures | |
| virtual void | commitMultipleChanges_ () |
| Synchronize content after MultipleChanges. | |
| virtual void | commitMultipleChanges_ (const GUM_ELEMENT &value) |
| Synchronize content after MultipleChanges. | |
| bool | isInMultipleChangeMethod_ () const |
| Get the actual change method of this MultiDimImplementation. | |
| bool | isCommitNeeded_ () const |
| Get the actual state of *this. | |
| const List< Instantiation * > & | slaves_ () const |
| Returns a constant reference over the list of slaved instantiations. | |
| virtual void | invert_ (Idx p1, Idx p2) |
| Inverts variables at position p1 and p2. | |
Private Types | |
| enum class | _InternalChangeMethod_ : char { DIRECT_CHANGE , MULTIPLE_CHANGE } |
| Used to represent in which change method this MultiDimImplementation is. More... | |
| enum class | _InternalChangeState_ : char { NO_CHANGE , NOT_COMMITTED_CHANGE } |
| Used to represent in which change state this MultiDimImplementation is. More... | |
Private Member Functions | |
| void | _setNotCommitedChange_ () |
| Change the internalChangeState to NOT_COMMITTED_CHANGE. | |
Private Attributes | |
| std::string | _name_ |
| The name of the data structure. | |
| std::string | _tableName_ |
| The name of the data structure. | |
| NodeGraphPart | _model_ |
| Indicates available nodeIds. | |
| MultiDimFunctionGraphManager< GUM_ELEMENT, TerminalNodePolicy > * | _manager_ |
| A reference to the manager that edits this function graph. | |
| NodeId | _root_ |
| The root node of the function graph. | |
| HashTable< NodeId, InternalNode * > | _internalNodeMap_ |
| Associates each non-terminal node to a variable. | |
| HashTable< const DiscreteVariable *, LinkedList< NodeId > * > | _var2NodeIdMap_ |
| Mapping between var and node. | |
| bool | _isReduced_ |
| Wheter the MultiDimFunctionGraphManager is reduced or not. | |
| Sequence< const DiscreteVariable * > | _vars_ |
| List of discrete variables (dimensions). | |
| List< Instantiation * > | _slaveInstantiations_ |
| List of instantiations of the tuples (sequences) of variables. | |
| _InternalChangeMethod_ | _internalChangeMethod_ |
| The current change method. | |
| _InternalChangeState_ | _internalChangeState_ |
| The current change state. | |
| Size | _domainSize_ |
| This MultiDimImplementation domain size. | |
| Bijection< NodeId, GUM_ELEMENT > | _map_ |
| BijectionIteratorSafe< NodeId, GUM_ELEMENT > | _mappy_ |
Constructors, destructor and copy | |
| MultiDimFunctionGraph (bool isReduced=true) | |
| Default constructor. | |
| MultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > &from) | |
| Copy constructor. | |
| MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > & | operator= (const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > &from) |
| Copy Operator. | |
| ~MultiDimFunctionGraph () override | |
| Class destructor. | |
Accessors and modifiers | |
| std::string | toDot (bool withBackArcs=false) const |
| Returns a const reference to the manager of this diagram. | |
| const NodeGraphPart & | model () const |
| Returns a const reference to the manager of this diagram. | |
| MultiDimFunctionGraphManager< GUM_ELEMENT, TerminalNodePolicy > * | manager () |
| Returns a const reference to the manager of this diagram. | |
| const NodeId & | root () const |
| Returns the id of the root node from the diagram. | |
| bool | isTerminalNode (const NodeId &node) const |
| Indicates if given node is terminal or not. | |
| bool | isInternalNode (const NodeId &node) const |
| Indicates if given node is terminal or not. | |
| const GUM_ELEMENT & | nodeValue (NodeId n) const |
| Returns value associated to given node. | |
| const InternalNode * | node (NodeId n) const |
| Returns internalNode structure associated to that nodeId. | |
| const LinkedList< NodeId > * | varNodeListe (const DiscreteVariable *var) const |
| Returns the list of node associated to given variable. | |
| const std::string & | tableName () const |
| Returns the name of the table represented by this structure. | |
| void | setTableName (std::string_view name) |
| Sets the name of the table represented by this structure. | |
| bool | isReducedAndOrdered () const |
| Returns true if this MultiDimFunctionGraph is reduced and Ordered. | |
| static MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * | getReducedAndOrderedInstance () |
| Returns a reduced and ordered instance. | |
| static MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * | getTreeInstance () |
| Returns an arborescent instance. | |
Class implementingting a function graph.
| GUM_ELEMENT | The type of scalars stored in this multidimensional table. |
| TerminalNodePolicy | The terminal node policy to use in this MultiDimFunctionGraph. |
Definition at line 90 of file multiDimFunctionGraph.h.
|
strongprivateinherited |
Used to represent in which change method this MultiDimImplementation is.
| Enumerator | |
|---|---|
| DIRECT_CHANGE | |
| MULTIPLE_CHANGE | |
Definition at line 317 of file multiDimImplementation.h.
|
strongprivateinherited |
Used to represent in which change state this MultiDimImplementation is.
| Enumerator | |
|---|---|
| NO_CHANGE | |
| NOT_COMMITTED_CHANGE | |
Definition at line 320 of file multiDimImplementation.h.
|
private |
Default constructor.
| isReduced | If true, then this MultiDimFunctionGraph is reduced. |
Definition at line 58 of file multiDimFunctionGraph_tpl.h.
References MultiDimFunctionGraph(), gum::MultiDimImplementation< GUM_ELEMENT >::MultiDimImplementation(), _internalNodeMap_, _isReduced_, _manager_, _model_, _name_, _root_, _tableName_, and _var2NodeIdMap_.
Referenced by MultiDimFunctionGraph(), MultiDimFunctionGraph(), and ~MultiDimFunctionGraph().
| gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::MultiDimFunctionGraph | ( | const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > & | from | ) |
Copy constructor.
| from | The MultiDimFunctionGraph to copy. |
Definition at line 71 of file multiDimFunctionGraph_tpl.h.
References MultiDimFunctionGraph(), gum::MultiDimImplementation< GUM_ELEMENT >::MultiDimImplementation(), _internalNodeMap_, _isReduced_, _manager_, _model_, _name_, _root_, _tableName_, _var2NodeIdMap_, copy(), and isReducedAndOrdered().
|
override |
Class destructor.
Definition at line 92 of file multiDimFunctionGraph_tpl.h.
References MultiDimFunctionGraph(), _manager_, and clear().
|
privateinherited |
Change the internalChangeState to NOT_COMMITTED_CHANGE.
Definition at line 286 of file multiDimImplementation_tpl.h.
References _internalChangeState_, and NOT_COMMITTED_CHANGE.
|
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. |
Implements gum::MultiDimInterface.
Definition at line 164 of file multiDimFunctionGraph_tpl.h.
References _var2NodeIdMap_, gum::MultiDimImplementation< GUM_ELEMENT >::add(), and gum::MultiDimImplementation< GUM_ELEMENT >::variablesSequence().
Referenced by gum::MultiDimFunctionGraphGenerator::generate(), gum::IMDDI< AttributeSelection, isScalar >::insertSetOfVars(), gum::IncrementalGraphLearner< AttributeSelection, isScalar >::insertSetOfVars(), gum::StatesCounter::insertSetOfVars(), gum::ITI< AttributeSelection, isScalar >::insertSetOfVars_(), and gum::StructuredPlaner< GUM_ELEMENT >::makeArgMax_().
|
overridevirtualinherited |
Insert a new terminal node with given value.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 49 of file ExactTerminalNodePolicy_tpl.h.
References _map_.
|
virtualinherited |
Apply a function on every element of the container.
| f | the function to apply |
Reimplemented in gum::MultiDimArray< GUM_ELEMENT >, gum::MultiDimDecorator< GUM_ELEMENT >, and gum::MultiDimDecorator< GUM_SCALAR >.
Definition at line 200 of file multiDimContainer_tpl.h.
References gum::Instantiation::end(), get(), set(), 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 298 of file multiDimImplementation_tpl.h.
|
overridevirtualinherited |
Call this method before doing important changes in this MultiDimContainer.
Implements gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 232 of file multiDimImplementation_tpl.h.
References _internalChangeMethod_, and MULTIPLE_CHANGE.
|
overridevirtualinherited |
Initializes the constant safe iterator on terminal nodes.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 87 of file ExactTerminalNodePolicy_tpl.h.
|
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 189 of file multiDimFunctionGraph_tpl.h.
| void gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::clear | ( | ) |
Clears the function graph.
Definition at line 425 of file multiDimFunctionGraph_tpl.h.
References _internalNodeMap_, _model_, _var2NodeIdMap_, clear(), gum::ExactTerminalNodePolicy< GUM_ELEMENT >::clearAllTerminalNodes(), erase(), and gum::MultiDimImplementation< GUM_ELEMENT >::variablesSequence().
Referenced by ~MultiDimFunctionGraph(), and clear().
|
overridevirtualinherited |
Erase all terminal nodes.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 60 of file ExactTerminalNodePolicy_tpl.h.
References _map_.
Referenced by gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::clear().
|
protectedvirtualinherited |
Synchronize content after MultipleChanges.
Reimplemented in gum::MultiDimArray< GUM_ELEMENT >, gum::MultiDimBijArray< GUM_ELEMENT >, gum::MultiDimBucket< GUM_ELEMENT >, and gum::MultiDimSparse< GUM_ELEMENT >.
Definition at line 257 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimBucket< GUM_ELEMENT >::commitMultipleChanges_(), and endMultipleChanges().
|
protectedvirtualinherited |
Synchronize content after MultipleChanges.
| value | Default value for uninitialized values. |
Reimplemented in gum::MultiDimArray< GUM_ELEMENT >.
Definition at line 262 of file multiDimImplementation_tpl.h.
|
inherited |
The compression ratio of the table (depending on the type of implementation).
This method uses domainSize() and realSize() to compute the ratio, both methods are virtual and should be surcharge if a subclass has a special policies about memory management.
Definition at line 292 of file multiDimImplementation_tpl.h.
References domainSize(), and realSize().
|
overridevirtualinherited |
Returns true if var is in *this.
| v | A DiscreteVariable. |
Implements gum::MultiDimInterface.
Definition at line 212 of file multiDimImplementation_tpl.h.
References _vars_.
Referenced by gum::MultiDimBucket< GUM_ELEMENT >::contains().
|
finalprotectedvirtualinherited |
Returns the implementation for this object (may be *this).
Implements gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 335 of file multiDimImplementation_tpl.h.
|
finalprotectedvirtualinherited |
Returns the implementation for this object (may be *this).
Implements gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 328 of file multiDimImplementation_tpl.h.
References MultiDimImplementation().
|
overridevirtual |
Reimplemented from gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 233 of file multiDimFunctionGraph_tpl.h.
Referenced by MultiDimFunctionGraph(), operator=(), and gum::MDDOperatorStrategy< GUM_ELEMENT >::regress().
| void gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::copy | ( | const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > & | src | ) |
Removes all variables in this MultiDimFunctionGraph and copy the content of src, variables included.
| src | The MultiDimFunctionGraph to copy. |
Definition at line 241 of file multiDimFunctionGraph_tpl.h.
References _isReduced_, and GUM_ERROR.
| void gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::copyAndMultiplyByScalar | ( | const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > & | src, |
| GUM_ELEMENT | gamma ) |
Copies src diagrams and multiply every value by the given scalar.
| src | The MultiDimFunctionGraph to copy. |
| gamma | The scalar used to multiply every value with. |
Definition at line 365 of file multiDimFunctionGraph_tpl.h.
References _isReduced_, copyAndMultiplyByScalar(), and GUM_ERROR.
Referenced by gum::StructuredPlaner< GUM_ELEMENT >::addReward_(), and copyAndMultiplyByScalar().
| void gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::copyAndReassign | ( | const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > & | src, |
| const Bijection< const DiscreteVariable *, const DiscreteVariable * > & | reassign ) |
Copies src diagrams structure into this diagrams.
However it also changes the variables.
| src | The MultiDimFunctionGraph to copy. |
| reassign | A Bijection form variables in src to variables in this. |
Definition at line 299 of file multiDimFunctionGraph_tpl.h.
References _isReduced_, and GUM_ERROR.
Referenced by gum::AdaptiveRMaxPlaner::evalPolicy_(), gum::StructuredPlaner< GUM_ELEMENT >::evalPolicy_(), gum::AdaptiveRMaxPlaner::valueIteration_(), and gum::StructuredPlaner< GUM_ELEMENT >::valueIteration_().
|
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_ELEMENT >, gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimArray< GUM_ELEMENT >, gum::MultiDimICIModel< GUM_ELEMENT >, and gum::MultiDimICIModel< GUM_SCALAR >.
Definition at line 266 of file multiDimContainer_tpl.h.
References MultiDimContainer(), gum::MultiDimInterface::domainSize(), gum::Instantiation::end(), GUM_ERROR, set(), and gum::Instantiation::setFirst().
Referenced by gum::Tensor< GUM_SCALAR >::Tensor(), gum::MultiDimArray< GUM_ELEMENT >::copyFrom(), and gum::MultiDimICIModel< GUM_SCALAR >::externalWeight().
|
overridevirtual |
Reimplemented from gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 224 of file multiDimFunctionGraph_tpl.h.
References GUM_ERROR.
|
virtualnoexceptinherited |
Returns a pointer to the contiguous data buffer, or nullptr if the implementation does not store data contiguously.
Subclasses backed by a contiguous array (e.g. MultiDimArray) override this to expose direct memory access, enabling zero-copy interop with external libraries such as NumPy.
Reimplemented in gum::MultiDimArray< GUM_ELEMENT >.
Definition at line 340 of file multiDimImplementation_tpl.h.
|
virtualnoexceptinherited |
Returns a mutable pointer to the contiguous data buffer, or nullptr if the implementation does not store data contiguously.
Reimplemented in gum::MultiDimArray< GUM_ELEMENT >.
Definition at line 345 of file multiDimImplementation_tpl.h.
|
overridevirtualinherited |
Returns the product of the variables domain size.
Implements gum::MultiDimInterface.
Definition at line 187 of file multiDimImplementation_tpl.h.
References _domainSize_.
Referenced by gum::MultiDimArray< GUM_ELEMENT >::add(), gum::MultiDimBucket< GUM_ELEMENT >::add(), gum::MultiDimWithOffset< GUM_ELEMENT >::add(), gum::MultiDimWithOffset< GUM_ELEMENT >::changeNotification(), gum::MultiDimArray< GUM_ELEMENT >::commitMultipleChanges_(), gum::MultiDimBucket< GUM_ELEMENT >::commitMultipleChanges_(), compressionRate(), gum::MultiDimWithOffset< GUM_ELEMENT >::computeInstantiationValue_(), gum::MultiDimArray< GUM_ELEMENT >::erase(), gum::MultiDimBucket< GUM_ELEMENT >::erase(), gum::MultiDimArray< GUM_ELEMENT >::realSize(), gum::MultiDimBucket< GUM_ELEMENT >::setBufferSize(), gum::MultiDimWithOffset< GUM_ELEMENT >::setIncNotification(), and gum::MultiDimWithOffset< GUM_ELEMENT >::setLastNotification().
|
overridevirtualinherited |
Returns true if no var is in *this.
Implements gum::MultiDimInterface.
Definition at line 226 of file multiDimImplementation_tpl.h.
References _vars_, and isCommitNeeded_().
Referenced by gum::MultiDimBucket< GUM_ELEMENT >::_initializeBuffer_(), and gum::MultiDimArray< GUM_ELEMENT >::fill().
|
overridevirtualinherited |
Call this method after doing important changes in this MultiDimContainer.
Implements gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 237 of file multiDimImplementation_tpl.h.
References _internalChangeMethod_, _internalChangeState_, commitMultipleChanges_(), DIRECT_CHANGE, NO_CHANGE, and NOT_COMMITTED_CHANGE.
|
overridevirtualinherited |
Call this method after doing important changes in this MultiDimContainer.
Implements gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 247 of file multiDimImplementation_tpl.h.
|
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. |
Implements gum::MultiDimInterface.
Definition at line 171 of file multiDimFunctionGraph_tpl.h.
References _var2NodeIdMap_, and manager().
Referenced by clear().
|
overridevirtualinherited |
Remove node matching given id.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 55 of file ExactTerminalNodePolicy_tpl.h.
References _map_.
|
overridevirtualinherited |
Returns true if a terminal node matching this id exists.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 65 of file ExactTerminalNodePolicy_tpl.h.
References _map_.
Referenced by gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::isTerminalNode().
|
overridevirtualinherited |
Returns true if a terminal node matching this value exists.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 70 of file ExactTerminalNodePolicy_tpl.h.
References _map_.
|
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 Tensor : the |
extraction will concern every variable not in the instantiation and the copy of data will use the (relevant) values in this instantiation.
Definition at line 242 of file multiDimContainer_tpl.h.
References MultiDimContainer(), beginMultipleChanges(), gum::MultiDimInterface::erase(), gum::MultiDimInterface::nbrDim(), and gum::MultiDimInterface::variable().
|
overridevirtual |
Implements gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 135 of file multiDimFunctionGraph_tpl.h.
References GUM_ERROR.
|
overridevirtual |
Returns the value pointed by i.
| i | An Instantiation of this MultiDimContainer. |
Reimplemented from gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 642 of file multiDimFunctionGraph_tpl.h.
References _internalNodeMap_, _root_, get(), isTerminalNode(), gum::InternalNode::nodeVar(), gum::InternalNode::son(), gum::ExactTerminalNodePolicy< GUM_ELEMENT >::terminalNodeValue(), and gum::Instantiation::val().
Referenced by get(), toString(), and gum::FMDPSimulator::transitionProbability_().
|
overrideprotectedvirtual |
Implements gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 635 of file multiDimFunctionGraph_tpl.h.
References get_(), and GUM_ERROR.
Referenced by get_().
|
overridevirtualinherited |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Implements gum::MultiDimAdressable.
Definition at line 307 of file multiDimContainer_tpl.h.
References gum::MultiDimAdressable::MultiDimAdressable(), and content().
|
overridevirtualinherited |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Implements gum::MultiDimAdressable.
Definition at line 302 of file multiDimContainer_tpl.h.
References gum::MultiDimAdressable::MultiDimAdressable(), and content().
|
staticnodiscard |
Returns a reduced and ordered instance.
Reduced and ordered instance will reduce the size of the graph whenever it's possible. An inherent order on the variable helps doing so. The order in which variables will be inserted with function add(const DiscreteVariable&) specify that order.
Definition at line 615 of file multiDimFunctionGraph_tpl.h.
References getReducedAndOrderedInstance().
Referenced by gum::MultiDimFunctionGraph< double >::MultiDimFunctionGraph(), gum::MultiDimFunctionGraphOperator< GUM_ELEMENT, FUNCTOR, TerminalNodePolicy >::MultiDimFunctionGraphOperator(), gum::MultiDimFunctionGraphProjector< GUM_ELEMENT, FUNCTOR, TerminalNodePolicy >::MultiDimFunctionGraphProjector(), gum::Regress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::Regress(), gum::FMDPFactory< GUM_ELEMENT >::_initializeFunctionGraph_(), gum::FMDPLearner< VariableAttributeSelection, RewardAttributeSelection, LearnerSelection >::_instantiateFunctionGraph_(), gum::MultiDimFunctionGraphGenerator::generate(), gum::MDDOperatorStrategy< GUM_ELEMENT >::getFunctionInstance(), getReducedAndOrderedInstance(), and gum::MDDOperatorStrategy< GUM_ELEMENT >::regress().
|
staticnodiscard |
Returns an arborescent instance.
Definition at line 622 of file multiDimFunctionGraph_tpl.h.
References getTreeInstance().
Referenced by gum::MultiDimFunctionGraph< double >::MultiDimFunctionGraph(), gum::TreeOperator< GUM_ELEMENT, COMBINEOPERATOR, TerminalNodePolicy >::TreeOperator(), gum::TreeOperator< GUM_ELEMENT, COMBINEOPERATOR, TerminalNodePolicy >::TreeOperator(), gum::FMDPLearner< VariableAttributeSelection, RewardAttributeSelection, LearnerSelection >::_instantiateFunctionGraph_(), gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::_xPloreVFunc_(), gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::compute(), gum::TreeOperatorStrategy< GUM_ELEMENT >::getAggregatorInstance(), gum::TreeOperatorStrategy< GUM_ELEMENT >::getFunctionInstance(), and getTreeInstance().
|
overridevirtualinherited |
Indicates if constant safe iterator has reach end of terminal nodes list.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 92 of file ExactTerminalNodePolicy_tpl.h.
|
overridevirtualinherited |
Returns the id of the current terminal nodes pointed by the constant safe iterator.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 107 of file ExactTerminalNodePolicy_tpl.h.
References _mappy_.
|
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 316 of file multiDimImplementation_tpl.h.
References _vars_.
|
protectedinherited |
Get the actual state of *this.
Definition at line 274 of file multiDimImplementation_tpl.h.
References _internalChangeState_, and NOT_COMMITTED_CHANGE.
Referenced by MultiDimImplementation(), and empty().
|
protectedinherited |
Get the actual change method of this MultiDimImplementation.
Definition at line 268 of file multiDimImplementation_tpl.h.
References _internalChangeMethod_, and MULTIPLE_CHANGE.
Referenced by gum::MultiDimArray< GUM_ELEMENT >::add(), gum::MultiDimBucket< GUM_ELEMENT >::add(), gum::MultiDimArray< GUM_ELEMENT >::erase(), and gum::MultiDimBucket< GUM_ELEMENT >::erase().
| bool gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::isInternalNode | ( | const NodeId & | node | ) | const |
Indicates if given node is terminal or not.
| node | The node to test for being itnernal. |
Definition at line 559 of file multiDimFunctionGraph_tpl.h.
References _internalNodeMap_, isInternalNode(), and node().
Referenced by isInternalNode(), and node().
| bool gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::isReducedAndOrdered | ( | ) | const |
Returns true if this MultiDimFunctionGraph is reduced and Ordered.
Definition at line 608 of file multiDimFunctionGraph_tpl.h.
References _isReduced_, and isReducedAndOrdered().
Referenced by MultiDimFunctionGraph(), and isReducedAndOrdered().
| bool gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::isTerminalNode | ( | const NodeId & | node | ) | const |
Indicates if given node is terminal or not.
| node | The node to test for terminality. |
Definition at line 552 of file multiDimFunctionGraph_tpl.h.
References gum::ExactTerminalNodePolicy< GUM_ELEMENT >::existsTerminalNodeWithId(), isTerminalNode(), and node().
Referenced by gum::StructuredPlaner< GUM_ELEMENT >::_recurArgMaxCopy_(), get(), isTerminalNode(), nodeValue(), and toDot().
| MultiDimFunctionGraphManager< GUM_ELEMENT, TerminalNodePolicy > * gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::manager | ( | ) |
Returns a const reference to the manager of this diagram.
Definition at line 534 of file multiDimFunctionGraph_tpl.h.
References _isReduced_, _manager_, and manager().
Referenced by gum::AdaptiveRMaxPlaner::_makeRMaxFunctionGraphs_(), gum::AdaptiveRMaxPlaner::_visitLearner_(), gum::MultiDimFunctionGraph< double >::clear(), erase(), gum::MultiDimFunctionGraphGenerator::generate(), gum::StructuredPlaner< GUM_ELEMENT >::makeArgMax_(), manager(), and gum::MultiDimFunctionGraph< double >::manager().
| const NodeGraphPart & gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::model | ( | ) | const |
Returns a const reference to the manager of this diagram.
Definition at line 527 of file multiDimFunctionGraph_tpl.h.
References _model_, and model().
Referenced by model().
|
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_ELEMENT >.
Definition at line 119 of file multiDimFunctionGraph_tpl.h.
References _name_.
Referenced by setTableName().
|
overridevirtualinherited |
Returns the number of vars in the multidimensional container.
Implements gum::MultiDimInterface.
Definition at line 182 of file multiDimImplementation_tpl.h.
References _vars_.
Referenced by gum::aggregator::MultiDimAggregator< GUM_ELEMENT >::buildValue_(), gum::MultiDimWithOffset< GUM_ELEMENT >::computeInstantiationValue_(), gum::aggregator::MultiDimAggregator< GUM_ELEMENT >::get(), gum::MultiDimICIModel< GUM_ELEMENT >::realSize(), gum::aggregator::MultiDimAggregator< GUM_ELEMENT >::toString(), and gum::MultiDimICIModel< GUM_ELEMENT >::toString().
|
nodiscardoverridevirtual |
Creates an empty clone of this MultiDimContainer.
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::MultiDimImplementation< GUM_ELEMENT >.
Definition at line 108 of file multiDimFunctionGraph_tpl.h.
|
overridevirtualinherited |
Increments the constant safe iterator.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 97 of file ExactTerminalNodePolicy_tpl.h.
References _mappy_.
| const InternalNode * gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::node | ( | NodeId | n | ) | const |
Returns internalNode structure associated to that nodeId.
| n | The node for which the internal structure is returned. |
| InvalidNode | Raised if node is terminal |
Definition at line 576 of file multiDimFunctionGraph_tpl.h.
References _internalNodeMap_, GUM_ERROR, isInternalNode(), and node().
Referenced by gum::StructuredPlaner< GUM_ELEMENT >::_recurArgMaxCopy_(), gum::MultiDimFunctionGraphGenerator::generate(), isInternalNode(), isTerminalNode(), and node().
| const GUM_ELEMENT & gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::nodeValue | ( | NodeId | n | ) | const |
Returns value associated to given node.
| n | The node for which the value is returned. |
| InvalidNode | Raised if node isn't terminal. |
Definition at line 567 of file multiDimFunctionGraph_tpl.h.
References GUM_ERROR, isTerminalNode(), nodeValue(), and gum::ExactTerminalNodePolicy< GUM_ELEMENT >::terminalNodeValue().
Referenced by gum::StructuredPlaner< GUM_ELEMENT >::_recurArgMaxCopy_(), and nodeValue().
| MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > & gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::operator= | ( | const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > & | from | ) |
Copy Operator.
| from | The MultiDimFunctionGraph to copy. |
Definition at line 84 of file multiDimFunctionGraph_tpl.h.
References copy().
|
inherited |
Test if this MultiDimContainer is equal to p.
| p | The MultiDimContainer to test for equality. |
Definition at line 148 of file multiDimContainer_tpl.h.
References MultiDimContainer(), gum::MultiDimInterface::domainSize(), gum::MultiDimInterface::nbrDim(), and gum::MultiDimInterface::variablesSequence().
|
inherited |
An [] operator using a Instantiation as argument.
| i | An Instantiation. |
Definition at line 103 of file multiDimContainer_tpl.h.
References get().
|
overridevirtual |
Reimplemented from gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 144 of file multiDimFunctionGraph_tpl.h.
|
overridevirtual |
Reimplemented from gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 154 of file multiDimFunctionGraph_tpl.h.
References 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 207 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimArray< GUM_ELEMENT >::erase(), and gum::MultiDimWithOffset< GUM_ELEMENT >::erase().
|
overridevirtual |
Returns the real number of parameters used for this table.
This function is used by the MultiDimImplementation::compressionRate() method.
Implements gum::MultiDimImplementation< GUM_ELEMENT >.
Definition at line 184 of file multiDimFunctionGraph_tpl.h.
|
virtualinherited |
compute lfold for this container
| f | the function to apply |
| base | the initial value |
Reimplemented in gum::MultiDimArray< GUM_ELEMENT >, gum::MultiDimDecorator< GUM_ELEMENT >, and gum::MultiDimDecorator< GUM_SCALAR >.
Definition at line 208 of file multiDimContainer_tpl.h.
|
overridevirtualinherited |
Register i as a slave of this MultiDimAdressable.
| i | The Instantiation to enslave. |
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimWithOffset< GUM_ELEMENT >.
Definition at line 157 of file multiDimImplementation_tpl.h.
References _vars_, and gum::Instantiation::nbrDim().
Referenced by gum::MultiDimBucket< GUM_ELEMENT >::registerSlave(), and gum::MultiDimWithOffset< GUM_ELEMENT >::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 57 of file multiDimInterface_inl.h.
References contains(), gum::DiscreteVariable::domainSize(), GUM_ERROR, and replace_().
|
overrideprotectedvirtual |
Implements gum::MultiDimInterface.
Definition at line 628 of file multiDimFunctionGraph_tpl.h.
References GUM_ERROR, and replace_().
Referenced by replace_().
| const NodeId & gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::root | ( | ) | const |
Returns the id of the root node from the diagram.
Definition at line 546 of file multiDimFunctionGraph_tpl.h.
References _root_, and root().
Referenced by gum::MultiDimFunctionGraphGenerator::generate(), gum::StructuredPlaner< GUM_ELEMENT >::makeArgMax_(), and root().
|
overridevirtual |
Reimplemented from gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 124 of file multiDimFunctionGraph_tpl.h.
References GUM_ERROR, and gum::ExactTerminalNodePolicy< GUM_ELEMENT >::value().
|
overridevirtual |
Listen to an assignment of a value in a Instantiation.
| i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 212 of file multiDimFunctionGraph_tpl.h.
|
overridevirtual |
Listen to increment in each recorded Instantiation.
| i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 208 of file multiDimFunctionGraph_tpl.h.
|
overridevirtual |
Listen to setFirst in a given Instantiation.
| i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 196 of file multiDimFunctionGraph_tpl.h.
|
overridevirtual |
Listen to increment in a given Instantiation.
| i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 204 of file multiDimFunctionGraph_tpl.h.
|
overridevirtual |
Listen to setLast in a given Instantiation.
| i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 200 of file multiDimFunctionGraph_tpl.h.
| void gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::setTableName | ( | std::string_view | name | ) |
Sets the name of the table represented by this structure.
| name | the new name of this structure. |
Definition at line 601 of file multiDimFunctionGraph_tpl.h.
References _tableName_, name(), and setTableName().
Referenced by gum::FMDPLearner< VariableAttributeSelection, RewardAttributeSelection, LearnerSelection >::initialize(), and setTableName().
|
protectedinherited |
Returns a constant reference over the list of slaved instantiations.
Definition at line 280 of file multiDimImplementation_tpl.h.
References _slaveInstantiations_.
Referenced by gum::MultiDimBucket< GUM_ELEMENT >::_initializeBuffer_().
| const std::string & gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::tableName | ( | ) | const |
Returns the name of the table represented by this structure.
Definition at line 595 of file multiDimFunctionGraph_tpl.h.
References _tableName_, and tableName().
Referenced by tableName().
|
overridevirtualinherited |
Returns the id of the terminal node that has the given value.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 82 of file ExactTerminalNodePolicy_tpl.h.
|
overridevirtualinherited |
Returns the value of the terminal node that has the given id.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 77 of file ExactTerminalNodePolicy_tpl.h.
Referenced by gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::get(), gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::nodeValue(), and gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::toDot().
| std::string gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::toDot | ( | bool | withBackArcs = false | ) | const |
Returns a const reference to the manager of this diagram.
| withBackArcs | If true, back arcs will be added. |
Definition at line 459 of file multiDimFunctionGraph_tpl.h.
References _internalNodeMap_, _model_, _tableName_, gum::HashTable< Key, Val >::beginSafe(), gum::Link< T >::element(), gum::HashTable< Key, Val >::endSafe(), gum::HashTable< Key, Val >::exists(), gum::HashTable< Key, Val >::insert(), isTerminalNode(), gum::DiscreteVariable::label(), gum::Variable::name(), gum::InternalNode::nbSons(), gum::Link< T >::nextLink(), gum::InternalNode::nodeVar(), gum::InternalNode::parents(), gum::InternalNode::son(), gum::ExactTerminalNodePolicy< GUM_ELEMENT >::terminalNodeValue(), and toDot().
Referenced by toDot().
|
virtualinherited |
Returns a representation of this MultiDimContainer.
Reimplemented in gum::aggregator::MultiDimAggregator< GUM_ELEMENT >, gum::aggregator::MultiDimAggregator< GUM_SCALAR >, gum::MultiDimDecorator< GUM_ELEMENT >, gum::MultiDimICIModel< GUM_ELEMENT >, gum::MultiDimICIModel< GUM_SCALAR >, gum::MultiDimLogit< GUM_SCALAR >, gum::MultiDimNoisyAND< GUM_SCALAR >, gum::MultiDimNoisyORCompound< GUM_SCALAR >, gum::MultiDimNoisyORNet< GUM_SCALAR >, gum::Tensor< GUM_SCALAR >, and gum::Tensor< GUM_ELEMENT >.
Definition at line 125 of file multiDimContainer_tpl.h.
References gum::MultiDimInterface::nbrDim().
Referenced by gum::MultiDimContainer< double >::copy().
|
overridevirtual |
Display the internal representation of i.
Implements gum::MultiDimContainer< GUM_ELEMENT >.
Definition at line 216 of file multiDimFunctionGraph_tpl.h.
References get().
|
overridevirtualinherited |
Unregister i as a slave of this MultiDimAdressable.
| i | The Instantiation to free. |
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimWithOffset< GUM_ELEMENT >.
Definition at line 176 of file multiDimImplementation_tpl.h.
References _slaveInstantiations_.
Referenced by gum::MultiDimWithOffset< GUM_ELEMENT >::unregisterSlave().
|
overridevirtualinherited |
Returns the value of the current terminal nodes pointed by the constant safe iterator.
Implements gum::ITerminalNodePolicy< GUM_ELEMENT >.
Definition at line 102 of file ExactTerminalNodePolicy_tpl.h.
References _mappy_.
Referenced by gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::set().
|
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 192 of file multiDimImplementation_tpl.h.
Referenced by gum::aggregator::MultiDimAggregator< GUM_ELEMENT >::buildValue_(), gum::MultiDimWithOffset< GUM_ELEMENT >::computeInstantiationValue_(), gum::aggregator::MultiDimAggregator< GUM_ELEMENT >::get(), gum::aggregator::MultiDimAggregator< GUM_ELEMENT >::toString(), gum::MultiDimICIModel< GUM_ELEMENT >::toString(), gum::MultiDimNoisyAND< GUM_SCALAR >::toString(), gum::MultiDimNoisyORCompound< GUM_SCALAR >::toString(), and gum::MultiDimNoisyORNet< 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 198 of file multiDimImplementation_tpl.h.
References name().
|
overridevirtualinherited |
Returns a const ref to the sequence of DiscreteVariable*.
Implements gum::MultiDimInterface.
Definition at line 220 of file multiDimImplementation_tpl.h.
References _vars_.
Referenced by gum::MultiDimBijArray< GUM_ELEMENT >::MultiDimBijArray(), gum::MultiDimBijArray< GUM_ELEMENT >::MultiDimBijArray(), gum::MultiDimBijArray< GUM_ELEMENT >::MultiDimBijArray(), gum::MultiDimFunctionGraphOperator< GUM_ELEMENT, FUNCTOR, TerminalNodePolicy >::_distance_(), gum::MultiDimFunctionGraphOperator< GUM_ELEMENT, FUNCTOR, TerminalNodePolicy >::_findRetrogradeVariables_(), gum::Regress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::_findRetrogradeVariables_(), gum::MultiDimBucket< GUM_ELEMENT >::_initializeBuffer_(), gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::add(), gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::clear(), gum::prm::copyTensor(), gum::MultiDimArray< GUM_ELEMENT >::erase(), gum::MultiDimWithOffset< GUM_ELEMENT >::erase(), gum::MultiDimFunctionGraphGenerator::generate(), gum::MDDOperatorStrategy< GUM_ELEMENT >::lastVar_(), gum::StructuredPlaner< GUM_ELEMENT >::makeArgMax_(), gum::TreeOperatorStrategy< GUM_ELEMENT >::regress(), and gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::varNodeListe().
| const LinkedList< NodeId > * gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::varNodeListe | ( | const DiscreteVariable * | var | ) | const |
Returns the list of node associated to given variable.
| var | The variable for which the list of associated nodes is returned. |
Definition at line 585 of file multiDimFunctionGraph_tpl.h.
References _var2NodeIdMap_, GUM_ERROR, gum::Variable::name(), gum::MultiDimImplementation< GUM_ELEMENT >::variablesSequence(), and varNodeListe().
Referenced by gum::MultiDimFunctionGraphGenerator::generate(), and varNodeListe().
|
privateinherited |
This MultiDimImplementation domain size.
Definition at line 329 of file multiDimImplementation.h.
Referenced by MultiDimImplementation(), MultiDimImplementation(), domainSize(), and erase().
|
privateinherited |
The current change method.
Definition at line 323 of file multiDimImplementation.h.
Referenced by MultiDimImplementation(), MultiDimImplementation(), beginMultipleChanges(), endMultipleChanges(), and isInMultipleChangeMethod_().
|
privateinherited |
The current change state.
Definition at line 326 of file multiDimImplementation.h.
Referenced by MultiDimImplementation(), MultiDimImplementation(), _setNotCommitedChange_(), endMultipleChanges(), and isCommitNeeded_().
|
private |
Associates each non-terminal node to a variable.
Definition at line 396 of file multiDimFunctionGraph.h.
Referenced by MultiDimFunctionGraph(), MultiDimFunctionGraph(), clear(), get(), isInternalNode(), node(), and toDot().
|
private |
Wheter the MultiDimFunctionGraphManager is reduced or not.
Definition at line 402 of file multiDimFunctionGraph.h.
Referenced by MultiDimFunctionGraph(), MultiDimFunctionGraph(), copy(), copyAndMultiplyByScalar(), copyAndReassign(), isReducedAndOrdered(), and manager().
|
private |
A reference to the manager that edits this function graph.
Definition at line 390 of file multiDimFunctionGraph.h.
Referenced by MultiDimFunctionGraph(), MultiDimFunctionGraph(), ~MultiDimFunctionGraph(), and manager().
|
privateinherited |
Definition at line 135 of file ExactTerminalNodePolicy.h.
Referenced by addTerminalNode(), beginValues(), clearAllTerminalNodes(), eraseTerminalNode(), existsTerminalNodeWithId(), and existsTerminalNodeWithValue().
|
mutableprivateinherited |
Definition at line 136 of file ExactTerminalNodePolicy.h.
Referenced by beginValues(), id(), nextValue(), and value().
|
private |
Indicates available nodeIds.
Definition at line 387 of file multiDimFunctionGraph.h.
Referenced by MultiDimFunctionGraph(), MultiDimFunctionGraph(), clear(), model(), and toDot().
|
private |
The name of the data structure.
Definition at line 381 of file multiDimFunctionGraph.h.
Referenced by MultiDimFunctionGraph(), MultiDimFunctionGraph(), and name().
|
private |
The root node of the function graph.
Definition at line 393 of file multiDimFunctionGraph.h.
Referenced by MultiDimFunctionGraph(), MultiDimFunctionGraph(), get(), and root().
|
privateinherited |
List of instantiations of the tuples (sequences) of variables.
Definition at line 314 of file multiDimImplementation.h.
Referenced by MultiDimImplementation(), ~MultiDimImplementation(), slaves_(), and unregisterSlave().
|
private |
The name of the data structure.
Definition at line 384 of file multiDimFunctionGraph.h.
Referenced by MultiDimFunctionGraph(), MultiDimFunctionGraph(), setTableName(), tableName(), and toDot().
|
private |
Mapping between var and node.
Definition at line 399 of file multiDimFunctionGraph.h.
Referenced by MultiDimFunctionGraph(), MultiDimFunctionGraph(), add(), clear(), erase(), and varNodeListe().
|
privateinherited |
List of discrete variables (dimensions).
Definition at line 311 of file multiDimImplementation.h.
Referenced by MultiDimImplementation(), MultiDimImplementation(), add(), contains(), empty(), erase(), invert_(), nbrDim(), registerSlave(), replace_(), and variablesSequence().
|
static |
Only for proper initialization of a certain returned value.
Definition at line 95 of file multiDimFunctionGraph.h.