golib
0.5
|
Factor graph for use with goMaxSum and goSumProduct. More...
#include <gofactorgraph.h>
Public Types | |
enum | FactorType { EXP, LOG } |
Indicates whether the used factors are exponential or logarithmic. More... | |
typedef goFGNode< T, Tfloat > | NodeType |
typedef goFGEdge< T, Tfloat > | EdgeType |
typedef goFixedArray< goAutoPtr< goFGNodeVariable< T, Tfloat > > > | VariableArray |
typedef goFixedArray< goAutoPtr< goFGNodeFactor< T, Tfloat > > > | FactorArray |
typedef goList< goAutoPtr< goFGEdge< T, Tfloat > > > | EdgeList |
Public Member Functions | |
void | connect (goFGNode< T, Tfloat > *n1, goSize_t adjIndex1, goFGNode< T, Tfloat > *n2, goSize_t adjIndex2) |
Connect n1 , "slot" adjIndex1 to n2 , "slot" adjIndex2 . More... | |
void | setNormal () |
Set all nodes to NodeType::NORMAL state. | |
goDouble | operator() (const goMath::Vector< T > &X, FactorType ft=EXP) |
Public Attributes | |
VariableArray | myVariables |
FactorArray | myFactors |
EdgeList | myEdges |
Factor graph for use with goMaxSum and goSumProduct.
Directly resize the arrays myVariables and myFactors, and connect them using the connect()
member function.
enum goFactorGraph::FactorType |
Indicates whether the used factors are exponential or logarithmic.
If they are exponential, operator()
uses multiplications to calculate the function value, otherwise it uses sums.
|
inline |
Connect n1
, "slot" adjIndex1
to n2
, "slot" adjIndex2
.
n1 | Node 1 |
adjIndex1 | Index of the edge in node 1 |
n2 | Node 2 |
adjIndex2 | Index of the edge in node 2 |