base: add some mathematical operators to Cycles class
authorNilay Vaish <nilay@cs.wisc.edu>
Mon, 11 Feb 2013 03:26:23 +0000 (21:26 -0600)
committerNilay Vaish <nilay@cs.wisc.edu>
Mon, 11 Feb 2013 03:26:23 +0000 (21:26 -0600)
src/base/types.hh

index 7f4375048e473ef8012ec6f730d4ea998ed2ebe2..b4cb69a0c24bd0f414e2b51b053e09b1b6a186a5 100644 (file)
@@ -113,6 +113,18 @@ class Cycles
     bool operator>(const Cycles& cc) const
     { return c > cc.c; }
 
+    const Cycles operator +(const Cycles& b) const
+    { return Cycles(c + b.c); }
+
+    const Cycles operator -(const Cycles& b) const
+    { assert(c >= b.c); return Cycles(c - b.c); }
+
+    const Cycles operator <<(const int32_t shift)
+    { return Cycles(c << shift); }
+
+    const Cycles operator >>(const int32_t shift)
+    { return Cycles(c >> shift); }
+
 #endif // SWIG not touching operators
 
 };