00001 #ifndef PLAYA_SIMPLEBACKTRACKING_H 00002 #define PLAYA_SIMPLEBACKTRACKING_H 00003 00004 00005 #include "PlayaLineSearchBase.hpp" 00006 00007 namespace Playa 00008 { 00009 /** 00010 * Simple backtracking line search 00011 */ 00012 class SimpleBacktracking : public LineSearchBase 00013 { 00014 public: 00015 /** */ 00016 SimpleBacktracking(const ParameterList& params); 00017 00018 /** */ 00019 LineSearchStatus search(const RCP<ObjectiveBase>& obj, 00020 const Vector<double>& x0, 00021 const double& f0, 00022 const Vector<double>& direction, 00023 const double& alphaMax, 00024 Vector<double>& xn, 00025 Vector<double>& gradF, 00026 double& fVal) const ; 00027 00028 /** */ 00029 std::string description() const ; 00030 00031 /** */ 00032 void print(std::ostream& os) const 00033 {os << description();} 00034 private: 00035 00036 }; 00037 } 00038 00039 #endif