src/ell/MinimumSelector.hh
Go to the documentation of this file.00001 #ifndef MINIMUMSELECTOR_HH_ 00002 #define MINIMUMSELECTOR_HH_ 00003 00004 #include "ell/LandscapeTopology.hh" 00005 00006 namespace ell 00007 { 00008 00014 class MinimumSelector 00015 { 00016 public: 00017 00019 virtual ~MinimumSelector(); 00020 00035 virtual 00036 size_t 00037 select( const LandscapeTopology* const lt 00038 , const bool minimaChanged = true ) = 0; 00039 }; 00040 00041 } // namespace ell 00042 00043 namespace ell 00044 { 00045 00052 class MS_Uniform : public MinimumSelector 00053 { 00054 public: 00055 00057 MS_Uniform(); 00058 00060 virtual ~MS_Uniform(); 00061 00074 virtual 00075 size_t 00076 select( const LandscapeTopology* const lt 00077 , const bool minimaChanged = true ); 00078 }; 00079 00080 } // namespace ell 00081 00082 namespace ell 00083 { 00084 00096 class MS_Boltzmann : public MinimumSelector 00097 { 00098 public: 00099 00104 MS_Boltzmann( const double shiftFactor = 1.0 ); 00105 00107 virtual ~MS_Boltzmann(); 00108 00122 virtual 00123 size_t 00124 select( const LandscapeTopology* const lt 00125 , const bool minimaChanged = true ); 00126 00127 protected: 00128 00131 const double shiftFactor; 00132 00135 std::vector<double> boltzWeightSum; 00136 }; 00137 00138 } // namespace ell 00139 00140 #endif /*MINIMUMSELECTOR_HH_*/