wall_clock_meat.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 inline
00021 wall_clock::wall_clock()
00022 : valid(false)
00023 {
00024 arma_extra_debug_sigprint();
00025 }
00026
00027
00028
00029 inline
00030 wall_clock::~wall_clock()
00031 {
00032 arma_extra_debug_sigprint();
00033 }
00034
00035
00036
00037 inline
00038 void
00039 wall_clock::tic()
00040 {
00041 arma_extra_debug_sigprint();
00042
00043 #if defined(ARMA_USE_BOOST)
00044 {
00045 boost_time1 = boost::posix_time::microsec_clock::local_time();
00046 }
00047 #else
00048 {
00049 gettimeofday(&posix_time1, 0);
00050 }
00051 #endif
00052
00053 valid = true;
00054 }
00055
00056
00057
00058 inline
00059 double
00060 wall_clock::toc()
00061 {
00062 arma_extra_debug_sigprint();
00063
00064 if(valid)
00065 {
00066 #if defined(ARMA_USE_BOOST)
00067 {
00068 boost_duration = boost::posix_time::microsec_clock::local_time() - boost_time1;
00069 return boost_duration.total_microseconds() * 1e-6;
00070 }
00071 #else
00072 {
00073 gettimeofday(&posix_time2, 0);
00074
00075 const double tmp_time1 = posix_time1.tv_sec + posix_time1.tv_usec * 1.0e-6;
00076 const double tmp_time2 = posix_time2.tv_sec + posix_time2.tv_usec * 1.0e-6;
00077
00078 return tmp_time2 - tmp_time1;
00079 }
00080 #endif
00081 }
00082 else
00083 {
00084 return 0.0;
00085 }
00086 }
00087
00088
00089