src/ell/StateAcceptor.hh
Go to the documentation of this file.00001 #ifndef STATEACCEPTOR_HH_
00002 #define STATEACCEPTOR_HH_
00003
00004
00005 #include "ell/State.hh"
00006 #include "ell/StateCollector.hh"
00007
00008 namespace ell {
00015 class StateAcceptor
00016 {
00017 public:
00018
00019 virtual ~StateAcceptor(){};
00020
00028 virtual bool accept(
00029 const StateCollector* const sc,
00030 const State& succ) const = 0;
00031 };
00032
00038 class SA_All : public StateAcceptor
00039 {
00040 public:
00041
00042 virtual ~SA_All() {};
00043
00050 virtual bool accept(
00051 const StateCollector* const sc,
00052 const State& succ) const;
00053 };
00054
00062 class SA_Le : public StateAcceptor
00063 {
00064 public:
00065
00066 virtual ~SA_Le() {}
00067
00075 virtual bool accept(
00076 const StateCollector* const sc,
00077 const State& succ) const;
00078 };
00079
00086 class SA_E_Eq : public StateAcceptor
00087 {
00088 public:
00089
00090 virtual ~SA_E_Eq() {}
00091
00099 virtual bool accept(
00100 const StateCollector* const sc,
00101 const State& succ) const;
00102 };
00103
00110 class SA_E_Gr : public StateAcceptor
00111 {
00112 public:
00113
00114 virtual ~SA_E_Gr() {}
00115
00123 virtual bool accept(
00124 const StateCollector* const sc,
00125 const State& succ) const;
00126 };
00127
00135 class SA_E_GrEq : public StateAcceptor
00136 {
00137 public:
00138
00139 virtual ~SA_E_GrEq () {};
00140
00148 virtual bool accept(
00149 const StateCollector* const sc,
00150 const State& succ) const;
00151 };
00152
00160 class SA_E_Le : public StateAcceptor
00161 {
00162 public:
00163
00164 virtual ~SA_E_Le() {}
00165
00173 virtual bool accept(
00174 const StateCollector* const sc,
00175 const State& succ) const;
00176 };
00177
00185 class SA_E_LeEq : public StateAcceptor
00186 {
00187 public:
00188
00189 virtual ~SA_E_LeEq() {}
00190
00198 virtual bool accept(
00199 const StateCollector* const sc,
00200 const State& succ) const;
00201 };
00202
00203
00210 class SA_Max_E : public StateAcceptor
00211 {
00212 public:
00213
00216 SA_Max_E( const double MAX_ENERGY );
00217
00218 virtual ~SA_Max_E() {}
00219
00226 virtual bool accept(
00227 const StateCollector* const sc,
00228 const State& succ) const;
00229
00230 protected:
00231
00233 const double MAX_ENERGY;
00234 };
00235
00236
00247 class SA_Metropolis : public StateAcceptor {
00248 protected:
00249
00252 const double kT;
00253
00254 public:
00255
00259 SA_Metropolis(const double kT);
00260
00261 virtual ~SA_Metropolis() {}
00262
00270 virtual bool accept(
00271 const StateCollector* const sc,
00272 const State& succ) const;
00273 };
00274
00275 }
00276
00277 #endif