From a94169a973e42d77c752d4d4bcf8f2ffd56d8693 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 15 Oct 2024 09:59:16 -0400 Subject: [PATCH] remove unnecessary typedefs --- .../NonlinearConjugateGradientOptimizer.cpp | 24 ++++++++++--------- .../NonlinearConjugateGradientOptimizer.h | 21 ++++++++-------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/gtsam/nonlinear/NonlinearConjugateGradientOptimizer.cpp b/gtsam/nonlinear/NonlinearConjugateGradientOptimizer.cpp index 0b1a43815..403c72908 100644 --- a/gtsam/nonlinear/NonlinearConjugateGradientOptimizer.cpp +++ b/gtsam/nonlinear/NonlinearConjugateGradientOptimizer.cpp @@ -42,24 +42,26 @@ static VectorValues gradientInPlace(const NonlinearFactorGraph &nfg, } NonlinearConjugateGradientOptimizer::NonlinearConjugateGradientOptimizer( - const NonlinearFactorGraph& graph, const Values& initialValues, const Parameters& params) - : Base(graph, std::unique_ptr(new State(initialValues, graph.error(initialValues)))), - params_(params) {} + const NonlinearFactorGraph& graph, const Values& initialValues, + const Parameters& params) + : Base(graph, std::unique_ptr( + new State(initialValues, graph.error(initialValues)))), + params_(params) {} -double NonlinearConjugateGradientOptimizer::System::error(const State& state) const { +double NonlinearConjugateGradientOptimizer::System::error( + const Values& state) const { return graph_.error(state); } -NonlinearConjugateGradientOptimizer::System::Gradient NonlinearConjugateGradientOptimizer::System::gradient( - const State &state) const { +VectorValues NonlinearConjugateGradientOptimizer::System::gradient( + const Values& state) const { return gradientInPlace(graph_, state); } -NonlinearConjugateGradientOptimizer::System::State NonlinearConjugateGradientOptimizer::System::advance( - const State ¤t, const double alpha, const Gradient &g) const { - Gradient step = g; - step *= alpha; - return current.retract(step); +Values NonlinearConjugateGradientOptimizer::System::advance( + const Values& current, const double alpha, + const VectorValues& gradient) const { + return current.retract(alpha * gradient); } GaussianFactorGraph::shared_ptr NonlinearConjugateGradientOptimizer::iterate() { diff --git a/gtsam/nonlinear/NonlinearConjugateGradientOptimizer.h b/gtsam/nonlinear/NonlinearConjugateGradientOptimizer.h index 3dd6c7e05..26f596b06 100644 --- a/gtsam/nonlinear/NonlinearConjugateGradientOptimizer.h +++ b/gtsam/nonlinear/NonlinearConjugateGradientOptimizer.h @@ -29,8 +29,6 @@ class GTSAM_EXPORT NonlinearConjugateGradientOptimizer : public NonlinearOptimiz /* a class for the nonlinearConjugateGradient template */ class System { public: - typedef Values State; - typedef VectorValues Gradient; typedef NonlinearOptimizerParams Parameters; protected: @@ -40,10 +38,10 @@ class GTSAM_EXPORT NonlinearConjugateGradientOptimizer : public NonlinearOptimiz System(const NonlinearFactorGraph &graph) : graph_(graph) { } - double error(const State &state) const; - Gradient gradient(const State &state) const; - State advance(const State ¤t, const double alpha, - const Gradient &g) const; + double error(const Values &state) const; + VectorValues gradient(const Values &state) const; + Values advance(const Values ¤t, const double alpha, + const VectorValues &g) const; }; public: @@ -52,7 +50,7 @@ public: typedef NonlinearOptimizerParams Parameters; typedef std::shared_ptr shared_ptr; -protected: + protected: Parameters params_; const NonlinearOptimizerParams& _params() const override { @@ -62,8 +60,9 @@ protected: public: /// Constructor - NonlinearConjugateGradientOptimizer(const NonlinearFactorGraph& graph, - const Values& initialValues, const Parameters& params = Parameters()); + NonlinearConjugateGradientOptimizer( + const NonlinearFactorGraph &graph, const Values &initialValues, + const Parameters ¶ms = Parameters()); /// Destructor ~NonlinearConjugateGradientOptimizer() override { @@ -163,8 +162,8 @@ std::tuple nonlinearConjugateGradient(const S &system, } V currentValues = initial; - typename S::Gradient currentGradient = system.gradient(currentValues), - prevGradient, direction = currentGradient; + VectorValues currentGradient = system.gradient(currentValues), prevGradient, + direction = currentGradient; /* do one step of gradient descent */ V prevValues = currentValues;