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 00039 class SA_All : public StateAcceptor 00040 { 00041 public: 00042 00043 virtual ~SA_All() {}; 00044 00051 virtual bool accept( 00052 const StateCollector* const sc, 00053 const State& succ) const; 00054 }; 00055 00063 class SA_E_Eq : public StateAcceptor 00064 { 00065 public: 00066 00067 virtual ~SA_E_Eq() {} 00068 00076 virtual bool accept( 00077 const StateCollector* const sc, 00078 const State& succ) const; 00079 }; 00080 00088 class SA_E_Gr : public StateAcceptor 00089 { 00090 public: 00091 00092 virtual ~SA_E_Gr() {} 00093 00101 virtual bool accept( 00102 const StateCollector* const sc, 00103 const State& succ) const; 00104 }; 00105 00113 class SA_E_GrEq : public StateAcceptor 00114 { 00115 public: 00116 00117 virtual ~SA_E_GrEq () {}; 00118 00126 virtual bool accept( 00127 const StateCollector* const sc, 00128 const State& succ) const; 00129 }; 00130 00138 class SA_E_Le : public StateAcceptor 00139 { 00140 public: 00141 00142 virtual ~SA_E_Le() {} 00143 00151 virtual bool accept( 00152 const StateCollector* const sc, 00153 const State& succ) const; 00154 }; 00155 00163 class SA_E_LeEq : public StateAcceptor 00164 { 00165 public: 00166 00167 virtual ~SA_E_LeEq() {} 00168 00176 virtual bool accept( 00177 const StateCollector* const sc, 00178 const State& succ) const; 00179 }; 00180 00192 class SA_EC_Le : public StateAcceptor 00193 { 00194 public: 00195 00196 virtual ~SA_EC_Le() {} 00197 00207 virtual bool accept( 00208 const StateCollector* const sc, 00209 const State& succ) const; 00210 }; 00211 00219 class SA_Metropolis : public StateAcceptor { 00220 protected: 00221 const double beta; 00222 00223 public: 00224 SA_Metropolis(const double _beta); 00225 00226 virtual ~SA_Metropolis() {} 00227 00235 virtual bool accept( 00236 const StateCollector* const sc, 00237 const State& succ) const; 00238 }; 00239 00240 } // namespace ell 00241 00242 #endif /*STATEACCEPTOR_HH_*/