diff --git a/src/time_stamp.cpp b/src/time_stamp.cpp index 861104832b76751b1034ce36c4c794efae2d0454..72867409bdd7613b2675b56478ae751f634429e3 100644 --- a/src/time_stamp.cpp +++ b/src/time_stamp.cpp @@ -73,6 +73,13 @@ TimeStamp TimeStamp::operator -(const Scalar& dt) const return ts; } +inline void TimeStamp::operator -=(const Scalar& dt) +{ + unsigned long int dt_nano = (unsigned long int)(dt*NANOSECS); + //time_stamp_ -= dt; + time_stamp_nano_ = (dt_nano > time_stamp_nano_ ? 0 : time_stamp_nano_ - dt_nano); +} + void TimeStamp::print(std::ostream & ost) const { //std::streamsize nn; diff --git a/src/time_stamp.h b/src/time_stamp.h index 88c65a1cd4387ab049e9a78300932e893d3d5dc5..c507f437dbfd85faf5eee5b8cb40fea08d90cddb 100644 --- a/src/time_stamp.h +++ b/src/time_stamp.h @@ -267,13 +267,7 @@ inline bool TimeStamp::operator >=(const TimeStamp& ts) const inline void TimeStamp::operator +=(const Scalar& dt) { //time_stamp_ += dt; - time_stamp_nano_ += (unsigned long int)(dt*1e9); -} - -inline void TimeStamp::operator -=(const Scalar& dt) -{ - //time_stamp_ -= dt; - time_stamp_nano_ -= (unsigned long int)(dt*1e9); + time_stamp_nano_ += (unsigned long int)(dt*NANOSECS); } inline Scalar TimeStamp::operator -(const TimeStamp& ts) const