#include <NestedDissection.h>
Public Types | |
typedef std::shared_ptr< SubNLG > | sharedSubNLG |
Public Member Functions | |
NestedDissection (const NLG &fg, const Ordering &ordering, const int numNodeStopPartition, const int minNodesPerMap, const bool verbose=false) | |
NestedDissection (const NLG &fg, const Ordering &ordering, const std::shared_ptr< Cuts > &cuts, const bool verbose=false) | |
sharedSubNLG | root () const |
Private Member Functions | |
NLG | collectOriginalFactors (const GenericGraph &gfg, const GenericUnaryGraph &unaryFactors) const |
sharedSubNLG | makeSubNLG (const NLG &fg, const std::vector< size_t > &frontals, const std::vector< size_t > &sep, const std::shared_ptr< SubNLG > &parent) const |
void | partitionFactorsAndVariables (const GenericGraph &fg, const GenericUnaryGraph &unaryFactors, const std::vector< size_t > &keys, const std::vector< int > &partitionTable, const int numSubmaps, std::vector< GenericGraph > &frontalFactors, vector< GenericUnaryGraph > &frontalUnaryFactors, NLG &sepFactors, std::vector< std::vector< size_t > > &childFrontals, std::vector< std::vector< size_t > > &childSeps, std::vector< size_t > &localFrontals, typename SubNLG::Weeklinks &weeklinks) const |
void | processFactor (const typename GenericGraph::value_type &factor, const std::vector< int > &partitionTable, std::vector< GenericGraph > &frontalFactors, NLG &sepFactors, std::vector< std::set< size_t > > &childSeps, typename SubNLG::Weeklinks &weeklinks) const |
sharedSubNLG | recursivePartition (const GenericGraph &gfg, const GenericUnaryGraph &unaryFactors, const std::vector< size_t > &frontals, const std::vector< size_t > &sep, const int numNodeStopPartition, const int minNodesPerMap, const std::shared_ptr< SubNLG > &parent, WorkSpace &workspace, const bool verbose) const |
sharedSubNLG | recursivePartition (const GenericGraph &gfg, const GenericUnaryGraph &unaryFactors, const std::vector< size_t > &frontals, const std::vector< size_t > &sep, const std::shared_ptr< Cuts > &cuts, const std::shared_ptr< SubNLG > &parent, WorkSpace &workspace, const bool verbose) const |
Private Attributes | |
NLG | fg_ |
std::vector< Symbol > | int2symbol_ |
Ordering | ordering_ |
sharedSubNLG | root_ |
Apply nested dissection algorithm to nonlinear factor graphs
Definition at line 21 of file NestedDissection.h.
typedef std::shared_ptr<SubNLG> gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::sharedSubNLG |
Definition at line 23 of file NestedDissection.h.
gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::NestedDissection | ( | const NLG & | fg, |
const Ordering & | ordering, | ||
const int | numNodeStopPartition, | ||
const int | minNodesPerMap, | ||
const bool | verbose = false |
||
) |
Definition at line 20 of file NestedDissection-inl.h.
gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::NestedDissection | ( | const NLG & | fg, |
const Ordering & | ordering, | ||
const std::shared_ptr< Cuts > & | cuts, | ||
const bool | verbose = false |
||
) |
Definition at line 43 of file NestedDissection-inl.h.
|
private |
Definition at line 157 of file NestedDissection-inl.h.
|
private |
Definition at line 65 of file NestedDissection-inl.h.
|
private |
given a factor graph and its partition {nodeMap}, split the factors between the child cliques ({frontalFactors}) and the current clique ({sepFactors}). Also split the variables between the child cliques ({childFrontals}) and the current clique ({localFrontals}). Those separator variables involved in {frontalFactors} are put into the correspoding ordering in {childSeps}.
Definition at line 117 of file NestedDissection-inl.h.
|
private |
Definition at line 80 of file NestedDissection-inl.h.
|
private |
Definition at line 169 of file NestedDissection-inl.h.
|
private |
Definition at line 213 of file NestedDissection-inl.h.
|
inline |
Definition at line 32 of file NestedDissection.h.
|
private |
Definition at line 26 of file NestedDissection.h.
|
private |
Definition at line 28 of file NestedDissection.h.
|
private |
Definition at line 27 of file NestedDissection.h.
|
private |
Definition at line 29 of file NestedDissection.h.