From 42766f58e668556fab1ee5d2329eaa6275d3f0c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu>
Date: Tue, 4 Sep 2018 12:40:00 +0200
Subject: [PATCH] Everything working

---
 src/time_stamp.cpp | 7 +++++++
 src/time_stamp.h   | 8 +-------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/time_stamp.cpp b/src/time_stamp.cpp
index 861104832..72867409b 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 88c65a1cd..c507f437d 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
-- 
GitLab