From fd79b455e3b59d3e03a105f808d04229832024e4 Mon Sep 17 00:00:00 2001 From: Yong-Dian Jian Date: Mon, 18 Oct 2010 19:30:40 +0000 Subject: [PATCH] add a dummy spcg interface for now... --- nonlinear/NonlinearOptimization-inl.h | 11 +++++++++++ nonlinear/NonlinearOptimization.h | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/nonlinear/NonlinearOptimization-inl.h b/nonlinear/NonlinearOptimization-inl.h index 7c0c827f9..660dfdbc3 100644 --- a/nonlinear/NonlinearOptimization-inl.h +++ b/nonlinear/NonlinearOptimization-inl.h @@ -55,6 +55,14 @@ namespace gtsam { throw runtime_error("optimizeMultiFrontal: not implemented"); } + /** + * The multifrontal solver + */ + template + T optimizeSPCG(const G& graph, const T& initialEstimate, const NonlinearOptimizationParameters& parameters) { + throw runtime_error("optimizeSPCG: not implemented"); + } + /** * optimization that returns the values */ @@ -66,7 +74,10 @@ namespace gtsam { return optimizeElimination(graph, initialEstimate, parameters); case MULTIFRONTAL: return optimizeMultiFrontal(graph, initialEstimate, parameters); + case SPCG: + return optimizeSPCG(graph, initialEstimate, parameters) ; } + throw runtime_error("optimizeSPCG: undefined solver"); } } //namespace gtsam diff --git a/nonlinear/NonlinearOptimization.h b/nonlinear/NonlinearOptimization.h index 220f14d24..f0cd9ae39 100644 --- a/nonlinear/NonlinearOptimization.h +++ b/nonlinear/NonlinearOptimization.h @@ -36,7 +36,8 @@ namespace gtsam { */ enum LinearSolver{ ELIMINATION, // Elimination - MULTIFRONTAL // Multi-frontal + MULTIFRONTAL, // Multi-frontal + SPCG, // Subgraph Preconditioned Conjugate Gradient };