24#if GTSAM_ENABLE_BOOST_SERIALIZATION
25#include <boost/serialization/nvp.hpp>
76 typedef std::shared_ptr<Factor> shared_ptr;
98 template<
typename CONTAINER>
103 template<
typename ITERATOR>
108 template<
typename CONTAINER>
114 template<
typename ITERATOR>
116 return Factor(first, last); }
155 virtual double error(
const HybridValues& hybridValues)
const;
169 const std::string& s =
"Factor",
173 virtual void printKeys(
174 const std::string& s =
"Factor",
178 bool equals(
const This& other,
double tol = 1e-9)
const;
196#if GTSAM_ENABLE_BOOST_SERIALIZATION
200 friend class boost::serialization::access;
201 template<
class Archive>
202 void serialize(Archive & ar,
const unsigned int ) {
203 ar & BOOST_SERIALIZATION_NVP(keys_);
A thin wrapper around std::vector that uses a custom allocator.
Typedefs for easier changing of types.
std::vector< T, typename internal::FastDefaultVectorAllocator< T >::type > FastVector
FastVector is a type alias to a std::vector with a custom memory allocator.
Definition FastVector.h:33
Global functions in a separate testing namespace.
Definition chartTesting.h:28
KeyFormatter DefaultKeyFormatter
Assign default key formatter.
Definition Key.cpp:30
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
Definition Key.h:91
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition Matrix.cpp:143
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
FastVector< FactorIndex > FactorIndices
Define collection types:
Definition Factor.h:37
std::uint64_t Key
Integer nonlinear key type.
Definition types.h:43
FastSet is a thin wrapper around std::set that uses the boost fast_pool_allocator instead of the defa...
Definition FastSet.h:54
Template to create a binary predicate.
Definition Testable.h:112
HybridValues represents a collection of DiscreteValues and VectorValues.
Definition HybridValues.h:37
const KeyVector & keys() const
Access the factor's involved variable keys.
Definition Factor.h:143
KeyVector keys_
The keys involved in this factor.
Definition Factor.h:88
const_iterator find(Key key) const
find
Definition Factor.h:140
const_iterator begin() const
Iterator at beginning of involved variable keys.
Definition Factor.h:146
Factor()
Default constructor for I/O.
Definition Factor.h:94
iterator end()
Iterator at end of involved variable keys.
Definition Factor.h:191
bool empty() const
Whether the factor is empty (involves zero variables).
Definition Factor.h:131
KeyVector & keys()
Definition Factor.h:185
static Factor FromIterators(ITERATOR first, ITERATOR last)
Construct factor from iterator keys.
Definition Factor.h:115
static Factor FromKeys(const CONTAINER &keys)
Construct factor from container of keys.
Definition Factor.h:109
iterator begin()
Iterator at beginning of involved variable keys.
Definition Factor.h:188
virtual ~Factor()=default
Default destructor.
Factor(ITERATOR first, ITERATOR last)
Construct factor from iterator keys.
Definition Factor.h:104
KeyVector::const_iterator const_iterator
Const iterator over keys.
Definition Factor.h:83
const_iterator end() const
Iterator at end of involved variable keys.
Definition Factor.h:149
Factor(const CONTAINER &keys)
Construct factor from container of keys.
Definition Factor.h:99
KeyVector::iterator iterator
Iterator over keys.
Definition Factor.h:80
Key back() const
Last key.
Definition Factor.h:137
Key front() const
First key.
Definition Factor.h:134
size_t size() const
Definition Factor.h:160