11 #ifndef EIGEN_BENCH_TIMERR_H
12 #define EIGEN_BENCH_TIMERR_H
14 #if defined(_WIN32) || defined(__CYGWIN__)
17 #define EIGEN_BT_UNDEF_NOMINMAX
19 #ifndef WIN32_LEAN_AND_MEAN
20 #define WIN32_LEAN_AND_MEAN
21 #define EIGEN_BT_UNDEF_WIN32_LEAN_AND_MEAN
24 #elif defined(__APPLE__)
25 #include <mach/mach_time.h>
31 #if EIGEN_COMP_GNUC || EIGEN_COMP_CLANG
32 asm volatile(
"" : :
"g"(
p) :
"memory");
37 #if EIGEN_COMP_GNUC || EIGEN_COMP_CLANG
38 asm volatile(
"" : : :
"memory");
58 #if defined(_WIN32) || defined(__CYGWIN__)
60 QueryPerformanceFrequency(&freq);
61 m_frequency = (
double)freq.QuadPart;
80 #if EIGEN_VERSION_AT_LEAST(2, 90, 0)
110 LARGE_INTEGER query_ticks;
111 QueryPerformanceCounter(&query_ticks);
112 return query_ticks.QuadPart / m_frequency;
114 return double(mach_absolute_time()) * 1
e-9;
117 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts);
126 return (
double)st.wSecond + 1.e-3 * (
double)st.wMilliseconds;
128 return double(mach_absolute_time()) * 1
e-9;
131 clock_gettime(CLOCK_REALTIME, &ts);
137 #if defined(_WIN32) || defined(__CYGWIN__)
150 #define BENCH(TIMER, TRIES, REP, CODE) \
153 for (int uglyvarname1 = 0; uglyvarname1 < TRIES; ++uglyvarname1) { \
155 for (int uglyvarname2 = 0; uglyvarname2 < REP; ++uglyvarname2) { \
166 #ifdef EIGEN_BT_UNDEF_NOMINMAX
167 #undef EIGEN_BT_UNDEF_NOMINMAX
171 #ifdef EIGEN_BT_UNDEF_WIN32_LEAN_AND_MEAN
172 #undef EIGEN_BT_UNDEF_WIN32_LEAN_AND_MEAN
173 #undef WIN32_LEAN_AND_MEAN
static void clobber()
Definition: BenchTimer.h:36
static void escape(void *p)
Definition: BenchTimer.h:30
Array< double, 1, 3 > e(1./3., 0.5, 2.)
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: Memory.h:879
float * p
Definition: Tutorial_Map_using.cpp:9
Definition: BenchTimer.h:55
BenchTimer()
Definition: BenchTimer.h:57
Vector2d m_totals
Definition: BenchTimer.h:144
double value(int TIMER=CPU_TIMER) const
Definition: BenchTimer.h:94
void reset()
Definition: BenchTimer.h:68
void stop()
Definition: BenchTimer.h:77
Vector2d m_times
Definition: BenchTimer.h:141
double getCpuTime() const
Definition: BenchTimer.h:108
Vector2d m_bests
Definition: BenchTimer.h:142
void start()
Definition: BenchTimer.h:73
Vector2d m_worsts
Definition: BenchTimer.h:143
~BenchTimer()
Definition: BenchTimer.h:66
Vector2d m_starts
Definition: BenchTimer.h:140
double worst(int TIMER=CPU_TIMER) const
Definition: BenchTimer.h:102
double best(int TIMER=CPU_TIMER) const
Definition: BenchTimer.h:98
double getRealTime() const
Definition: BenchTimer.h:122
double total(int TIMER=CPU_TIMER) const
Definition: BenchTimer.h:106
#define min(a, b)
Definition: datatypes.h:22
#define max(a, b)
Definition: datatypes.h:23
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
@ REAL_TIMER
Definition: BenchTimer.h:46
@ CPU_TIMER
Definition: BenchTimer.h:46