00001 #ifndef PLAYA_STEEPESTDESCENT_H 00002 #define PLAYA_STEEPESTDESCENT_H 00003 00004 00005 #include "PlayaLineSearchBasedOptBase.hpp" 00006 00007 00008 namespace Playa 00009 { 00016 class SteepestDescent : public LineSearchBasedOptBase 00017 { 00018 public: 00020 SteepestDescent(const ParameterList& params); 00021 00023 std::string description() const {return "SteepestDescent";} 00024 00026 RCP<DirectionGeneratorBase> makeDirectionGenerator() const ; 00027 }; 00028 00030 class SteepestDescentDirection : public DirectionGeneratorBase 00031 { 00032 public: 00034 SteepestDescentDirection() {} 00035 00037 ~SteepestDescentDirection() {} 00038 00040 bool generateDirection(const RCP<ObjectiveBase>& obj, 00041 const Vector<double>& xCur, 00042 const Vector<double>& gradCur, 00043 const double& fCur, 00044 Vector<double>& p) ; 00045 }; 00046 00047 } 00048 00049 #endif