|
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 |