00001 #ifndef __FDennisSchnabelLineSearch_H__ 00002 #define __FDennisSchnabelLineSearch_H__ 00003 00004 00037 #include "AbsFLineSearch.hpp" 00038 #include "AFSymMatrix.hpp" 00039 00040 class FDennisSchnabelLineSearch : public AbsFLineSearch 00041 { 00042 private: 00043 00044 double c1; 00045 double c2; 00046 00047 FloatVector* xd; 00048 FloatVector* f1; 00049 00050 protected: 00051 00052 virtual double zoom(AbsFObjectiveFn* fn, FloatVector* x, double alpha, FloatVector* d); 00053 00054 public: 00055 FDennisSchnabelLineSearch(int maxIterations, double ac1=0.0001, double c2=0.9, double epsilon=1.0e-4) 00056 :AbsFLineSearch(maxIterations, epsilon) 00057 {f1=0; xd=0; alpha=aalpha; s=as;} 00058 virtual ~FDennisSchnabelLineSearch(){} 00059 00060 virtual double find(FloatVector* x, AbsFObjectiveFn* fn, FloatVector* d); 00061 }; 00062 00063 #endif 00064