Wall_clock


Classes

class  wall_clock
 Class for measuring time intervals. More...

Functions

 wall_clock::wall_clock ()
 wall_clock::~wall_clock ()
void wall_clock::tic ()
 start the timer
double wall_clock::toc ()
 return the number of seconds since the last call to tic()

Function Documentation

wall_clock::wall_clock (  )  [inline, inherited]

Definition at line 21 of file wall_clock_meat.hpp.

00022   : valid(false)
00023   {
00024   arma_extra_debug_sigprint();
00025   }

wall_clock::~wall_clock (  )  [inline, inherited]

Definition at line 30 of file wall_clock_meat.hpp.

00031   {
00032   arma_extra_debug_sigprint();
00033   }

void wall_clock::tic (  )  [inline, inherited]

start the timer

Definition at line 39 of file wall_clock_meat.hpp.

References arma_stop(), boost_time1, posix_time1, and valid.

00040   {
00041   arma_extra_debug_sigprint();
00042   
00043   #if defined(ARMA_USE_BOOST_DATE)
00044     {
00045     boost_time1 = boost::posix_time::microsec_clock::local_time();
00046     valid = true;
00047     }
00048   #else
00049     #if defined(ARMA_HAVE_GETTIMEOFDAY)
00050       {
00051       gettimeofday(&posix_time1, 0);
00052       valid = true;
00053       }
00054     #else
00055       {
00056       arma_stop("wall_clock::tic(): need Boost libraries or POSIX gettimeofday()");
00057       }
00058     #endif
00059   #endif
00060   }

double wall_clock::toc (  )  [inline, inherited]

return the number of seconds since the last call to tic()

Definition at line 66 of file wall_clock_meat.hpp.

References arma_stop(), boost_duration, boost_time1, posix_time1, posix_time2, and valid.

00067   {
00068   arma_extra_debug_sigprint();
00069   
00070   if(valid)
00071     {
00072     #if defined(ARMA_USE_BOOST_DATE)
00073       {
00074       boost_duration = boost::posix_time::microsec_clock::local_time() - boost_time1;
00075       return boost_duration.total_microseconds() * 1e-6;
00076       }
00077     #else
00078       #if defined(ARMA_HAVE_GETTIMEOFDAY)
00079         {
00080         gettimeofday(&posix_time2, 0);
00081         
00082         const double tmp_time1 = posix_time1.tv_sec + posix_time1.tv_usec * 1.0e-6;
00083         const double tmp_time2 = posix_time2.tv_sec + posix_time2.tv_usec * 1.0e-6;
00084         
00085         return tmp_time2 - tmp_time1;
00086         }
00087       #else
00088         {
00089         arma_stop("wall_clock::toc(): need Boost libraries or POSIX gettimeofday()");
00090         return 0.0;
00091         }
00092       #endif
00093     #endif
00094     }
00095   else
00096     {  
00097     return 0.0;
00098     }
00099   }