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 size_t 00024 WAC_MaxLength::getMaxLength(void) const { 00025 return maxStates; 00026 } 00027 00028 void 00029 WAC_MaxLength::setMaxLength(size_t maxLength) { 00030 maxStates = maxLength; 00031 } 00032 00034 00035 00036 WAC_MaxEnergy::WAC_MaxEnergy(const double max) 00037 : maxEnergy(max) 00038 {} 00039 00040 bool 00041 WAC_MaxEnergy::abort(StateCollector* sc) const 00042 { 00043 if (sc->getLastAdded()->getEnergy() >= maxEnergy) 00044 return true; 00045 else 00046 return false; 00047 } 00048 00049 00051 00052 00053 WAC_MinEnergy::WAC_MinEnergy(const double min) 00054 : minEnergy(min) 00055 {} 00056 00057 bool 00058 WAC_MinEnergy::abort(StateCollector* sc) const 00059 { 00060 if (sc->getLastAdded()->getEnergy() <= minEnergy) 00061 return true; 00062 else 00063 return false; 00064 } 00065 00066 00068 00069 00070 WAC_OpenEnd::WAC_OpenEnd() 00071 {} 00072 00073 bool 00074 WAC_OpenEnd::abort(StateCollector* sc) const 00075 { 00076 return false; 00077 } 00078 00079 00081 00082 WAC_OR::WAC_OR( const WalkAbortionCriterion& _wac_a, 00083 const WalkAbortionCriterion& _wac_b) 00084 : wac_a(_wac_a), wac_b(_wac_b) 00085 {} 00086 00087 bool 00088 WAC_OR::abort(StateCollector* sc) const 00089 { 00090 return (wac_a.abort(sc) || wac_b.abort(sc)); 00091 } 00092 00093 } // namespace ell