move blas_kernel_ up
							parent
							
								
									a0c77dcc1c
								
							
						
					
					
						commit
						c844ab19e3
					
				|  | @ -0,0 +1,47 @@ | |||
| /*
 | ||||
|  * ConjugateGradientSolver.cpp | ||||
|  * | ||||
|  *  Created on: Jun 4, 2014 | ||||
|  *      Author: ydjian | ||||
|  */ | ||||
| 
 | ||||
| #include <gtsam/linear/ConjugateGradientSolver.h> | ||||
| #include <iostream> | ||||
| 
 | ||||
| namespace gtsam { | ||||
| 
 | ||||
| /*****************************************************************************/ | ||||
| std::string ConjugateGradientParameters::blasTranslator(const BLASKernel value) { | ||||
|   std::string s; | ||||
|   switch (value) { | ||||
|   case ConjugateGradientParameters::GTSAM:      s = "GTSAM" ;      break; | ||||
|   default:                                      s = "UNDEFINED" ;  break; | ||||
|   } | ||||
|   return s; | ||||
| } | ||||
| 
 | ||||
| /*****************************************************************************/ | ||||
| ConjugateGradientParameters::BLASKernel ConjugateGradientParameters::blasTranslator(const std::string &src) { | ||||
|   std::string s = src;  boost::algorithm::to_upper(s); | ||||
|   if (s == "GTSAM")  return ConjugateGradientParameters::GTSAM; | ||||
| 
 | ||||
|   /* default is SBM */ | ||||
|   return ConjugateGradientParameters::GTSAM; | ||||
| } | ||||
| 
 | ||||
| /*****************************************************************************/ | ||||
| 
 | ||||
| /*****************************************************************************/ | ||||
| void ConjugateGradientParameters::print() const { | ||||
|    Base::print(); | ||||
|    std::cout << "ConjugateGradientParameters" << std::endl | ||||
|              << "minIter:       " << minIterations_ << std::endl | ||||
|              << "maxIter:       " << maxIterations_ << std::endl | ||||
|              << "resetIter:     " << reset_ << std::endl | ||||
|              << "eps_rel:       " << epsilon_rel_ << std::endl | ||||
|              << "eps_abs:       " << epsilon_abs_ << std::endl; | ||||
|  } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | @ -20,6 +20,7 @@ namespace gtsam { | |||
|  */ | ||||
| 
 | ||||
| class ConjugateGradientParameters : public IterativeOptimizationParameters { | ||||
| 
 | ||||
| public: | ||||
|   typedef IterativeOptimizationParameters Base; | ||||
|   typedef boost::shared_ptr<ConjugateGradientParameters> shared_ptr; | ||||
|  | @ -30,14 +31,23 @@ public: | |||
|   double epsilon_rel_;    ///< threshold for relative error decrease
 | ||||
|   double epsilon_abs_;    ///< threshold for absolute error decrease
 | ||||
| 
 | ||||
|   ConjugateGradientParameters() | ||||
|   : minIterations_(1), maxIterations_(500), reset_(501), epsilon_rel_(1e-3), epsilon_abs_(1e-3){} | ||||
|   /* Matrix Operation Kernel */ | ||||
|   enum BLASKernel { | ||||
|     GTSAM = 0,        ///< Jacobian Factor Graph of GTSAM
 | ||||
|   } blas_kernel_ ; | ||||
| 
 | ||||
|   ConjugateGradientParameters(size_t minIterations, size_t maxIterations, size_t reset, double epsilon_rel, double epsilon_abs) | ||||
|     : minIterations_(minIterations), maxIterations_(maxIterations), reset_(reset), epsilon_rel_(epsilon_rel), epsilon_abs_(epsilon_abs){} | ||||
|   ConjugateGradientParameters() | ||||
|     : minIterations_(1), maxIterations_(500), reset_(501), epsilon_rel_(1e-3), | ||||
|       epsilon_abs_(1e-3), blas_kernel_(GTSAM) {} | ||||
| 
 | ||||
|   ConjugateGradientParameters(size_t minIterations, size_t maxIterations, size_t reset, | ||||
|     double epsilon_rel, double epsilon_abs, BLASKernel blas) | ||||
|     : minIterations_(minIterations), maxIterations_(maxIterations), reset_(reset), | ||||
|       epsilon_rel_(epsilon_rel), epsilon_abs_(epsilon_abs), blas_kernel_(blas) {} | ||||
| 
 | ||||
|   ConjugateGradientParameters(const ConjugateGradientParameters &p) | ||||
|     : Base(p), minIterations_(p.minIterations_), maxIterations_(p.maxIterations_), reset_(p.reset_), epsilon_rel_(p.epsilon_rel_), epsilon_abs_(p.epsilon_abs_) {} | ||||
|     : Base(p), minIterations_(p.minIterations_), maxIterations_(p.maxIterations_), reset_(p.reset_), | ||||
|                epsilon_rel_(p.epsilon_rel_), epsilon_abs_(p.epsilon_abs_), blas_kernel_(GTSAM) {} | ||||
| 
 | ||||
|   /* general interface */ | ||||
|   inline size_t minIterations() const { return minIterations_; } | ||||
|  | @ -61,15 +71,10 @@ public: | |||
|   inline void setEpsilon_rel(double value) { epsilon_rel_ = value; } | ||||
|   inline void setEpsilon_abs(double value) { epsilon_abs_ = value; } | ||||
| 
 | ||||
|   virtual void print() const { | ||||
|     Base::print(); | ||||
|     std::cout << "ConjugateGradientParameters" << std::endl | ||||
|               << "minIter:       " << minIterations_ << std::endl | ||||
|               << "maxIter:       " << maxIterations_ << std::endl | ||||
|               << "resetIter:     " << reset_ << std::endl | ||||
|               << "eps_rel:       " << epsilon_rel_ << std::endl | ||||
|               << "eps_abs:       " << epsilon_abs_ << std::endl; | ||||
|   } | ||||
|   static std::string blasTranslator(const BLASKernel k) ; | ||||
|   static BLASKernel blasTranslator(const std::string &s) ; | ||||
| 
 | ||||
|   virtual void print() const; | ||||
| }; | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -14,7 +14,6 @@ | |||
| #include <gtsam/global_includes.h> | ||||
| 
 | ||||
| #include <string> | ||||
| #include <iostream> | ||||
| 
 | ||||
| namespace gtsam { | ||||
| 
 | ||||
|  | @ -46,9 +45,7 @@ namespace gtsam { | |||
|     inline Verbosity verbosity() const { return verbosity_; } | ||||
| 
 | ||||
|     /* matlab interface */ | ||||
|     std::string getKernel() const ; | ||||
|     std::string getVerbosity() const; | ||||
|     void setKernel(const std::string &s) ; | ||||
|     void setVerbosity(const std::string &s) ; | ||||
| 
 | ||||
|     virtual void print() const ; | ||||
|  | @ -68,9 +65,6 @@ namespace gtsam { | |||
| 
 | ||||
|     /* interface to the nonlinear optimizer  */ | ||||
|     virtual VectorValues optimize (const VectorValues &initial) = 0; | ||||
| 
 | ||||
|     /* update interface to the nonlinear optimizer  */ | ||||
|     virtual void replaceFactors(const boost::shared_ptr<GaussianFactorGraph> &factorGraph, const double lambda) {} | ||||
|   }; | ||||
| 
 | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue