65 template <
typename GUM_SCALAR,
66 template <
typename >
class COMBINEOPERATOR,
67 template <
typename >
class PROJECTOPERATOR,
81 const GUM_SCALAR neutral);
153#ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
Base class for discrete random variable.
Implementation of a Terminal Node Policy that maps nodeid directly to value.
The class for generic Hash Tables.
Class used to manipulate context during Function Graph Operations.
Class used to perform Function Graph Operations in the FMDP Framework.
const DiscreteVariable * _targetVar_
The variable we work on to eleminate.
short int * _default_
Just a computationnal trick.
HashTable< double, NodeId > _explorationTable_
The hashtable used to know if two pair of nodes have already been visited.
Regress(const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > *vfunction, const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > *probDist, const gum::VariableSet *primedVars, const DiscreteVariable *targetVar, const GUM_SCALAR neutral)
Default constructor.
const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * _DG1_
One of the two function graphs used for the operation.
HashTable< NodeId, short int * > _DG1InstantiationNeeded_
Table uses to know if a given node of given function graph has retrograde variables.
void _establishVarOrder_()
Computes an order for the final Decision graph that will minimize the number of re exploration.
const GUM_SCALAR _neutral_
The function to be performed on the leaves.
MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * _rd_
The resulting function graph.
HashTable< NodeId, short int * > _DG2InstantiationNeeded_
const PROJECTOPERATOR< GUM_SCALAR > _project_
const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * _DG2_
The other one.
void _findRetrogradeVariables_(const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > *dg, HashTable< NodeId, short int * > &dgInstNeed)
Establish for each node in both function graph if it has retrograde variables beneath it.
Idx _nbVar_
The total number of variable implied in the operation.
MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * compute()
Computes and builds the Function Graph that is the result of the operation.
const COMBINEOPERATOR< GUM_SCALAR > _combine_
The functions to be performed on the leaves.
const gum::VariableSet * _primedVars_
The set of variables we want to keep at the end.
NodeId _compute_(O4DGContext ¤tSituation, Idx lastInstVarPos)
The main recursion function.
~Regress()
Default destructor.
Size Idx
Type for indexes.
Size NodeId
Type for node ids.
gum is the global namespace for all aGrUM entities
Set< const DiscreteVariable * > VariableSet
Class used to manipulate o4DGContext in Function Graph Operations.
Class used to compute the operation between two decision diagrams.