24#include <boost/shared_ptr.hpp>
25#include <boost/make_shared.hpp>
32 class SymbolicConditional;
93 bool equals(
const This& other,
double tol = 1e-9)
const;
97 const std::string& s =
"SymbolicFactor",
98 const KeyFormatter& formatter = DefaultKeyFormatter)
const override {
104 const std::string& s =
"SymbolicFactor",
105 const KeyFormatter& formatter = DefaultKeyFormatter)
const override {
106 Base::printKeys(s, formatter);
114 template<
typename KEYITERATOR>
120 template<
typename KEYITERATOR>
123 result->keys_.assign(beginKey, endKey);
129 template<
class CONTAINER>
136 template<
class CONTAINER>
138 return FromIteratorsShared(keys.begin(), keys.end());
151 std::pair<boost::shared_ptr<SymbolicConditional>, boost::shared_ptr<SymbolicFactor> >
152 eliminate(
const Ordering& keys)
const;
158 friend class boost::serialization::access;
159 template<
class ARCHIVE>
160 void serialize(ARCHIVE & ar,
const unsigned int ) {
161 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(
Base);
166 class SymbolicFactorGraph;
173 GTSAM_EXPORT std::pair<boost::shared_ptr<SymbolicConditional>, boost::shared_ptr<SymbolicFactor> >
Concept check for values that can be used in unit tests.
The base class for all factors.
Global functions in a separate testing namespace.
Definition: chartTesting.h:28
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
Definition: Key.h:86
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition: Matrix.cpp:156
std::pair< boost::shared_ptr< SymbolicConditional >, boost::shared_ptr< SymbolicFactor > > EliminateSymbolic(const SymbolicFactorGraph &factors, const Ordering &keys)
Dense elimination function for symbolic factors.
Definition: SymbolicFactor.cpp:36
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:100
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
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition: concepts.h:30
Template to create a binary predicate.
Definition: Testable.h:111
A helper that implements the traits interface for GTSAM types.
Definition: Testable.h:151
HybridValues represents a collection of DiscreteValues and VectorValues.
Definition: HybridValues.h:38
Definition: Ordering.h:34
SymbolicConditional is a conditional with keys but no probability data, produced by symbolic eliminat...
Definition: SymbolicConditional.h:38
SymbolicFactor represents a symbolic factor that specifies graph topology but is not associated with ...
Definition: SymbolicFactor.h:39
void print(const std::string &s="SymbolicFactor", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print
Definition: SymbolicFactor.h:96
SymbolicFactor(Key j1, Key j2, Key j3, Key j4, Key j5, Key j6)
Construct 6-way factor.
Definition: SymbolicFactor.h:77
boost::shared_ptr< This > shared_ptr
Overriding the shared_ptr typedef.
Definition: SymbolicFactor.h:48
static SymbolicFactor FromKeys(const CONTAINER &keys)
Constructor from a collection of keys - compatible with boost assign::list_of and boost assign::cref_...
Definition: SymbolicFactor.h:130
SymbolicFactor(const Factor &factor)
Create symbolic version of any factor.
Definition: SymbolicFactor.h:81
SymbolicFactor(Key j1, Key j2, Key j3, Key j4)
Construct 4-way factor.
Definition: SymbolicFactor.h:69
SymbolicFactor(Key j1, Key j2)
Construct binary factor.
Definition: SymbolicFactor.h:61
static SymbolicFactor FromIterators(KEYITERATOR beginKey, KEYITERATOR endKey)
Constructor from a collection of keys.
Definition: SymbolicFactor.h:115
void printKeys(const std::string &s="SymbolicFactor", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print only keys
Definition: SymbolicFactor.h:103
static SymbolicFactor::shared_ptr FromKeysShared(const CONTAINER &keys)
Constructor from a collection of keys - compatible with boost assign::list_of and boost assign::cref_...
Definition: SymbolicFactor.h:137
SymbolicFactor(Key j1, Key j2, Key j3)
Construct ternary factor.
Definition: SymbolicFactor.h:65
SymbolicFactor(Key j)
Construct unary factor.
Definition: SymbolicFactor.h:57
SymbolicFactor(Key j1, Key j2, Key j3, Key j4, Key j5)
Construct 5-way factor.
Definition: SymbolicFactor.h:73
static SymbolicFactor::shared_ptr FromIteratorsShared(KEYITERATOR beginKey, KEYITERATOR endKey)
Constructor from a collection of keys.
Definition: SymbolicFactor.h:121
SymbolicFactor()
Default constructor for I/O.
Definition: SymbolicFactor.h:54
SymbolicFactor::shared_ptr clone() const
Copy this object as its actual derived type.
Definition: SymbolicFactor.h:86