Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

LogCounter.h

Go to the documentation of this file.
00001 #ifndef LOGCOUNTER_H
00002 #define LOGCOUNTER_H
00003 
00004 #include <math.h>
00005 
00006 class LogCounter 
00007 {
00008  public:
00009   
00010   LogCounter(double scale=10) { fCount = 0; fCurrentBreak=-1; fNextBreak = 0; fScale = scale; Test(); };  
00011   bool        Increment(void) { fCount++; return Test(); };
00012   bool Test(void);
00013         
00014   int    fCount;
00015   int    fCurrentBreak;
00016   int    fNextBreak;
00017   double fScale;
00018 };
00019 
00020 bool LogCounter::Test(void)
00021 {
00022   if(fCount==fCurrentBreak) return true;
00023   if(fCount>=fNextBreak) {
00024     fCurrentBreak = fNextBreak;
00025     if(fCount==0) fNextBreak = 1;
00026     else fNextBreak = (int) pow(10,log10((double)fCount)+0.1);
00027     return true;
00028   }
00029   return false;
00030 }
00031 #endif

Generated on Mon Feb 15 11:06:53 2010 for loon by  doxygen 1.3.9.1