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();