| golib
    0.5
    | 
| Public Member Functions | |
| virtual bool | run (goFGNode< T, Tfloat > *root, goFactorGraph< T, Tfloat > &fg) | 
| Run the sum-product algorithm.  More... | |
| bool | flooding (goFGNode< T, Tfloat > *startNode, goFactorGraph< T, Tfloat > &fg, goSize_t maxPasses=0) | 
| "Flooding" type scheme for graphs with loops.  More... | |
| bool | variableSend (goFGNode< T, Tfloat > *fgn, goIndex_t parentIndex) | 
| Create and "send" message from a variable node fgnalong a given edge.  More... | |
| bool | factorSend (goFGNode< T, Tfloat > *fgn, goSize_t parentIndex) | 
| Create and "send" message from a factor node fgnalong a given edge.  More... | |
| Tfloat | sumproduct (goFGNodeFactor< T, Tfloat > *factorNode, goFunctorBase1< Tfloat, const goMath::Vector< T > & > *f, goMath::Vector< T > &X, goSize_t i, goSize_t fixed_index) | 
| Recursive sum/product for the sum-product algorithm.  More... | |
| bool | forwardPass (goFGNode< T, Tfloat > *node) | 
| bool | backwardPass (goFGNode< T, Tfloat > *node) | 
| virtual bool | action (goFGNode< T, Tfloat > *node) | 
| bool | marginal (goFGNodeVariable< T, Tfloat > *variable, goSize_t valueCount, goMath::Vector< Tfloat > &marginalRet) | 
| Tfloat | norm (goFactorGraph< T, Tfloat > &fg, goSize_t valueCount) | 
| Calculate the normalisation constant Z for the given factor graph.  More... | |
|  Public Member Functions inherited from goMessagePassing< T, Tfloat > | |
| goDouble | sum (goFunctorBase1< Tfloat, const goMath::Vector< T > & > *f, goMath::Vector< T > &X, goSize_t i, goSize_t fixed_index) | 
| Recursive sum.  More... | |
| void | setValueCount (goSize_t c) | 
| goSize_t | getValueCount () const | 
| void | setDirection (Direction d) | 
| Direction | getDirection () const | 
|  Public Member Functions inherited from goGraphAlgorithm< goFGNode< T, Tfloat >, goFGEdge< T, Tfloat > > | |
| bool | breadthFirst (goFGNode< T, Tfloat > *root) | 
| BFS.  More... | |
| bool | breadthFirstTree (goFGNode< T, Tfloat > *root) | 
| bool | depthFirstRecursive (goFGNode< T, Tfloat > *root) | 
| bool | depthFirst (goFGNode< T, Tfloat > *root) | 
| bool | depthFirstTree (goFGNode< T, Tfloat > *root) | 
| Same as depthFirst(), plus fills parent fields in the nodes.  More... | |
| virtual bool | action (const goFGNode< T, Tfloat > *node) const | 
| Additional Inherited Members | |
|  Public Types inherited from goMessagePassing< T, Tfloat > | |
| enum | Direction { FORWARD, BACKWARD } | 
| 
 | inline | 
Create and "send" message from a factor node fgn along a given edge. 
| fgn | Factor node to send from. | 
| parentIndex | Index into fgn->adj of edge to send the message along (the other connected node is a variable and "receives" the message). | 
| 
 | inline | 
"Flooding" type scheme for graphs with loops.
Uses a sort of flooding message passing schedule (not parallel, but driven by a queue of pending messages).
| startNode | "Root" node. Does not serve any purpose and may be removed. | 
| fg | Factor graph to work on. | 
| maxPasses | Maximal number of passes each node is allowed to send messages for. If 0 (default), the algorithm will terminate when no more messages are pending. If there are loops in the graph and maxPassesis 0, the algorithm will run indefinitely. | 
| 
 | inline | 
Calculate the normalisation constant Z for the given factor graph.
| fg | Factor graph to calculate the normalisation constant for. | 
| valueCount | Number of possible values for the input to the factors. | 
| 
 | inlinevirtual | 
Run the sum-product algorithm.
Use setValueCount() to set the values of the variables (they will be in the range [0,valueCount-1]).
| root | Node to start the algorithm on. | 
| fg | Factor graph to run the algorithm on. | 
Implements goMessagePassing< T, Tfloat >.
| 
 | inline | 
Recursive sum/product for the sum-product algorithm.
Calculates  with x being the variable with
 with x being the variable with fixed_index,  the other variables connected to
 the other variables connected to factorNode, and  the messages stored in the edges between the variable nodes and
 the messages stored in the edges between the variable nodes and factorNode. The above term constitutes the messages  for the sum-product algorithm.
 for the sum-product algorithm.
| factorNode | Factor node to calculate on. | 
| f | Functor of factorNode(usually, but can also be a different one). | 
| X | Input for f | 
| i | Current index into Xwe are summing over. | 
| fixed_index | Index into Xof the variable that is held fixed (not summed over). | 
| 
 | inline | 
Create and "send" message from a variable node fgn along a given edge. 
| fgn | Variable node to send from. | 
| parentIndex | Index into fgn->adj of edge to send the message along (the other connected node is a variable and "receives" the message). Think of it as "outgoingIndex". |