Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph > Class Template Reference

#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< Symbolint2symbol_
 
Ordering ordering_
 
sharedSubNLG root_
 

Detailed Description

template<class NLG, class SubNLG, class GenericGraph>
class gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >

Apply nested dissection algorithm to nonlinear factor graphs

Definition at line 21 of file NestedDissection.h.

Member Typedef Documentation

◆ sharedSubNLG

template<class NLG, class SubNLG, class GenericGraph>
typedef std::shared_ptr<SubNLG> gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::sharedSubNLG

Definition at line 23 of file NestedDissection.h.

Constructor & Destructor Documentation

◆ NestedDissection() [1/2]

template<class NLG , class SubNLG , class GenericGraph >
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.

◆ NestedDissection() [2/2]

template<class NLG , class SubNLG , class GenericGraph >
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.

Member Function Documentation

◆ collectOriginalFactors()

template<class NLG , class SubNLG , class GenericGraph >
NLG gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::collectOriginalFactors ( const GenericGraph &  gfg,
const GenericUnaryGraph unaryFactors 
) const
private

Definition at line 157 of file NestedDissection-inl.h.

◆ makeSubNLG()

template<class NLG , class SubNLG , class GenericGraph >
std::shared_ptr< SubNLG > gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::makeSubNLG ( const NLG &  fg,
const std::vector< size_t > &  frontals,
const std::vector< size_t > &  sep,
const std::shared_ptr< SubNLG > &  parent 
) const
private

Definition at line 65 of file NestedDissection-inl.h.

◆ partitionFactorsAndVariables()

template<class NLG , class SubNLG , class GenericGraph >
void gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::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
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.

◆ processFactor()

template<class NLG , class SubNLG , class GenericGraph >
void gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::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
private

Definition at line 80 of file NestedDissection-inl.h.

◆ recursivePartition() [1/2]

template<class NLG , class SubNLG , class GenericGraph >
std::shared_ptr< SubNLG > gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::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
private

Definition at line 169 of file NestedDissection-inl.h.

◆ recursivePartition() [2/2]

template<class NLG , class SubNLG , class GenericGraph >
std::shared_ptr< SubNLG > gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::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

Definition at line 213 of file NestedDissection-inl.h.

◆ root()

template<class NLG, class SubNLG, class GenericGraph>
sharedSubNLG gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::root ( ) const
inline

Definition at line 32 of file NestedDissection.h.

Member Data Documentation

◆ fg_

template<class NLG, class SubNLG, class GenericGraph>
NLG gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::fg_
private

Definition at line 26 of file NestedDissection.h.

◆ int2symbol_

template<class NLG, class SubNLG, class GenericGraph>
std::vector<Symbol> gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::int2symbol_
private

Definition at line 28 of file NestedDissection.h.

◆ ordering_

template<class NLG, class SubNLG, class GenericGraph>
Ordering gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::ordering_
private

Definition at line 27 of file NestedDissection.h.

◆ root_

template<class NLG, class SubNLG, class GenericGraph>
sharedSubNLG gtsam::partition::NestedDissection< NLG, SubNLG, GenericGraph >::root_
private

Definition at line 29 of file NestedDissection.h.


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


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:47:26