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;
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
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