00001 00002 #ifndef QMCLinearizeStepLength_H 00003 #define QMCLinearizeStepLength_H 00004 00005 #include <iostream> 00006 00007 #include "IeeeMath.h" 00008 #include "QMCLineSearchStepLengthSelectionAlgorithm.h" 00009 00010 using namespace std; 00011 00012 class QMCLinearizeStepLength : 00013 public QMCLineSearchStepLengthSelectionAlgorithm 00014 { 00015 public: 00016 QMCLinearizeStepLength() 00017 { 00018 00019 } 00020 00021 bool isLinear(int ai); 00022 00034 double rescalingJCP(); 00035 00047 double rescalingPRL(); 00048 00049 double stepLength(QMCObjectiveFunction *function, 00050 Array1D<double> & delta_x, 00051 Array1D<double> & unused1, 00052 Array1D<double> & unused2, 00053 Array2D<double> & overlap, 00054 double ksi); 00055 private: 00056 bool verbose; 00057 double ksi; 00058 Array1D<double> dp; 00059 Array2D<double> S; 00060 00061 }; 00062 00063 #endif