Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

HybridGaussianProductFactor

HybridGaussianProductFactor is a specialized DecisionTree used internally during hybrid elimination. It represents a collection of GaussianFactorGraphs, each associated with a specific assignment of a set of discrete variables, along with a scalar value accumulated for that assignment.

Specifically, it’s a DecisionTree<Key, GaussianFactorGraphValuePair>, where GaussianFactorGraphValuePair is std::pair<GaussianFactorGraph, double>.

Its primary role is to hold the intermediate results when eliminating a continuous variable that has discrete variables in its separator/conditional parents. When eliminating such a variable, the resulting factor on the separator involves:

  1. A set of purely continuous factors (a GaussianFactorGraph).

  2. A scalar term (representing accumulated constants or log-likelihoods). This pair depends on the assignment of the discrete separator variables. The HybridGaussianProductFactor stores these pairs in a decision tree structure indexed by the discrete keys.

While crucial internally for elimination algorithms like EliminateHybrid, direct user interaction with HybridGaussianProductFactor is less common compared to HybridGaussianFactor or HybridGaussianConditional. It can be thought of as the precursor structure from which a HybridGaussianFactor or HybridGaussianConditional is formed after elimination.