![]() |
aGrUM
0.16.0
|
Class implementingting a function graph. More...
#include <multiDimFunctionGraph.h>
Public Member Functions | |
template<> | |
const float | defaultValue |
template<> | |
const double | defaultValue |
Unallowed inherited methods | |
virtual void | set (const Instantiation &i, const GUM_SCALAR &value) const |
virtual void | fill (const GUM_SCALAR &d) const |
virtual void | populate (const std::vector< GUM_SCALAR > &v) const |
virtual void | populate (std::initializer_list< GUM_SCALAR > v) const |
virtual void | copyFrom (const MultiDimContainer< GUM_SCALAR > &src, Instantiation *p_i=(Instantiation *) 0) const |
virtual void | copy (const MultiDimContainer< GUM_SCALAR > &src) |
Inherited methods | |
virtual MultiDimContainer< GUM_SCALAR > * | newFactory () const |
Creates an empty clone of this MultiDimContainer. More... | |
virtual GUM_SCALAR | get (const Instantiation &i) const |
Returns the value pointed by i. More... | |
virtual const std::string & | name () const |
Returns the real name of the multiDim implementation. More... | |
virtual void | add (const DiscreteVariable &v) |
Adds a new var to the variables of the multidimensional matrix. More... | |
virtual void | erase (const DiscreteVariable &v) |
Removes a var from the variables of the multidimensional matrix. More... | |
virtual Size | realSize () const |
Returns the real number of parameters used for this table. More... | |
virtual void | changeNotification (const Instantiation &i, const DiscreteVariable *const var, Idx oldval, Idx newval) |
Listen to changes in a given Instantiation. More... | |
virtual void | setFirstNotification (const Instantiation &i) |
Listen to setFirst in a given Instantiation. More... | |
virtual void | setLastNotification (const Instantiation &i) |
Listen to setLast in a given Instantiation. More... | |
virtual void | setIncNotification (const Instantiation &i) |
Listen to increment in a given Instantiation. More... | |
virtual void | setDecNotification (const Instantiation &i) |
Listen to increment in each recorded Instantiation. More... | |
virtual void | setChangeNotification (const Instantiation &i) |
Listen to an assignment of a value in a Instantiation. More... | |
virtual const std::string | toString (const Instantiation *i) const |
Display the internal representation of i. More... | |
Copy methods. | |
void | copy (const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > &src) |
Removes all variables in this MultiDimFunctionGraph and copy the content of src, variables included. More... | |
void | copyAndReassign (const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > &src, const Bijection< const DiscreteVariable *, const DiscreteVariable * > &reassign) |
Copies src diagrams structure into this diagrams. More... | |
void | copyAndMultiplyByScalar (const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > &src, GUM_SCALAR gamma) |
Copies src diagrams and multiply every value by the given scalar. More... | |
void | clear () |
Clears the function graph. More... | |
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 | contains (const DiscreteVariable &v) const override |
Returns true if var is in *this. More... | |
virtual bool | empty () const override |
Returns true if no var is in *this. More... | |
MultiDimAdressable implementation | |
virtual bool | registerSlave (Instantiation &slave) override |
Register i as a slave of this MultiDimAdressable. More... | |
virtual bool | unregisterSlave (Instantiation &slave) override |
Unregister i as a slave of this MultiDimAdressable. More... | |
MultiDimContainer implementation | |
virtual void | beginMultipleChanges () override |
Call this method before doing important changes in this MultiDimContainer. More... | |
virtual void | endMultipleChanges () override |
Call this method after doing important changes in this MultiDimContainer. More... | |
virtual void | endMultipleChanges (const GUM_SCALAR &) override |
Call this method after doing important changes in this MultiDimContainer. More... | |
Accessors / Modifiers | |
GUM_SCALAR | operator[] (const Instantiation &i) const |
An [] operator using a Instantiation as argument. More... | |
Copy methods. | |
virtual void | copyFrom (const MultiDimContainer< GUM_SCALAR > &src) const |
Basic copy of a MultiDimContainer. More... | |
virtual void | extractFrom (const MultiDimContainer< GUM_SCALAR > &src, const Instantiation &mask) |
Basic extraction of a MultiDimContainer. More... | |
virtual MultiDimAdressable & | getMasterRef () |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer. More... | |
virtual const MultiDimAdressable & | getMasterRef () const |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer. More... | |
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... | |
Static Public Attributes | |
static const GUM_SCALAR | defaultValue |
Only for proper initialization of a certain returned value. More... | |
Protected Member Functions | |
virtual void | _replace (const DiscreteVariable *x, const DiscreteVariable *y) |
GUM_SCALAR & | _get (const Instantiation &inst) const |
virtual const MultiDimImplementation< GUM_SCALAR > * | content () const final |
Returns the implementation for this object (may be *this). More... | |
virtual MultiDimImplementation< GUM_SCALAR > * | content () final |
Returns the implementation for this object (may be *this). More... | |
Fast large modifications in structures | |
virtual void | _commitMultipleChanges () |
Synchronize content after MultipleChanges. More... | |
virtual void | _commitMultipleChanges (const GUM_SCALAR &value) |
Synchronize content after MultipleChanges. More... | |
bool | _isInMultipleChangeMethod () const |
Get the actual change method of this MultiDimImplementation. More... | |
bool | _isCommitNeeded () const |
Get the actual state of *this. More... | |
const List< Instantiation *> & | _slaves () const |
Returns a constant reference over the list of slaved instantiations. More... | |
virtual void | _invert (Idx p1, Idx p2) |
Inverts variables at position p1 and p2. More... | |
Constructors, destructor and copy | |
MultiDimFunctionGraph (bool isReduced=true) | |
Default constructor. More... | |
MultiDimFunctionGraph (const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > &from) | |
Copy constructor. More... | |
MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > & | operator= (const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > &from) |
Copy Operator. More... | |
~MultiDimFunctionGraph () | |
Class destructor. More... | |
Accessors and modifiers | |
std::string | toDot (bool withBackArcs=false) const |
Returns a const reference to the manager of this diagram. More... | |
const NodeGraphPart & | model () const |
Returns a const reference to the manager of this diagram. More... | |
MultiDimFunctionGraphManager< GUM_SCALAR, TerminalNodePolicy > * | manager () |
Returns a const reference to the manager of this diagram. More... | |
const NodeId & | root () const |
Returns the id of the root node from the diagram. More... | |
bool | isTerminalNode (const NodeId &node) const |
Indicates if given node is terminal or not. More... | |
bool | isInternalNode (const NodeId &node) const |
Indicates if given node is terminal or not. More... | |
const GUM_SCALAR & | nodeValue (NodeId n) const |
Returns value associated to given node. More... | |
const InternalNode * | node (NodeId n) const |
Returns internalNode structure associated to that nodeId. More... | |
const LinkedList< NodeId > * | varNodeListe (const DiscreteVariable *var) const |
Returns the list of node associated to given variable. More... | |
const std::string & | tableName () const |
Returns the name of the table represented by this structure. More... | |
void | setTableName (const std::string &name) |
Sets the name of the table represented by this structure. More... | |
bool | isReducedAndOrdered () const |
Returns true if this MultiDimFunctionGraph is reduced and Ordered. More... | |
static MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * | getReducedAndOrderedInstance () |
Returns a reduced and ordered instance. More... | |
static MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * | getTreeInstance () |
Returns an arborescent instance. More... | |
Class implementingting a function graph.
GUM_SCALAR | The type of scalars stored in this multidimensional table. |
TerminalNodePolicy | The terminal node policy to use in this MultiDimFunctionGraph. |
Definition at line 81 of file multiDimFunctionGraph.h.
|
private |
Default constructor.
isReduced | If true, then this MultiDimFunctionGraph is reduced. |
Definition at line 37 of file multiDimFunctionGraph_tpl.h.
INLINE gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::MultiDimFunctionGraph | ( | const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > & | from | ) |
Copy constructor.
from | The MultiDimFunctionGraph to copy. |
Definition at line 51 of file multiDimFunctionGraph_tpl.h.
INLINE gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::~MultiDimFunctionGraph | ( | ) |
Class destructor.
Definition at line 73 of file multiDimFunctionGraph_tpl.h.
|
protectedvirtualinherited |
Synchronize content after MultipleChanges.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >, gum::MultiDimArray< GUM_SCALAR >, gum::MultiDimBijArray< GUM_SCALAR >, and gum::MultiDimSparse< GUM_SCALAR >.
Definition at line 255 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::_commitMultipleChanges().
|
protectedvirtualinherited |
Synchronize content after MultipleChanges.
value | Default value for uninitialized values. |
Reimplemented in gum::MultiDimArray< GUM_SCALAR >.
Definition at line 260 of file multiDimImplementation_tpl.h.
|
protectedvirtual |
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 660 of file multiDimFunctionGraph_tpl.h.
|
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().
|
protectedvirtual |
Reimplemented from gum::MultiDimImplementation< GUM_SCALAR >.
Definition at line 654 of file multiDimFunctionGraph_tpl.h.
|
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().
|
virtual |
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 137 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::FMDPFactory< GUM_SCALAR >::__initializeFunctionGraph(), gum::ITI< AttributeSelection, isScalar >::__insertNodeInFunctionGraph(), gum::ITI< AttributeSelection, isScalar >::__insertTerminalNode(), gum::IMDDI< AttributeSelection, isScalar >::__rebuildFunctionGraph(), gum::StructuredPlaner< double >::_addReward(), gum::ITI< AttributeSelection, isScalar >::_insertSetOfVars(), gum::StructuredPlaner< double >::_makeArgMax(), gum::MultiDimFunctionGraphGenerator::generate(), gum::StatesCounter::insertSetOfVars(), gum::IMDDI< AttributeSelection, isScalar >::insertSetOfVars(), gum::IncrementalGraphLearner< AttributeSelection, isScalar >::insertSetOfVars(), gum::StatesCounter::reset(), and gum::StatesChecker::reset().
|
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.
|
virtual |
Listen to changes in a given Instantiation.
i | The Instantiation to listen. |
var | The changed dim. |
oldval | The old value. |
newval | The changed value. |
Implements gum::MultiDimAdressable.
Definition at line 170 of file multiDimFunctionGraph_tpl.h.
INLINE void gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::clear | ( | ) |
Clears the function graph.
Definition at line 422 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::IMDDI< AttributeSelection, isScalar >::__rebuildFunctionGraph(), gum::MultiDimFunctionGraph< bool, ExactTerminalNodePolicy >::clear(), gum::StatesCounter::reset(), gum::StatesChecker::reset(), and gum::ITI< AttributeSelection, isScalar >::updateFunctionGraph().
|
inherited |
The compression ratio of the table (depending on the type of implementation).
This method uses domainSize() and realSize() to compute the ration, both methods are virtual and should be surcharge if a subclass has a special policies about memory management.
Definition at line 293 of file multiDimImplementation_tpl.h.
|
overridevirtualinherited |
Returns true if var is in *this.
v | A DiscreteVariable. |
Implements gum::MultiDimInterface.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >.
Definition at line 208 of file multiDimImplementation_tpl.h.
Referenced by gum::prm::PRMFormAttribute< GUM_SCALAR >::__fillCpf(), gum::prm::PRMFormAttribute< GUM_SCALAR >::_type(), gum::prm::PRMFormAttribute< GUM_SCALAR >::addParent(), gum::MultiDimICIModel< GUM_SCALAR >::causalWeight(), gum::MultiDimBucket< GUM_SCALAR >::contains(), gum::prm::PRMFormAttribute< GUM_SCALAR >::copyCpf(), gum::prm::PRMFormAttribute< GUM_SCALAR >::getCastDescendant(), and gum::prm::PRMFormAttribute< GUM_SCALAR >::swap().
|
finalprotectedvirtualinherited |
Returns the implementation for this object (may be *this).
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 342 of file multiDimImplementation_tpl.h.
|
finalprotectedvirtualinherited |
Returns the implementation for this object (may be *this).
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 335 of file multiDimImplementation_tpl.h.
|
virtual |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 218 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::MDDOperatorStrategy< GUM_SCALAR >::regress().
INLINE void gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::copy | ( | const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > & | src | ) |
Removes all variables in this MultiDimFunctionGraph and copy the content of src, variables included.
src | The MultiDimFunctionGraph to copy. |
Definition at line 226 of file multiDimFunctionGraph_tpl.h.
INLINE void gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::copyAndMultiplyByScalar | ( | const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > & | src, |
GUM_SCALAR | 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 360 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::StructuredPlaner< double >::_addReward().
INLINE void gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::copyAndReassign | ( | const MultiDimFunctionGraph< GUM_SCALAR, 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 288 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::AdaptiveRMaxPlaner::_evalPolicy(), gum::StructuredPlaner< double >::_evalPolicy(), gum::AdaptiveRMaxPlaner::_valueIteration(), and gum::StructuredPlaner< double >::_valueIteration().
|
virtual |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 210 of file multiDimFunctionGraph_tpl.h.
|
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().
const float gum::MultiDimFunctionGraph< float >::defaultValue | ( | ) |
Definition at line 47 of file multiDimFunctionGraph.cpp.
const double gum::MultiDimFunctionGraph< double >::defaultValue | ( | ) |
Definition at line 50 of file multiDimFunctionGraph.cpp.
|
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.
|
virtual |
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 147 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::MultiDimFunctionGraph< bool, ExactTerminalNodePolicy >::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().
|
virtual |
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 108 of file multiDimFunctionGraph_tpl.h.
|
virtual |
Returns the value pointed by i.
i | An Instantiation of this MultiDimContainer. |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 668 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::StatesChecker::checkState(), and gum::StatesCounter::incState().
|
virtualinherited |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >.
Definition at line 301 of file multiDimContainer_tpl.h.
References gum::MultiDimContainer< GUM_SCALAR >::content().
|
virtualinherited |
In order to insure the dereference for decorators, we need to virtualize the access to master pointer.
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >.
Definition at line 307 of file multiDimContainer_tpl.h.
References gum::MultiDimContainer< GUM_SCALAR >::content().
|
static |
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 641 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::FMDPFactory< GUM_SCALAR >::__initializeFunctionGraph(), gum::FMDPLearner< VariableAttributeSelection, RewardAttributeSelection, LearnerSelection >::__instantiateFunctionGraph(), gum::MultiDimFunctionGraphGenerator::generate(), gum::MDDOperatorStrategy< GUM_SCALAR >::getAggregatorInstance(), gum::MDDOperatorStrategy< GUM_SCALAR >::getFunctionInstance(), gum::MultiDimFunctionGraphProjector< GUM_SCALAR, FUNCTOR, TerminalNodePolicy >::MultiDimFunctionGraphProjector(), and gum::MDDOperatorStrategy< GUM_SCALAR >::regress().
|
static |
Returns an arborescent instance.
Definition at line 648 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::TreeOperatorStrategy< GUM_SCALAR >::getFunctionInstance(), and gum::TreeOperator< GUM_SCALAR, COMBINEOPERATOR, TerminalNodePolicy >::TreeOperator().
INLINE bool gum::MultiDimFunctionGraph< GUM_SCALAR, 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 575 of file multiDimFunctionGraph_tpl.h.
INLINE bool gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::isReducedAndOrdered | ( | ) | const |
Returns true if this MultiDimFunctionGraph is reduced and Ordered.
Definition at line 632 of file multiDimFunctionGraph_tpl.h.
INLINE bool gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::isTerminalNode | ( | const NodeId & | node | ) | const |
Indicates if given node is terminal or not.
node | The node to test for terminality. |
Definition at line 567 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::StructuredPlaner< double >::__recurArgMaxCopy(), gum::StatesCounter::incState(), and gum::StatesCounter::isTerminal().
INLINE MultiDimFunctionGraphManager< GUM_SCALAR, TerminalNodePolicy > * gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::manager | ( | ) |
Returns a const reference to the manager of this diagram.
Definition at line 543 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::FMDPFactory< GUM_SCALAR >::__finalizeFunctionGraph(), gum::StatesCounter::__incState(), gum::IMDDI< AttributeSelection, isScalar >::__insertLeafInFunctionGraph(), gum::ITI< AttributeSelection, isScalar >::__insertNodeInFunctionGraph(), gum::StatesChecker::__insertState(), gum::ITI< AttributeSelection, isScalar >::__insertTerminalNode(), gum::AdaptiveRMaxPlaner::__makeRMaxFunctionGraphs(), gum::IMDDI< AttributeSelection, isScalar >::__rebuildFunctionGraph(), gum::AdaptiveRMaxPlaner::__visitLearner(), gum::AdaptiveRMaxPlaner::_initVFunction(), gum::StructuredPlaner< double >::_makeArgMax(), gum::FMDPFactory< GUM_SCALAR >::addArc(), gum::FMDPFactory< GUM_SCALAR >::addInternalNode(), gum::FMDPFactory< GUM_SCALAR >::addTerminalNode(), gum::MultiDimFunctionGraphGenerator::generate(), gum::StatesCounter::reset(), gum::StatesChecker::reset(), gum::FMDPFactory< GUM_SCALAR >::setRoot(), and gum::ITI< AttributeSelection, isScalar >::updateFunctionGraph().
INLINE const NodeGraphPart & gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::model | ( | ) | const |
Returns a const reference to the manager of this diagram.
Definition at line 536 of file multiDimFunctionGraph_tpl.h.
|
virtual |
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 93 of file multiDimFunctionGraph_tpl.h.
|
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().
|
virtual |
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_SCALAR >.
Definition at line 82 of file multiDimFunctionGraph_tpl.h.
INLINE const InternalNode * gum::MultiDimFunctionGraph< GUM_SCALAR, 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 594 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::StatesCounter::__incState(), gum::StatesChecker::__insertState(), gum::StructuredPlaner< double >::__recurArgMaxCopy(), gum::StatesChecker::addState(), gum::MultiDimFunctionGraphGenerator::generate(), gum::StatesCounter::incState(), gum::StatesCounter::nodeSon(), and gum::StatesCounter::nodeVar().
INLINE const GUM_SCALAR & gum::MultiDimFunctionGraph< GUM_SCALAR, 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 583 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::StructuredPlaner< double >::__recurArgMaxCopy(), and gum::StatesCounter::nodeNbObservation().
|
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==().
INLINE MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > & gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::operator= | ( | const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > & | from | ) |
Copy Operator.
from | The MultiDimFunctionGraph to copy. |
Definition at line 64 of file multiDimFunctionGraph_tpl.h.
|
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().
|
virtual |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 118 of file multiDimFunctionGraph_tpl.h.
|
virtual |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 127 of file multiDimFunctionGraph_tpl.h.
|
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().
|
virtual |
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 163 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::StructuredPlaner< double >::vFunctionSize().
|
virtualinherited |
compute lfold for this container
f | the function to apply |
base | the initial value |
Reimplemented in gum::MultiDimDecorator< GUM_SCALAR >, and gum::MultiDimArray< GUM_SCALAR >.
Definition at line 205 of file multiDimContainer_tpl.h.
References gum::Instantiation::end(), and gum::Instantiation::setFirst().
|
overridevirtualinherited |
Register i as a slave of this MultiDimAdressable.
i | The Instantiation to enslave. |
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
Definition at line 147 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimBucket< GUM_SCALAR >::registerSlave().
|
inherited |
Replace variables in this multidim.
If x is in this MultiDim and y has the same domain size, then x will be replace by y in this MultiDim.
x | The variable in this which will be replaced. |
y | The variable replacing y. |
NotFound | Raised if x does not belong to this MultiDim. |
OperationNotAllowed | If y and x are not interchangeable. |
DuplicateElement | If y is already in this MultiDim. |
Definition at line 36 of file multiDimInterface_inl.h.
References gum::MultiDimInterface::_replace(), gum::MultiDimInterface::contains(), gum::DiscreteVariable::domainSize(), and GUM_ERROR.
Referenced by gum::MultiDimImplementation< std::string >::_replace(), gum::MultiDimBucket< GUM_SCALAR >::_replace(), and gum::MultiDimInterface::~MultiDimInterface().
INLINE const NodeId & gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::root | ( | ) | const |
Returns the id of the root node from the diagram.
Definition at line 560 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::StructuredPlaner< double >::_makeArgMax(), gum::StatesChecker::addState(), gum::MultiDimFunctionGraphGenerator::generate(), gum::StatesCounter::incState(), and gum::StatesCounter::root().
|
virtual |
Reimplemented from gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 98 of file multiDimFunctionGraph_tpl.h.
|
virtual |
Listen to an assignment of a value in a Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 198 of file multiDimFunctionGraph_tpl.h.
|
virtual |
Listen to increment in each recorded Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 193 of file multiDimFunctionGraph_tpl.h.
|
virtual |
Listen to setFirst in a given Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 178 of file multiDimFunctionGraph_tpl.h.
|
virtual |
Listen to increment in a given Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 188 of file multiDimFunctionGraph_tpl.h.
|
virtual |
Listen to setLast in a given Instantiation.
i | The Instantiation to listen. |
Implements gum::MultiDimAdressable.
Definition at line 183 of file multiDimFunctionGraph_tpl.h.
INLINE void gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::setTableName | ( | const std::string & | name | ) |
Sets the name of the table represented by this structure.
name | the new name of this structure. |
Definition at line 624 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::FMDPFactory< GUM_SCALAR >::addReward(), gum::FMDPFactory< GUM_SCALAR >::addTransition(), and gum::FMDPLearner< VariableAttributeSelection, RewardAttributeSelection, LearnerSelection >::initialize().
INLINE const std::string & gum::MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >::tableName | ( | ) | const |
Returns the name of the table represented by this structure.
Definition at line 617 of file multiDimFunctionGraph_tpl.h.
INLINE std::string gum::MultiDimFunctionGraph< GUM_SCALAR, 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 458 of file multiDimFunctionGraph_tpl.h.
|
virtual |
Display the internal representation of i.
Implements gum::MultiDimContainer< GUM_SCALAR >.
Definition at line 202 of file multiDimFunctionGraph_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<<().
|
overridevirtualinherited |
Unregister i as a slave of this MultiDimAdressable.
i | The Instantiation to free. |
Implements gum::MultiDimAdressable.
Reimplemented in gum::MultiDimBucket< GUM_SCALAR >, and gum::MultiDimWithOffset< GUM_SCALAR >.
Definition at line 168 of file multiDimImplementation_tpl.h.
Referenced by gum::MultiDimWithOffset< GUM_SCALAR >::unregisterSlave(), and gum::MultiDimBucket< GUM_SCALAR >::unregisterSlave().
|
overridevirtualinherited |
Returns a const ref to the ith var.
param i An index of this multidimensional matrix.
NotFound | Raised if i does not reference a variable in this multidimensional matrix. |
Implements gum::MultiDimInterface.
Definition at line 186 of file multiDimImplementation_tpl.h.
Referenced by gum::aggregator::MultiDimAggregator< GUM_SCALAR >::_buildValue(), gum::MultiDimWithOffset< GUM_SCALAR >::_computeInstantiationValue(), gum::MultiDimICIModel< GUM_SCALAR >::copyFrom(), gum::MultiDimLogit< GUM_SCALAR >::get(), gum::MultiDimNoisyORNet< GUM_SCALAR >::get(), gum::MultiDimNoisyORCompound< GUM_SCALAR >::get(), gum::MultiDimNoisyAND< GUM_SCALAR >::get(), gum::aggregator::MultiDimAggregator< GUM_SCALAR >::get(), gum::MultiDimICIModel< GUM_SCALAR >::toString(), gum::MultiDimLogit< GUM_SCALAR >::toString(), and gum::aggregator::MultiDimAggregator< GUM_SCALAR >::toString().
|
overridevirtualinherited |
Returns the variable with the name.
name | The index of the variable |
NotFound | Raised if the element cannot be found. |
Implements gum::MultiDimInterface.
Definition at line 191 of file multiDimImplementation_tpl.h.
|
overridevirtualinherited |
Returns a const ref to the sequence of DiscreteVariable*.
Implements gum::MultiDimInterface.
Definition at line 217 of file multiDimImplementation_tpl.h.
Referenced by gum::prm::PRMFormAttribute< GUM_SCALAR >::__fillCpf(), gum::MultiDimBucket< GUM_SCALAR >::__initializeBuffer(), gum::ITI< AttributeSelection, isScalar >::__insertNodeInFunctionGraph(), gum::ITI< AttributeSelection, isScalar >::__insertTerminalNode(), gum::StructuredPlaner< double >::_makeArgMax(), gum::prm::PRMFormAttribute< GUM_SCALAR >::copy(), gum::prm::copyPotential(), gum::MultiDimWithOffset< GUM_SCALAR >::erase(), gum::MultiDimArray< GUM_SCALAR >::erase(), gum::MultiDimFunctionGraphGenerator::generate(), gum::StatesCounter::insertSetOfVars(), gum::MultiDimBijArray< GUM_SCALAR >::MultiDimBijArray(), and gum::TreeOperatorStrategy< GUM_SCALAR >::regress().
INLINE const LinkedList< NodeId > * gum::MultiDimFunctionGraph< GUM_SCALAR, 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 605 of file multiDimFunctionGraph_tpl.h.
Referenced by gum::MultiDimFunctionGraphGenerator::generate().
|
private |
Associates each non-terminal node to a variable.
Definition at line 389 of file multiDimFunctionGraph.h.
|
private |
Wheter the MultiDimFunctionGraphManager is reduced or not.
Definition at line 395 of file multiDimFunctionGraph.h.
|
private |
A reference to the manager that edits this function graph.
Definition at line 383 of file multiDimFunctionGraph.h.
|
private |
Indicates available nodeIds.
Definition at line 380 of file multiDimFunctionGraph.h.
|
private |
The name of the data structure.
Definition at line 374 of file multiDimFunctionGraph.h.
|
private |
The root node of the function graph.
Definition at line 386 of file multiDimFunctionGraph.h.
|
private |
The name of the data structure.
Definition at line 377 of file multiDimFunctionGraph.h.
|
private |
Mapping between var and node.
Definition at line 392 of file multiDimFunctionGraph.h.
|
static |
Only for proper initialization of a certain returned value.
Definition at line 86 of file multiDimFunctionGraph.h.