Loading...
Searching...
No Matches
gtsam::Ordering Class Reference
Inheritance diagram for gtsam::Ordering:

## Public Member Functions

GTSAM_EXPORT | Ordering ()
| Create an empty ordering.
template<typename KEYS>
| Ordering (const KEYS &keys)
| Create from a container.
boost::assign::list_inserter< boost::assign_detail::call_push_back< This > > | operator+= (Key key)
| Add new variables to the ordering as ordering += key1, key2, ... Equivalent to calling push_back.
This & | operator+= (KeyVector &keys)
| Append new keys to the ordering as ordering += keys.
bool | contains (const Key &key) const
| Check if key exists in ordering.
FastMap< Key, size_t > | invert () const
| Invert (not reverse) the ordering - returns a map from key to order position.
Testable
GTSAM_EXPORT void | print (const std::string &str="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
GTSAM_EXPORT bool | equals (const Ordering &other, double tol=1e-9) const

## Static Public Member Functions

Fill-reducing Orderings
template<class FACTOR_GRAPH>
static Ordering | Colamd (const FACTOR_GRAPH &graph)
| Compute a fill-reducing ordering using COLAMD from a factor graph (see details for note on performance).
static GTSAM_EXPORT Ordering | Colamd (const VariableIndex &variableIndex)
| Compute a fill-reducing ordering using COLAMD from a VariableIndex.
template<class FACTOR_GRAPH>
static Ordering | ColamdConstrainedLast (const FACTOR_GRAPH &graph, const KeyVector &constrainLast, bool forceOrder=false)
| Compute a fill-reducing ordering using constrained COLAMD from a factor graph (see details for note on performance).
static GTSAM_EXPORT Ordering | ColamdConstrainedLast (const VariableIndex &variableIndex, const KeyVector &constrainLast, bool forceOrder=false)
| Compute a fill-reducing ordering using constrained COLAMD from a VariableIndex.
template<class FACTOR_GRAPH>
static Ordering | ColamdConstrainedFirst (const FACTOR_GRAPH &graph, const KeyVector &constrainFirst, bool forceOrder=false)
| Compute a fill-reducing ordering using constrained COLAMD from a factor graph (see details for note on performance).
static GTSAM_EXPORT Ordering | ColamdConstrainedFirst (const VariableIndex &variableIndex, const KeyVector &constrainFirst, bool forceOrder=false)
| Compute a fill-reducing ordering using constrained COLAMD from a VariableIndex.
template<class FACTOR_GRAPH>
static Ordering | ColamdConstrained (const FACTOR_GRAPH &graph, const FastMap< Key, int > &groups)
| Compute a fill-reducing ordering using constrained COLAMD from a factor graph (see details for note on performance).
static GTSAM_EXPORT Ordering | ColamdConstrained (const VariableIndex &variableIndex, const FastMap< Key, int > &groups)
| Compute a fill-reducing ordering using constrained COLAMD from a VariableIndex.
template<class FACTOR_GRAPH>
static Ordering | Natural (const FACTOR_GRAPH &fg)
| Return a natural Ordering. Typically used by iterative solvers.
template<class FACTOR_GRAPH>
static GTSAM_EXPORT void | CSRFormat (std::vector< int > &xadj, std::vector< int > &adj, const FACTOR_GRAPH &graph)
| METIS Formatting function.
static GTSAM_EXPORT Ordering | Metis (const MetisIndex &met)
| Compute an ordering determined by METIS from a VariableIndex.
template<class FACTOR_GRAPH>
static Ordering | Metis (const FACTOR_GRAPH &graph)
Named Constructors
template<class FACTOR_GRAPH>
static Ordering | Create (OrderingType orderingType, const FACTOR_GRAPH &graph)

## Public Types

enum | OrderingType { COLAMD , METIS , NATURAL , CUSTOM }
| Type of ordering to use.
typedef Ordering | This
| Typedef to this class.
typedef boost::shared_ptr< This > | shared_ptr
| shared_ptr to this class

## Protected Types

typedef KeyVector | Base

## Friends

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

## Member Function Documentation

## Colamd()

template<class FACTOR_GRAPH>

Ordering gtsam::Ordering::Colamd | ( | const FACTOR_GRAPH & | graph | ) |

inline static

Compute a fill-reducing ordering using COLAMD from a factor graph (see details for note on performance).

This internally builds a VariableIndex so if you already have a VariableIndex, it is faster to use COLAMD(const VariableIndex&)

## ColamdConstrained() [1/2]

template<class FACTOR_GRAPH>

Ordering gtsam::Ordering::ColamdConstrained | ( | const FACTOR_GRAPH & | graph,
|  | const FastMap< Key, int > & | groups )

inline static

Compute a fill-reducing ordering using constrained COLAMD from a factor graph (see details for note on performance).

This internally builds a VariableIndex so if you already have a VariableIndex, it is faster to use COLAMD(const VariableIndex&). In this function, a group for each variable should be specified in `groups`, and each group of variables will appear in the ordering in group index order. `groups` should be a map from Key to group index. The group indices used should be consecutive starting at 0, but may appear in `groups` in arbitrary order. Any variables not present in `groups` will be assigned to group 0. This function simply fills the `cmember` argument to CCOLAMD with the supplied indices, see the CCOLAMD documentation for more information.

## ColamdConstrained() [2/2]

Ordering gtsam::Ordering::ColamdConstrained | ( | const VariableIndex & | variableIndex,
|  | const FastMap< Key, int > & | groups )

static

Compute a fill-reducing ordering using constrained COLAMD from a VariableIndex.

In this function, a group for each variable should be specified in `groups`, and each group of variables will appear in the ordering in group index order. `groups` should be a map from Key to group index. The group indices used should be consecutive starting at 0, but may appear in `groups` in arbitrary order. Any variables not present in `groups` will be assigned to group 0. This function simply fills the `cmember` argument to CCOLAMD with the supplied indices, see the CCOLAMD documentation for more information.

## ColamdConstrainedFirst() [1/2]

template<class FACTOR_GRAPH>

Ordering gtsam::Ordering::ColamdConstrainedFirst | ( | const FACTOR_GRAPH & | graph,
|  | const KeyVector & | constrainFirst,
|  | bool | forceOrder = false )

inline static

Compute a fill-reducing ordering using constrained COLAMD from a factor graph (see details for note on performance).

This internally builds a VariableIndex so if you already have a VariableIndex, it is faster to use COLAMD(const VariableIndex&). This function constrains the variables in `constrainLast` to the end of the ordering, and orders all other variables before in a fill-reducing ordering. If `forceOrder` is true, the variables in `constrainFirst` will be ordered in the same order specified in the KeyVector `constrainFirst`. If `forceOrder` is false, the variables in `constrainFirst` will be ordered before all the others, but will be rearranged by CCOLAMD to reduce fill-in as well.

## ColamdConstrainedFirst() [2/2]

Ordering gtsam::Ordering::ColamdConstrainedFirst | ( | const VariableIndex & | variableIndex,
|  | const KeyVector & | constrainFirst,
|  | bool | forceOrder = false )

static

Compute a fill-reducing ordering using constrained COLAMD from a VariableIndex.

This function constrains the variables in `constrainFirst` to the front of the ordering, and orders all other variables after in a fill-reducing ordering. If `forceOrder` is true, the variables in `constrainFirst` will be ordered in the same order specified in the KeyVector `constrainFirst`. If `forceOrder` is false, the variables in `constrainFirst` will be ordered before all the others, but will be rearranged by CCOLAMD to reduce fill-in as well.

## ColamdConstrainedLast() [1/2]

template<class FACTOR_GRAPH>

Ordering gtsam::Ordering::ColamdConstrainedLast | ( | const FACTOR_GRAPH & | graph,
|  | const KeyVector & | constrainLast,
|  | bool | forceOrder = false )

inline static

Compute a fill-reducing ordering using constrained COLAMD from a factor graph (see details for note on performance).

This internally builds a VariableIndex so if you already have a VariableIndex, it is faster to use COLAMD(const VariableIndex&). This function constrains the variables in `constrainLast` to the end of the ordering, and orders all other variables before in a fill-reducing ordering. If `forceOrder` is true, the variables in `constrainLast` will be ordered in the same order specified in the KeyVector `constrainLast`. If `forceOrder` is false, the variables in `constrainLast` will be ordered after all the others, but will be rearranged by CCOLAMD to reduce fill-in as well.

## ColamdConstrainedLast() [2/2]

Ordering gtsam::Ordering::ColamdConstrainedLast | ( | const VariableIndex & | variableIndex,
|  | const KeyVector & | constrainLast,
|  | bool | forceOrder = false )

static

Compute a fill-reducing ordering using constrained COLAMD from a VariableIndex.

This function constrains the variables in `constrainLast` to the end of the ordering, and orders all other variables before in a fill-reducing ordering. If `forceOrder` is true, the variables in `constrainLast` will be ordered in the same order specified in the KeyVector `constrainLast`. If `forceOrder` is false, the variables in `constrainLast` will be ordered after all the others, but will be rearranged by CCOLAMD to reduce fill-in as well.

## invert()

FastMap< Key, size_t > gtsam::Ordering::invert | ( |  | ) | const

Invert (not reverse) the ordering - returns a map from key to order position.

Returns
  FastMap<Key, size_t>

## operator+=()

Ordering::This & gtsam::Ordering::operator+= | ( | KeyVector & | keys | ) |

Append new keys to the ordering as ordering += keys.

Parameters

  keys | The key vector to append to this ordering.

Returns
  The ordering variable with appended keys.

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

- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/inference/Ordering.h
- /build/gtsam-Xg031d/gtsam-4.2.0+dfsg/gtsam/inference/Ordering.cpp