* A simple stop watch class. */
/*
- * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
timer::timer(void) : on(false)
{
- getrusage(RUSAGE_SELF, &used1);
- getrusage(RUSAGE_SELF, &used2);
+ getrusage(RUSAGE_SELF, &used1);
+ getrusage(RUSAGE_SELF, &used2);
}
void timer::start(void)
{
- on = true;
- getrusage(RUSAGE_SELF, &used1);
- getrusage(RUSAGE_SELF, &used2);
+ on = true;
+ getrusage(RUSAGE_SELF, &used1);
+ getrusage(RUSAGE_SELF, &used2);
}
void timer::stop(void)
{
- on = false;
- getrusage(RUSAGE_SELF, &used2);
+ on = false;
+ getrusage(RUSAGE_SELF, &used2);
}
void timer::reset(void)
{
- getrusage(RUSAGE_SELF, &used1);
- getrusage(RUSAGE_SELF, &used2);
+ getrusage(RUSAGE_SELF, &used1);
+ getrusage(RUSAGE_SELF, &used2);
}
double timer::read(void)
{
- double elapsed;
- if (this->running())
- getrusage(RUSAGE_SELF, &used2);
- elapsed = ((used2.ru_utime.tv_sec - used1.ru_utime.tv_sec) +
- (used2.ru_stime.tv_sec - used1.ru_stime.tv_sec) +
- (used2.ru_utime.tv_usec - used1.ru_utime.tv_usec) / 1e6 +
- (used2.ru_stime.tv_usec - used1.ru_stime.tv_usec) / 1e6);
- // round to 10ms for safety:
- return 0.01*int(elapsed*100+0.5);
+ double elapsed;
+ if (this->running())
+ getrusage(RUSAGE_SELF, &used2);
+ elapsed = ((used2.ru_utime.tv_sec - used1.ru_utime.tv_sec) +
+ (used2.ru_stime.tv_sec - used1.ru_stime.tv_sec) +
+ (used2.ru_utime.tv_usec - used1.ru_utime.tv_usec) / 1e6 +
+ (used2.ru_stime.tv_usec - used1.ru_stime.tv_usec) / 1e6);
+ // round to 10ms for safety:
+ return 0.01*int(elapsed*100+0.5);
}
bool timer::running(void)
{
- return on;
+ return on;
}