gtsam
3rdparty
Eigen
bench
btl
generic_bench
timers
STL_timer.hh
Go to the documentation of this file.
1
//=====================================================
2
// File : STL_Timer.hh
3
// Author : L. Plagne <laurent.plagne@edf.fr)>
4
// Copyright (C) EDF R&D, mar déc 3 18:59:35 CET 2002
5
//=====================================================
6
//
7
// This program is free software; you can redistribute it and/or
8
// modify it under the terms of the GNU General Public License
9
// as published by the Free Software Foundation; either version 2
10
// of the License, or (at your option) any later version.
11
//
12
// This program is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
// GNU General Public License for more details.
16
// You should have received a copy of the GNU General Public License
17
// along with this program; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
//
20
// STL Timer Class. Adapted (L.P.) from the timer class by Musser et Al
21
// described int the Book : STL Tutorial and reference guide.
22
// Define a timer class for analyzing algorithm performance.
23
#include <iostream>
24
#include <iomanip>
25
#include <vector>
26
#include <map>
27
#include <algorithm>
28
using namespace
std
;
29
30
class
STL_Timer
{
31
public
:
32
STL_Timer
(){
baseline
=
false
; };
// Default constructor
33
// Start a series of r trials:
34
void
start
(
unsigned
int
r){
35
reps = r;
36
count = 0;
37
iterations.clear();
38
iterations.reserve(reps);
39
initial
=
time
(0);
40
};
41
// Start a series of r trials to determine baseline time:
42
void
start_baseline
(
unsigned
int
r)
43
{
44
baseline
=
true
;
45
start(r);
46
}
47
// Returns true if the trials have been completed, else false
48
bool
check
()
49
{
50
++count;
51
final
=
time
(0);
52
if
(
initial
<
final
) {
53
iterations.push_back(count);
54
initial
=
final
;
55
count = 0;
56
}
57
return
(iterations.size() < reps);
58
};
59
// Returns the results for external use
60
double
get_time
(
void
)
61
{
62
sort(iterations.begin(), iterations.end());
63
return
1.0/iterations[reps/2];
64
};
65
private
:
66
unsigned
int
reps;
// Number of trials
67
// For storing loop iterations of a trial
68
vector<long>
iterations
;
69
// For saving initial and final times of a trial
70
time_t
initial
,
final
;
71
// For counting loop iterations of a trial
72
unsigned
long
count
;
73
// true if this is a baseline computation, false otherwise
74
bool
baseline
;
75
// For recording the baseline time
76
double
baseline_time
;
77
};
78
STL_Timer::baseline
bool baseline
Definition:
STL_timer.hh:74
STL_Timer::count
unsigned long count
Definition:
STL_timer.hh:72
STL_Timer::check
bool check()
Definition:
STL_timer.hh:48
STL_Timer::initial
time_t initial
Definition:
STL_timer.hh:70
time
#define time
Definition:
timeAdaptAutoDiff.cpp:31
STL_Timer::start
void start(unsigned int r)
Definition:
STL_timer.hh:34
std
Definition:
BFloat16.h:88
baseline
const double baseline
Definition:
testSmartStereoFactor_iSAM2.cpp:51
STL_Timer::get_time
double get_time(void)
Definition:
STL_timer.hh:60
initial
Definition:
testScenarioRunner.cpp:148
STL_Timer
Definition:
STL_timer.hh:30
STL_Timer::STL_Timer
STL_Timer()
Definition:
STL_timer.hh:32
STL_Timer::baseline_time
double baseline_time
Definition:
STL_timer.hh:76
STL_Timer::iterations
vector< long > iterations
Definition:
STL_timer.hh:68
STL_Timer::start_baseline
void start_baseline(unsigned int r)
Definition:
STL_timer.hh:42
gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:14:03