From 06fb94144b5621a67153155adcc5ffe2140bf22b Mon Sep 17 00:00:00 2001 From: Frank Dellaert Date: Sun, 30 Jan 2022 15:10:32 -0500 Subject: [PATCH] Expose all ordering methods --- gtsam/inference/inference.i | 47 ++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/gtsam/inference/inference.i b/gtsam/inference/inference.i index 5a661d5cf..e7b074ec4 100644 --- a/gtsam/inference/inference.i +++ b/gtsam/inference/inference.i @@ -4,6 +4,12 @@ namespace gtsam { +// Headers for overloaded methods below, break hierarchy :-/ +#include +#include +#include +#include + #include // Default keyformatter @@ -98,10 +104,41 @@ class Ordering { Ordering(); Ordering(const gtsam::Ordering& other); - template + template < + FACTOR_GRAPH = {gtsam::NonlinearFactorGraph, gtsam::DiscreteFactorGraph, + gtsam::SymbolicFactorGraph, gtsam::GaussianFactorGraph}> static gtsam::Ordering Colamd(const FACTOR_GRAPH& graph); + template < + FACTOR_GRAPH = {gtsam::NonlinearFactorGraph, gtsam::DiscreteFactorGraph, + gtsam::SymbolicFactorGraph, gtsam::GaussianFactorGraph}> + static gtsam::Ordering ColamdConstrainedLast( + const FACTOR_GRAPH& graph, const gtsam::KeyVector& constrainLast, + bool forceOrder = false); + + template < + FACTOR_GRAPH = {gtsam::NonlinearFactorGraph, gtsam::DiscreteFactorGraph, + gtsam::SymbolicFactorGraph, gtsam::GaussianFactorGraph}> + static gtsam::Ordering ColamdConstrainedFirst( + const FACTOR_GRAPH& graph, const gtsam::KeyVector& constrainFirst, + bool forceOrder = false); + + template < + FACTOR_GRAPH = {gtsam::NonlinearFactorGraph, gtsam::DiscreteFactorGraph, + gtsam::SymbolicFactorGraph, gtsam::GaussianFactorGraph}> + static gtsam::Ordering Natural(const FACTOR_GRAPH& graph); + + template < + FACTOR_GRAPH = {gtsam::NonlinearFactorGraph, gtsam::DiscreteFactorGraph, + gtsam::SymbolicFactorGraph, gtsam::GaussianFactorGraph}> + static gtsam::Ordering Metis(const FACTOR_GRAPH& graph); + + template < + FACTOR_GRAPH = {gtsam::NonlinearFactorGraph, gtsam::DiscreteFactorGraph, + gtsam::SymbolicFactorGraph, gtsam::GaussianFactorGraph}> + static gtsam::Ordering Create(gtsam::Ordering::OrderingType orderingType, + const FACTOR_GRAPH& graph); + // Testable void print(string s = "", const gtsam::KeyFormatter& keyFormatter = gtsam::DefaultKeyFormatter) const; @@ -135,12 +172,6 @@ class DotWriter { }; #include - -// Headers for overloaded methods below, break hierarchy :-/ -#include -#include -#include - class VariableIndex { // Standard Constructors and Named Constructors VariableIndex();