28 class SymbolicFactorGraph;
30 class SymbolicBayesNet;
31 class SymbolicEliminationTree;
32 class SymbolicBayesTree;
33 class SymbolicJunctionTree;
45 static std::pair<std::shared_ptr<ConditionalType>, std::shared_ptr<FactorType> >
51 const FactorGraphType& graph,
52 std::optional<std::reference_wrapper<const VariableIndex>> variableIndex) {
79 template<
typename ITERATOR>
83 template<
class CONTAINER>
87 template<
class DERIVEDFACTOR>
95 std::initializer_list<std::shared_ptr<SymbolicFactor>> sharedFactors)
96 : Base(sharedFactors) {}
100 emplace_shared<SymbolicFactor>(c);
110 emplace_shared<SymbolicFactor>(c);
119 bool equals(
const This& fg,
double tol = 1e-9)
const;
123 const std::string& s =
"SymbolicFactorGraph",
124 const KeyFormatter& formatter = DefaultKeyFormatter)
const override {
134 void push_factor(
Key key);
137 void push_factor(
Key key1,
Key key2);
140 void push_factor(
Key key1,
Key key2,
Key key3);
143 void push_factor(
Key key1,
Key key2,
Key key3,
Key key4);
148 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 150 friend class boost::serialization::access;
151 template<
class ARCHIVE>
152 void serialize(ARCHIVE & ar,
const unsigned int ) {
153 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
Typedefs for easier changing of types.
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
SymbolicFactorGraph(const FactorGraph< DERIVEDFACTOR > &graph)
Definition: SymbolicFactorGraph.h:88
Variable elimination algorithms for factor graphs.
static Ordering DefaultOrderingFunc(const FactorGraphType &graph, std::optional< std::reference_wrapper< const VariableIndex >> variableIndex)
The default ordering generation function.
Definition: SymbolicFactorGraph.h:50
Definition: Testable.h:152
Definition: BayesTree.h:34
SymbolicBayesNet BayesNetType
Type of Bayes net from sequential elimination.
Definition: SymbolicFactorGraph.h:41
SymbolicFactorGraph FactorGraphType
Type of the factor graph (e.g. GaussianFactorGraph)
Definition: SymbolicFactorGraph.h:39
Definition: Ordering.h:37
SymbolicFactorGraph(ITERATOR firstFactor, ITERATOR lastFactor)
Definition: SymbolicFactorGraph.h:80
SymbolicFactorGraph()
Definition: SymbolicFactorGraph.h:76
Definition: SymbolicBayesNet.h:32
FactorGraph< SymbolicFactor > Base
Typedef to base factor graph type.
Definition: SymbolicFactorGraph.h:68
static Ordering Colamd(const FACTOR_GRAPH &graph)
Definition: Ordering.h:100
Definition: Testable.h:112
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
SymbolicFactor FactorType
Type of factors in factor graph.
Definition: SymbolicFactorGraph.h:38
Definition: SymbolicEliminationTree.h:27
GTSAM_EXPORT std::pair< std::shared_ptr< SymbolicConditional >, std::shared_ptr< SymbolicFactor > > EliminateSymbolic(const SymbolicFactorGraph &factors, const Ordering &keys)
SymbolicFactorGraph & operator()(SymbolicFactor &&c)
Add a single factor and return a reference. This allows for chaining, e.g., SymbolicFactorGraph bn = ...
Definition: SymbolicFactorGraph.h:109
Definition: SymbolicFactorGraph.h:61
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: Key.h:35
Definition: SymbolicJunctionTree.h:50
Definition: chartTesting.h:28
Definition: SymbolicFactor.h:38
SymbolicFactorGraph(SymbolicFactor &&c)
Construct from a single factor.
Definition: SymbolicFactorGraph.h:99
static std::pair< std::shared_ptr< ConditionalType >, std::shared_ptr< FactorType > > DefaultEliminate(const FactorGraphType &factors, const Ordering &keys)
The default dense elimination function.
Definition: SymbolicFactorGraph.h:47
Definition: BayesTreeCliqueBase.h:33
SymbolicConditional ConditionalType
Type of conditionals from elimination.
Definition: SymbolicFactorGraph.h:40
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition: SymbolicFactorGraph.h:70
SymbolicFactorGraph(std::initializer_list< std::shared_ptr< SymbolicFactor >> sharedFactors)
Definition: SymbolicFactorGraph.h:94
Definition: SymbolicBayesTree.h:48
EliminateableFactorGraph< This > BaseEliminateable
Typedef to base elimination class.
Definition: SymbolicFactorGraph.h:69
SymbolicJunctionTree JunctionTreeType
Definition: SymbolicFactorGraph.h:44
SymbolicFactorGraph This
Typedef to this class.
Definition: SymbolicFactorGraph.h:67
Definition: EliminateableFactorGraph.h:55
void print(const std::string &s="SymbolicFactorGraph", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print
Definition: SymbolicFactorGraph.h:122
SymbolicFactorGraph(const CONTAINER &factors)
Definition: SymbolicFactorGraph.h:84
SymbolicBayesTree BayesTreeType
Type of Bayes tree.
Definition: SymbolicFactorGraph.h:43
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
SymbolicEliminationTree EliminationTreeType
Type of elimination tree.
Definition: SymbolicFactorGraph.h:42