X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=check%2Ftimer.cpp;h=2a11872de77501d062d50501833972fa42b1f2b5;hp=c4c21a30ec3d37f665c5e15e28a891ba7bbee6e7;hb=fa048d7e0e3c7bcde12f0c7d3d3c428fc9782884;hpb=f4ea690a3f118bf364190f0ef3c3f6d2ccdf6206;ds=sidebyside diff --git a/check/timer.cpp b/check/timer.cpp index c4c21a30..2a11872d 100644 --- a/check/timer.cpp +++ b/check/timer.cpp @@ -3,7 +3,7 @@ * A simple stop watch class. */ /* - * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 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 @@ -20,47 +20,51 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "times.h" +#include +#include +#include -timer::timer(void) : on(false) +#include "timer.h" + +timer::timer() : on(false) { - getrusage(RUSAGE_SELF, &used1); - getrusage(RUSAGE_SELF, &used2); + getrusage(RUSAGE_SELF, &used1); + getrusage(RUSAGE_SELF, &used2); } -void timer::start(void) +void timer::start() { - on = true; - getrusage(RUSAGE_SELF, &used1); - getrusage(RUSAGE_SELF, &used2); + on = true; + getrusage(RUSAGE_SELF, &used1); + getrusage(RUSAGE_SELF, &used2); } -void timer::stop(void) +void timer::stop() { - on = false; - getrusage(RUSAGE_SELF, &used2); + on = false; + getrusage(RUSAGE_SELF, &used2); } -void timer::reset(void) +void timer::reset() { - getrusage(RUSAGE_SELF, &used1); - getrusage(RUSAGE_SELF, &used2); + getrusage(RUSAGE_SELF, &used1); + getrusage(RUSAGE_SELF, &used2); } -double timer::read(void) +double timer::read() { - 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) +bool timer::running() { - return on; + return on; }