24 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 25 #include <boost/serialization/nvp.hpp> 75 typedef std::shared_ptr<Factor> shared_ptr;
97 template<
typename CONTAINER>
98 explicit Factor(
const CONTAINER& keys) : keys_(keys.begin(), keys.end()) {}
102 template<
typename ITERATOR>
103 Factor(ITERATOR first, ITERATOR last) : keys_(first, last) {}
107 template<
typename CONTAINER>
109 return Factor(keys.begin(), keys.end()); }
113 template<
typename ITERATOR>
115 return Factor(first, last); }
124 virtual ~
Factor() =
default;
130 bool empty()
const {
return keys_.empty(); }
139 const_iterator
find(
Key key)
const {
return std::find(begin(), end(), key); }
145 const_iterator
begin()
const {
return keys_.begin(); }
148 const_iterator
end()
const {
return keys_.end(); }
159 size_t size()
const {
return keys_.size(); }
168 const std::string& s =
"Factor",
169 const KeyFormatter& formatter = DefaultKeyFormatter)
const;
172 virtual void printKeys(
173 const std::string& s =
"Factor",
174 const KeyFormatter& formatter = DefaultKeyFormatter)
const;
177 bool equals(
const This& other,
double tol = 1e-9)
const;
187 iterator
begin() {
return keys_.begin(); }
190 iterator
end() {
return keys_.end(); }
195 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 199 friend class boost::serialization::access;
200 template<
class Archive>
201 void serialize(Archive & ar,
const unsigned int ) {
202 ar & BOOST_SERIALIZATION_NVP(keys_);
Definition: HybridValues.h:38
bool empty() const
Whether the factor is empty (involves zero variables).
Definition: Factor.h:130
Typedefs for easier changing of types.
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
size_t size() const
Definition: Factor.h:159
FastVector< FactorIndex > FactorIndices
Define collection types:
Definition: Factor.h:36
static Factor FromKeys(const CONTAINER &keys)
Definition: Factor.h:108
std::vector< T, typename internal::FastDefaultVectorAllocator< T >::type > FastVector
Definition: FastVector.h:34
KeyVector keys_
The keys involved in this factor.
Definition: Factor.h:87
const_iterator find(Key key) const
find
Definition: Factor.h:139
Key back() const
Last key.
Definition: Factor.h:136
KeyVector & keys()
Definition: Factor.h:184
const_iterator end() const
Definition: Factor.h:148
Definition: Testable.h:112
iterator end()
Definition: Factor.h:190
iterator begin()
Definition: Factor.h:187
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
KeyVector::iterator iterator
Iterator over keys.
Definition: Factor.h:79
Factor(ITERATOR first, ITERATOR last)
Definition: Factor.h:103
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 thin wrapper around std::vector that uses a custom allocator.
Definition: chartTesting.h:28
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
Definition: Key.h:86
Factor()
Definition: Factor.h:93
Key front() const
First key.
Definition: Factor.h:133
const KeyVector & keys() const
Access the factor's involved variable keys.
Definition: Factor.h:142
static Factor FromIterators(ITERATOR first, ITERATOR last)
Definition: Factor.h:114
KeyVector::const_iterator const_iterator
Const iterator over keys.
Definition: Factor.h:82
Factor(const CONTAINER &keys)
Definition: Factor.h:98
const_iterator begin() const
Definition: Factor.h:145
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102