00001 #ifndef __F_BB_NLS_H__ 00002 #define __F_BB_NLS_H__ 00003 00004 00031 #include <stdio.h> 00032 #include "F_IterativeNonLS.hpp" 00033 00034 00035 class F_BB_NLS : public F_IterativeNonLS 00036 { 00037 private: 00038 00039 double alpha; 00040 00041 FloatVector* gk; 00042 FloatVector* d; 00043 00044 FloatVector* yk; 00045 00046 protected: 00047 00048 virtual FloatVector* singleSolve(AbsFObjectiveFn* fn, FloatVector* x=0); 00049 00050 public: 00051 F_BB_NLS(int maxIterations, double epsilon=1.0e-4):F_IterativeNonLS(maxIterations, epsilon) 00052 { d=gk=yk= 0; alpha=1.0;} 00053 virtual ~F_BB_NLS(){} 00054 00055 virtual FloatVector* solve(AbsFObjectiveFn* fn, FloatVector* x=0); 00056 }; 00057 00058 #endif 00059