/* ---------------------------------------------------------------------------- * GTSAM Copyright 2010, Georgia Tech Research Corporation, * Atlanta, Georgia 30332-0415 * All Rights Reserved * Authors: Frank Dellaert, et al. (see THANKS for the full author list) * See LICENSE for the license information * -------------------------------------------------------------------------- */ /* * iterative.cpp * @brief Iterative methods, implementation * @author Frank Dellaert * Created on: Dec 28, 2009 */ #include #include #include #include #include #include using namespace std; namespace gtsam { /* ************************************************************************* */ void System::print (const string& s) const { cout << s << endl; gtsam::print(A_, "A"); gtsam::print(b_, "b"); } /* ************************************************************************* */ Vector steepestDescent(const System& Ab, const Vector& x, const IterativeSolver::sharedParameters parameters) { return conjugateGradients (Ab, x, parameters, true); } Vector conjugateGradientDescent(const System& Ab, const Vector& x, const IterativeSolver::sharedParameters parameters) { return conjugateGradients (Ab, x, parameters); } /* ************************************************************************* */ Vector steepestDescent(const Matrix& A, const Vector& b, const Vector& x, const IterativeSolver::sharedParameters parameters) { System Ab(A, b); return conjugateGradients (Ab, x, parameters, true); } Vector conjugateGradientDescent(const Matrix& A, const Vector& b, const Vector& x, const IterativeSolver::sharedParameters parameters) { System Ab(A, b); return conjugateGradients (Ab, x, parameters); } /* ************************************************************************* */ VectorValues steepestDescent(const GaussianFactorGraph& fg, const VectorValues& x, const IterativeSolver::sharedParameters parameters) { return conjugateGradients (fg, x, parameters, true); } VectorValues conjugateGradientDescent(const GaussianFactorGraph& fg, const VectorValues& x, const IterativeSolver::sharedParameters parameters) { return conjugateGradients (fg, x, parameters); } // Vector steepestDescent(const System& Ab, const Vector& x, bool verbose, // double epsilon, double epsilon_abs, size_t maxIterations) { // return conjugateGradients (Ab, x, verbose, epsilon, // epsilon_abs, maxIterations, true); // } // // Vector conjugateGradientDescent(const System& Ab, const Vector& x, // bool verbose, double epsilon, double epsilon_abs, size_t maxIterations) { // return conjugateGradients (Ab, x, verbose, epsilon, // epsilon_abs, maxIterations); // } // // /* ************************************************************************* */ // Vector steepestDescent(const Matrix& A, const Vector& b, const Vector& x, // bool verbose, double epsilon, double epsilon_abs, size_t maxIterations) { // System Ab(A, b); // return conjugateGradients (Ab, x, verbose, epsilon, // epsilon_abs, maxIterations, true); // } // // Vector conjugateGradientDescent(const Matrix& A, const Vector& b, // const Vector& x, bool verbose, double epsilon, double epsilon_abs, size_t maxIterations) { // System Ab(A, b); // return conjugateGradients (Ab, x, verbose, epsilon, // epsilon_abs, maxIterations); // } // // /* ************************************************************************* */ // VectorValues steepestDescent(const GaussianFactorGraph& fg, // const VectorValues& x, bool verbose, double epsilon, double epsilon_abs, size_t maxIterations) { // return conjugateGradients (fg, // x, verbose, epsilon, epsilon_abs, maxIterations, true); // } // // VectorValues conjugateGradientDescent(const GaussianFactorGraph& fg, // const VectorValues& x, bool verbose, double epsilon, double epsilon_abs, size_t maxIterations) { // return conjugateGradients (fg, // x, verbose, epsilon, epsilon_abs, maxIterations); // } /* ************************************************************************* */ } // namespace gtsam