src/ell/WalkAbortionCriterion.cc
Go to the documentation of this file.00001 00002 #include "ell/WalkAbortionCriterion.hh" 00003 00004 namespace ell { 00005 00006 00008 00009 00010 WAC_MaxLength::WAC_MaxLength(const size_t max) 00011 : maxStates(max) 00012 {} 00013 00014 bool 00015 WAC_MaxLength::abort(StateCollector* sc) const 00016 { 00017 if (sc->size() > maxStates) 00018 return true; 00019 else 00020 return false; 00021 } 00022 00023 00025 00026 00027 WAC_MaxEnergy::WAC_MaxEnergy(const double max) 00028 : maxEnergy(max) 00029 {} 00030 00031 bool 00032 WAC_MaxEnergy::abort(StateCollector* sc) const 00033 { 00034 if (sc->getLastAdded()->getEnergy() >= maxEnergy) 00035 return true; 00036 else 00037 return false; 00038 } 00039 00040 00042 00043 00044 WAC_MinEnergy::WAC_MinEnergy(const double min) 00045 : minEnergy(min) 00046 {} 00047 00048 bool 00049 WAC_MinEnergy::abort(StateCollector* sc) const 00050 { 00051 if (sc->getLastAdded()->getEnergy() <= minEnergy) 00052 return true; 00053 else 00054 return false; 00055 } 00056 00057 00059 00060 00061 WAC_OpenEnd::WAC_OpenEnd() 00062 {} 00063 00064 bool 00065 WAC_OpenEnd::abort(StateCollector* sc) const 00066 { 00067 return false; 00068 } 00069 00070 00072 00073 WAC_OR::WAC_OR( const WalkAbortionCriterion& _wac_a, 00074 const WalkAbortionCriterion& _wac_b) 00075 : wac_a(_wac_a), wac_b(_wac_b) 00076 {} 00077 00078 bool 00079 WAC_OR::abort(StateCollector* sc) const 00080 { 00081 return (wac_a.abort(sc) || wac_b.abort(sc)); 00082 } 00083 00084 } // namespace ell