Loading...
Searching...
No Matches
gtsam::Values Class Reference

## Detailed Description

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.

## Public Member Functions

void | insert (Key j, const Value &val)
| Add a variable with the given j, throws KeyAlreadyExists<J> if j is already present.
void | insert (const Values &values)
| Add a set of variables, throws KeyAlreadyExists<J> if a key is already present.
template<typename ValueType>
void | 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 | insertDouble (Key j, double c)
| version for double
void | update (Key j, const Value &val)
| single element change of existing element
template<typename T>
void | update (Key j, const T &val)
| Templated version to update a variable with the given j, throws KeyDoesNotExist<J> if j is not present.
void | update (const Values &values)
| update the current available values without adding new ones
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)
| Update a set of variables.
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)
| Remove a variable from the config, throws KeyDoesNotExist<J> if j is not present.
KeyVector | keys () const
| Returns a vector of keys in the config.
KeySet | keySet () const
| Returns a set of keys in the config.
Values & | operator= (const Values &rhs)
| Replace all keys and variables.
void | swap (Values &other)
| Swap the contents of two Values without copying data.
void | clear ()
| Remove all variables from the config.
size_t | dim () const
| Compute the total dimensionality of all values ( \( O(n) \)).
std::map< Key, size_t > | dims () const
| Return all dimensions in a map ( \( O(n log n) \)).
VectorValues | zeroVectors () const
| Return a VectorValues of zero vectors for each variable in this Values.
template<class ValueType>
size_t | count () const
template<class ValueType>
std::map< Key, ValueType > | extract (const std::function< bool(Key)> &filterFcn=&_truePredicate< Key >) const
| Extract a subset of values of the given type `ValueType`.
template<typename ValueType>
void | update (Key j, const ValueType &val)
Constructors
| Values ()=default
| Default constructor creates an empty Values class.
| Values (const Values &other)
| Copy constructor duplicates all keys and values.
| Values (Values &&other)
| Move constructor.
| Values (std::initializer_list< ConstKeyValuePair > init)
| Constructor from initializer list.
| Values (const Values &other, const VectorValues &delta)
| Construct from a Values and an update vector: identical to other.retract(delta).
Testable
void | print (const std::string &str="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
| print method for testing and debugging
bool | equals (const Values &other, double tol=1e-9) const
| Test whether the sets of keys and values are identical.
Standard Interface
template<typename ValueType>
const ValueType | at (Key j) const
| Retrieve a variable by key `j`.
double | atDouble (size_t key) const
| version for double
const Value & | at (Key j) const
| Retrieve a variable by key `j`.
bool | exists (Key j) const
| Check if a value exists with key `j`.
template<typename ValueType>
boost::optional< const ValueType & > | exists (Key j) const
| Check if a value with key `j` exists, returns the value with type `Value` if the key does exist, or boost::none if it does not exist.
size_t | size () const
| The number of variables in this config.
bool | empty () const
| whether the config is empty
Iterator
deref_iterator | begin () const
deref_iterator | end () const
deref_iterator | find (Key j) const
| Find an element by key, returning an iterator, or end() if the key was not found.
deref_iterator | lower_bound (Key j) const
| Find the element greater than or equal to the specified key.
deref_iterator | upper_bound (Key j) const
| Find the lowest-ordered element greater than the specified key.
Manifold Operations
Values | retract (const VectorValues &delta) const
| Add a delta config to current config and returns a new config.
void | retractMasked (const VectorValues &delta, const KeySet &mask)
| Retract, but only for Keys appearing in `mask`.
VectorValues | localCoordinates (const Values &cp) const
| Get a delta config about a linearization point c0 (*this).

## Public Types

typedef boost::shared_ptr< Values > | shared_ptr
| A shared_ptr to this class.
typedef boost::shared_ptr< const Values > | const_shared_ptr
| A const shared_ptr to this class.
typedef KeyValuePair | value_type

## Classes

struct | KeyValuePair
| A key-value pair, which you get by dereferencing iterators. More...
struct | ConstKeyValuePair
| A key-value pair, which you get by dereferencing iterators. More...
struct | deref_iterator

## Friends

class | boost::serialization::access
| Serialization function.

## Constructor & Destructor Documentation

## Values()

Values::Values | ( | std::initializer_list< ConstKeyValuePair > | init | ) |

Constructor from initializer list.

Example usage:

Values v = {{k1, genericValue(pose1)}, {k2, genericValue(point2)}};
gtsam::genericValue
GenericValue< T > genericValue(const T &v)
Functional constructor of GenericValue<T> so T can be automatically deduced.
Definition GenericValue.h:212
gtsam::Values::Values
Values()=default
Default constructor creates an empty Values class.

## Member Function Documentation

## at() [1/2]

const Value & Values::at | ( | Key | j | ) | const

Retrieve a variable by key `j`.

This version returns a reference to the base Value class, and needs to be casted before use.

Parameters

  j | Retrieve the value associated with this key

Returns
  A const reference to the stored value

## at() [2/2]

template<typename ValueType>

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.

Parameters

  j | Retrieve the value associated with this key

Template Parameters

  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.

Returns
  The stored value

## exists() [1/2]

template<typename ValueType>

boost::optional< const ValueType & > Values::exists | ( | Key | j | ) | const

Check if a value with key `j` exists, returns the value with type `Value` if the key does exist, or boost::none if it does not exist.

Throws DynamicValuesIncorrectType if the value type associated with the requested key does not match the stored value type.

## exists() [2/2]

bool 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.

## extract()

template<class ValueType>

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.

Template Parameters

  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.

Parameters

  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`).

Returns
  An Eigen aligned map on Key with the filtered values.

## insert_or_assign()

void Values::insert_or_assign | ( | const Values & | values | ) |

Update a set of variables.

If any variable key doe not exist, then perform an insert.

## keys()

KeyVector Values::keys | ( |  | ) | const

Returns a vector of keys in the config.

Note: by construction, the list is ordered

## retractMasked()

void Values::retractMasked | ( | const VectorValues & | delta,
|  | const KeySet & | mask )

Retract, but only for Keys appearing in `mask`.

In-place.

Parameters

  mask | Mask on Keys where to apply retract.

## update()

template<typename T>

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.

The documentation for this class was generated from the following files:

- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/nonlinear/Values.h
- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/nonlinear/Values-inl.h
- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/nonlinear/Values.cpp