-
Notifications
You must be signed in to change notification settings - Fork 99
/
Copy pathTimeStatList.cpp
74 lines (53 loc) · 1.03 KB
/
TimeStatList.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
DDS, a bridge double dummy solver.
Copyright (C) 2006-2014 by Bo Haglund /
2014-2018 by Bo Haglund & Soren Hein.
See LICENSE and README.
*/
#include <iostream>
#include <iomanip>
#include <sstream>
#include "TimeStatList.h"
void TimeStatList::Reset()
{
}
void TimeStatList::Init(
const string& tname,
const unsigned len)
{
name = tname;
list.resize(len);
}
void TimeStatList::Add(
const unsigned pos,
const TimeStat& add)
{
list[pos] += add;
}
bool TimeStatList::Used() const
{
for (unsigned i = 0; i < list.size(); i++)
{
if (list[i].Used())
return true;
}
return false;
}
string TimeStatList::List() const
{
if (! TimeStatList::Used())
return "";
stringstream ss;
ss << name << "\n\n";
ss << list[0].Header();
TimeStat tsum;
for (unsigned i = 0; i < list.size(); i++)
{
if (! list[i].Used())
continue;
tsum += list[i];
ss << setw(5) << right << i << list[i].Line();
}
ss << setw(5) << right << "Avg" << tsum.Line() << "\n";
return ss.str();
}