/** * @file SymbolicSequentialSolver.h * @brief * @author Richard Roberts * @created Oct 21, 2010 */ #pragma once #include #include namespace gtsam { class SymbolicSequentialSolver : GenericSequentialSolver { protected: typedef GenericSequentialSolver Base; public: SymbolicSequentialSolver(const FactorGraph& factorGraph); /** * Eliminate the factor graph sequentially. Uses a column elimination tree * to recursively eliminate. */ BayesNet::shared_ptr eliminate() const; /** * Compute the marginal Gaussian density over a variable, by integrating out * all of the other variables. This function returns the result as a factor. */ IndexFactor::shared_ptr marginal(Index j) const; /** * Compute the marginal joint over a set of variables, by integrating out * all of the other variables. This function returns the result as an upper- * triangular R factor and right-hand-side, i.e. a GaussianBayesNet with * R*x = d. To get a mean and covariance matrix, use jointStandard(...) */ SymbolicFactorGraph::shared_ptr joint(const std::vector& js) const; }; }