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

src/ell/SamplingAbortionCriterion.cc

Go to the documentation of this file.
00001 #include "ell/SamplingAbortionCriterion.hh"
00002 
00003 namespace ell
00004 {
00005 
00007     SamplingAbortionCriterion::~SamplingAbortionCriterion()
00009     {
00010     }
00011 
00012 } // namespace ell
00013 
00014 namespace ell
00015 {
00016 
00018     SAC_MaxIterations::
00019 	SAC_MaxIterations( const size_t maxIterations )
00020      :  MAX_ITERATIONS(maxIterations)
00021         , doneIterations(0)
00023     {
00024     }
00025     
00027     SAC_MaxIterations::~SAC_MaxIterations()
00029     {
00030     }
00031     
00032     
00034     bool
00035     SAC_MaxIterations::
00036 	abortSampling( const LandscapeTopology* const lt
00037                     , const bool ltChanged )
00039     {
00040         doneIterations++;
00041         return doneIterations > MAX_ITERATIONS;
00042     }
00043 
00044     
00046     void
00047     SAC_MaxIterations::
00048 	reset( void )
00050     {
00051         doneIterations = 0;
00052     }
00053 
00054 } // namespace ell
00055 
00056 
00057 
00058 namespace ell
00059 {
00060 
00062     SAC_MaxNoChange::
00063 	SAC_MaxNoChange( const size_t maxNoChangeIterations )
00064      :  MAX_NO_CHANGE_ITERATIONS(maxNoChangeIterations)
00065         , iterationsWithoutChange(0)
00067     {
00068     }
00069     
00071     SAC_MaxNoChange::~SAC_MaxNoChange()
00073     {
00074     }
00075     
00076     
00078     bool
00079     SAC_MaxNoChange::
00080 	abortSampling( const LandscapeTopology* const lt
00081                     , const bool ltChanged )
00083     {
00084           // check if lt was changed
00085         if ( ltChanged ) {
00086             iterationsWithoutChange = 0;
00087         } else {
00088             iterationsWithoutChange++;
00089         }
00090         return iterationsWithoutChange >= MAX_NO_CHANGE_ITERATIONS;
00091     }
00092 
00093     
00095     void
00096     SAC_MaxNoChange::
00097 	reset( void )
00099     {
00100         iterationsWithoutChange = 0;
00101     }
00102 
00103 } // namespace ell
00104 
00105 namespace ell
00106 {
00107 
00109     SAC_NoMinimaChange::
00110 	SAC_NoMinimaChange( const size_t maxNoChangeIterations )
00111      :  MAX_NO_CHANGE_ITERATIONS(maxNoChangeIterations)
00112         , iterationsWithoutChange(0)
00113         , lastNumOfMinima(0)
00115     {
00116     }
00117     
00119     SAC_NoMinimaChange::~SAC_NoMinimaChange()
00121     {
00122     }
00123     
00124     
00126     bool
00127     SAC_NoMinimaChange::
00128 	abortSampling( const LandscapeTopology* const lt
00129                     , const bool ltChanged )
00131     {
00132           // check if minima number has changed
00133         if (!ltChanged || lt->getMinCount() == lastNumOfMinima) {
00134             iterationsWithoutChange++;
00135         } else {
00136               // minima number has changed --> update counter
00137             iterationsWithoutChange = 0;
00138             lastNumOfMinima = lt->getMinCount();
00139         }
00140         return iterationsWithoutChange >= MAX_NO_CHANGE_ITERATIONS;
00141     }
00142 
00143     
00145     void
00146     SAC_NoMinimaChange::
00147 	reset( void )
00149     {
00150         iterationsWithoutChange = 0;
00151         lastNumOfMinima = 0;
00152     }
00153 
00154 } // namespace ell
00155 
00156