Frobby 0.9.5
Timer.cpp
Go to the documentation of this file.
1/* Frobby: Software for monomial ideal computations.
2 Copyright (C) 2007 Bjarke Hammersholt Roune (www.broune.com)
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see http://www.gnu.org/licenses/.
16*/
17#include "stdinc.h"
18#include "Timer.h"
19
20unsigned long Timer::getMilliseconds() const {
21 const double floatSpan = clock() - _clocksAtReset;
22 const double floatMilliseconds = 1000 * (floatSpan / CLOCKS_PER_SEC);
23 unsigned long milliseconds = static_cast<unsigned long>(floatMilliseconds);
26 return milliseconds;
27}
28
29void Timer::print(FILE* out) const {
30 unsigned long milliseconds = getMilliseconds();
31 unsigned long seconds = milliseconds / 1000;
32 unsigned long minutes = seconds / 60;
33 unsigned long hours = minutes / 60;
34
35 milliseconds %= 1000;
36 seconds %= 60;
37 minutes %= 60;
38
39 fputc('(', out);
40 if (hours != 0)
41 fprintf(out, "%luh", hours);
42 if (minutes != 0 || hours != 0)
43 fprintf(out, "%lum", minutes);
44 fprintf(out, "%lu.%03lus)", seconds, milliseconds);
45}
void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
void print(FILE *out) const
Prints the elapsed time in a human readable format.
Definition Timer.cpp:29
unsigned long getMilliseconds() const
Returns the number of CPU milliseconds since the last reset.
Definition Timer.cpp:20
std::clock_t _clocksAtReset
Definition Timer.h:43