gtsam 4.1.1
gtsam
|
A factor graph is a bipartite graph with factor nodes connected to variable nodes.
In this class, however, only factor nodes are kept around.
Advanced Interface | |
class | boost::serialization::access |
Serialization function. | |
size_t | nrFactors () const |
return the number of non-null factors | |
KeySet | keys () const |
Potentially slow function to return all keys involved, sorted, as a set. | |
KeyVector | keyVector () const |
Potentially slow function to return all keys involved, sorted, as a vector. | |
bool | exists (size_t idx) const |
MATLAB interface utility: Checks whether a factor index idx exists in the graph and is a live pointer. | |
Adding Single Factors | |
void | reserve (size_t size) |
Reserve space for the specified number of factors if you know in advance how many there will be (works like FastVector::reserve). | |
template<class DERIVEDFACTOR > | |
IsDerived< DERIVEDFACTOR > | push_back (boost::shared_ptr< DERIVEDFACTOR > factor) |
Add a factor directly using a shared_ptr. | |
template<class DERIVEDFACTOR , class... Args> | |
IsDerived< DERIVEDFACTOR > | emplace_shared (Args &&... args) |
Emplace a shared pointer to factor of given type. | |
template<class DERIVEDFACTOR > | |
IsDerived< DERIVEDFACTOR > | push_back (const DERIVEDFACTOR &factor) |
Add a factor by value, will be copy-constructed (use push_back with a shared_ptr to avoid the copy). | |
template<class DERIVEDFACTOR > | |
IsDerived< DERIVEDFACTOR > | add (boost::shared_ptr< DERIVEDFACTOR > factor) |
add is a synonym for push_back. | |
template<class DERIVEDFACTOR > | |
std::enable_if< std::is_base_of< FactorType, DERIVEDFACTOR >::value, boost::assign::list_inserter< RefCallPushBack< This > > >::type | operator+= (boost::shared_ptr< DERIVEDFACTOR > factor) |
+= works well with boost::assign list inserter. | |
Adding via container | |
template<typename CONTAINER > | |
HasDerivedElementType< CONTAINER > | push_back (const CONTAINER &container) |
Push back many factors as shared_ptr's in a container (factors are not copied) | |
template<typename CONTAINER > | |
HasDerivedValueType< CONTAINER > | push_back (const CONTAINER &container) |
Push back non-pointer objects in a container (factors are copied). | |
template<class FACTOR_OR_CONTAINER > | |
void | add (const FACTOR_OR_CONTAINER &factorOrContainer) |
Add a factor or container of factors, including STL collections, BayesTrees, etc. | |
template<class FACTOR_OR_CONTAINER > | |
boost::assign::list_inserter< CRefCallPushBack< This > > | operator+= (const FACTOR_OR_CONTAINER &factorOrContainer) |
Add a factor or container of factors, including STL collections, BayesTrees, etc. | |
Specialized versions | |
template<class CLIQUE > | |
std::enable_if< std::is_base_of< This, typenameCLIQUE::FactorGraphType >::value >::type | push_back (const BayesTree< CLIQUE > &bayesTree) |
Push back a BayesTree as a collection of factors. More... | |
template<typename CONTAINER , typename = HasDerivedElementType<CONTAINER>> | |
FactorIndices | add_factors (const CONTAINER &factors, bool useEmptySlots=false) |
Add new factors to a factor graph and returns a list of new factor indices, optionally finding and reusing empty factor slots. | |
Testable | |
virtual void | print (const std::string &s="FactorGraph", const KeyFormatter &formatter=DefaultKeyFormatter) const |
print out graph More... | |
bool | equals (const This &fg, double tol=1e-9) const |
Check equality. | |
Standard Interface | |
size_t | size () const |
return the number of factors (including any null factors set by remove() ). | |
bool | empty () const |
Check if the graph is empty (null factors set by remove() will cause this to return false). | |
const sharedFactor | at (size_t i) const |
Get a specific factor by index (this checks array bounds and may throw an exception, as opposed to operator[] which does not). | |
sharedFactor & | at (size_t i) |
Get a specific factor by index (this checks array bounds and may throw an exception, as opposed to operator[] which does not). | |
const sharedFactor | operator[] (size_t i) const |
Get a specific factor by index (this does not check array bounds, as opposed to at() which does). | |
sharedFactor & | operator[] (size_t i) |
Get a specific factor by index (this does not check array bounds, as opposed to at() which does). | |
const_iterator | begin () const |
Iterator to beginning of factors. | |
const_iterator | end () const |
Iterator to end of factors. | |
sharedFactor | front () const |
Get the first factor. | |
sharedFactor | back () const |
Get the last factor. | |
Modifying Factor Graphs (imperative, discouraged) | |
iterator | begin () |
non-const STL-style begin() | |
iterator | end () |
non-const STL-style end() | |
void | resize (size_t size) |
Directly resize the number of factors in the graph. More... | |
void | remove (size_t i) |
delete factor without re-arranging indexes by inserting a nullptr pointer | |
void | replace (size_t index, sharedFactor factor) |
replace a factor by index | |
iterator | erase (iterator item) |
Erase factor and rearrange other factors to take up the empty space. | |
iterator | erase (iterator first, iterator last) |
Erase factors and rearrange other factors to take up the empty space. | |
Public Member Functions | |
virtual | ~FactorGraph ()=default |
Default destructor. | |
Public Types | |
typedef FACTOR | FactorType |
factor type | |
typedef boost::shared_ptr< FACTOR > | sharedFactor |
Shared pointer to a factor. | |
typedef sharedFactor | value_type |
typedef FastVector< sharedFactor >::iterator | iterator |
typedef FastVector< sharedFactor >::const_iterator | const_iterator |
Protected Attributes | |
FastVector< sharedFactor > | factors_ |
concept check, makes sure FACTOR defines print and equals More... | |
|
virtual |
|
inline |
Push back a BayesTree as a collection of factors.
NOTE: This should be hidden in derived classes in favor of a type-specialized version that calls this templated function.
|
inline |
Directly resize the number of factors in the graph.
If the new size is less than the original, factors at the end will be removed. If the new size is larger than the original, null factors will be appended.
|
protected |
concept check, makes sure FACTOR defines print and equals
Collection of factors