![]() |
![]() |
00001 #ifndef AnnealingSchedule_H 00002 #define AnnealingSchedule_H 00003 00004 #include <vector> 00005 00006 class AnnealingSchedule { 00010 public: 00011 00012 virtual ~AnnealingSchedule() {}; 00013 virtual void anneal() = 0; //< One annealing step. 00014 virtual void resetAnnealing() = 0; 00015 00019 virtual double phi ( double chi2 ) const = 0; 00020 00024 virtual double weight ( double chi2 ) const = 0; 00025 00029 // double weight ( double chi2, const vector < double > & chi2s ) const; 00030 00034 virtual bool isAnnealed() const = 0; 00035 00036 virtual double cutoff() const = 0; 00037 virtual double currentTemp() const = 0; 00038 virtual double initialTemp() const = 0; 00039 00040 virtual void debug() const = 0; 00041 00042 virtual AnnealingSchedule * clone() const = 0; 00043 }; 00044 00045 #endif