GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
#include <Values.h>
Classes | |
struct | ConstKeyValuePair |
A key-value pair, which you get by dereferencing iterators. More... | |
struct | deref_iterator |
struct | KeyValuePair |
A key-value pair, which you get by dereferencing iterators. More... | |
Public Types | |
typedef std::shared_ptr< Values > | shared_ptr |
A shared_ptr to this class. | |
typedef std::shared_ptr< const Values > | const_shared_ptr |
A const shared_ptr to this class. | |
typedef KeyValuePair | value_type |
Public Member Functions | |
void | insert (Key j, const Value &val) |
void | insert (const Values &values) |
template<typename ValueType > | |
void | insert (Key j, const ValueType &val) |
void | insertDouble (Key j, double c) |
version for double | |
void | update (Key j, const Value &val) |
template<typename T > | |
void | update (Key j, const T &val) |
void | update (const Values &values) |
void | insert_or_assign (Key j, const Value &val) |
If key j exists, update value, else perform an insert. | |
void | insert_or_assign (const Values &values) |
template<typename ValueType > | |
void | insert_or_assign (Key j, const ValueType &val) |
Templated version to insert_or_assign a variable with the given j. | |
void | erase (Key j) |
KeyVector | keys () const |
KeySet | keySet () const |
Values & | operator= (const Values &rhs) |
void | swap (Values &other) |
void | clear () |
size_t | dim () const |
std::map< Key, size_t > | dims () const |
VectorValues | zeroVectors () const |
template<class ValueType > | |
size_t | count () const |
template<class ValueType > | |
std::map< Key, ValueType > | extract (const std::function< bool(Key)> &filterFcn=&_truePredicate< Key >) const |
template<typename ValueType > | |
void | update (Key j, const ValueType &val) |
Constructors | |
Values ()=default | |
Values (const Values &other) | |
Values (Values &&other) | |
Values (std::initializer_list< ConstKeyValuePair > init) | |
Values (const Values &other, const VectorValues &delta) | |
Testable | |
void | print (const std::string &str="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
bool | equals (const Values &other, double tol=1e-9) const |
Standard Interface | |
template<typename ValueType > | |
const ValueType | at (Key j) const |
double | atDouble (size_t key) const |
version for double | |
const Value & | at (Key j) const |
bool | exists (Key j) const |
template<typename ValueType > | |
const ValueType * | exists (Key j) const |
size_t | size () const |
bool | empty () const |
Iterator | |
deref_iterator | begin () const |
deref_iterator | end () const |
deref_iterator | find (Key j) const |
deref_iterator | lower_bound (Key j) const |
deref_iterator | upper_bound (Key j) const |
Manifold Operations | |
Values | retract (const VectorValues &delta) const |
void | retractMasked (const VectorValues &delta, const KeySet &mask) |
VectorValues | localCoordinates (const Values &cp) const |
A non-templated config holding any types of Manifold-group elements. A values structure is a map from keys to values. It is used to specify the value of a bunch of variables in a factor graph. A Values is a values structure which can hold variables that are elements on manifolds, not just vectors. It then, as a whole, implements a aggregate type which is also a manifold element, and hence supports operations dim, retract, and localCoordinates.
|
default |
Default constructor creates an empty Values class
gtsam::Values::Values | ( | const Values & | other | ) |
Copy constructor duplicates all keys and values
gtsam::Values::Values | ( | Values && | other | ) |
Move constructor
gtsam::Values::Values | ( | std::initializer_list< ConstKeyValuePair > | init | ) |
Constructor from initializer list. Example usage:
gtsam::Values::Values | ( | const Values & | other, |
const VectorValues & | delta | ||
) |
Construct from a Values and an update vector: identical to other.retract(delta)
const ValueType Values::at | ( | Key | j | ) | const |
Retrieve a variable by key j
. The type of the value associated with this key is supplied as a template argument to this function.
j | Retrieve the value associated with this key |
ValueType | The type of the value stored with this key, this method Throws DynamicValuesIncorrectType if this requested type is not correct. Dynamic matrices/vectors can be retrieved as fixed-size, but not vice-versa. |
Retrieve a variable by key j
. This version returns a reference to the base Value class, and needs to be casted before use.
j | Retrieve the value associated with this key |
|
inline |
Remove all variables from the config
size_t gtsam::Values::dim | ( | ) | const |
Compute the total dimensionality of all values ( \( O(n) \))
std::map<Key,size_t> gtsam::Values::dims | ( | ) | const |
Return all dimensions in a map ( \( O(n log n) \))
|
inline |
whether the config is empty
bool gtsam::Values::equals | ( | const Values & | other, |
double | tol = 1e-9 |
||
) | const |
Test whether the sets of keys and values are identical
void gtsam::Values::erase | ( | Key | j | ) |
Remove a variable from the config, throws KeyDoesNotExist<J> if j is not present
bool gtsam::Values::exists | ( | Key | j | ) | const |
Check if a value exists with key j
. See exists<>(Key j) and exists(const TypedKey& j) for versions that return the value if it exists.
const ValueType * Values::exists | ( | Key | j | ) | const |
Check if a value with key j
exists, returns a pointer to the const version of the value Value
if the key does exist, or nullptr if it does not exist. Throws DynamicValuesIncorrectType if the value type associated with the requested key does not match the stored value type.
std::map< Key, ValueType > Values::extract | ( | const std::function< bool(Key)> & | filterFcn = &_truePredicate<Key> | ) | const |
Extract a subset of values of the given type ValueType
.
In this templated version, only key-value pairs whose value matches the template argument ValueType
and whose key causes the function argument filterFcn
to return true are visited when iterating over the filtered view. This replaces the fancier but very boost-dependent filter
methods that were previously available up to GTSAM 4.2.
ValueType | The type that the value in a key-value pair must match to be included in the filtered view. Currently, base classes are not resolved so the type must match exactly, except if ValueType = Value, in which case no type filtering is done. |
filterFcn | The function that determines which key-value pairs are included in the filtered view, for which this function returns true on their keys (default: always return true so that filter() only filters by type, matching ValueType ). |
|
inline |
Find an element by key, returning an iterator, or end() if the key was not found.
Add a variable with the given j, throws KeyAlreadyExists<J> if j is already present
void gtsam::Values::insert | ( | const Values & | values | ) |
Add a set of variables, throws KeyAlreadyExists<J> if a key is already present
void Values::insert | ( | Key | j, |
const ValueType & | val | ||
) |
Templated version to add a variable with the given j, throws KeyAlreadyExists<J> if j is already present
void gtsam::Values::insert_or_assign | ( | const Values & | values | ) |
Update a set of variables. If any variable key doe not exist, then perform an insert.
KeyVector gtsam::Values::keys | ( | ) | const |
Returns a vector of keys in the config. Note: by construction, the list is ordered
KeySet gtsam::Values::keySet | ( | ) | const |
Returns a set of keys in the config.
VectorValues gtsam::Values::localCoordinates | ( | const Values & | cp | ) | const |
Get a delta config about a linearization point c0 (*this)
|
inline |
Find the element greater than or equal to the specified key.
void gtsam::Values::print | ( | const std::string & | str = "" , |
const KeyFormatter & | keyFormatter = DefaultKeyFormatter |
||
) | const |
print method for testing and debugging
Values gtsam::Values::retract | ( | const VectorValues & | delta | ) | const |
Add a delta config to current config and returns a new config
void gtsam::Values::retractMasked | ( | const VectorValues & | delta, |
const KeySet & | mask | ||
) |
Retract, but only for Keys appearing in mask
. In-place.
mask | Mask on Keys where to apply retract. |
|
inline |
The number of variables in this config
|
inline |
Swap the contents of two Values without copying data
void gtsam::Values::update | ( | Key | j, |
const T & | val | ||
) |
Templated version to update a variable with the given j, throws KeyDoesNotExist<J> if j is not present. If no chart is specified, the DefaultChart<ValueType> is used.
void gtsam::Values::update | ( | const Values & | values | ) |
update the current available values without adding new ones
|
inline |
Find the lowest-ordered element greater than the specified key.
VectorValues gtsam::Values::zeroVectors | ( | ) | const |
Return a VectorValues of zero vectors for each variable in this Values