Generated on Tue Dec 16 13:34:01 2008 for ell-3.0.0 by doxygen 1.5.1

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_*/