diff liboctave/Range.cc @ 8553:c7ff200e45f5

optimize range-scalar ops
author Jaroslav Hajek <highegg@gmail.com>
date Wed, 21 Jan 2009 15:50:34 +0100
parents 36594d5bbe13
children 4a864c4e682d
line wrap: on
line diff
--- a/liboctave/Range.cc	Wed Jan 21 14:54:20 2009 +0100
+++ b/liboctave/Range.cc	Wed Jan 21 15:50:34 2009 +0100
@@ -294,6 +294,37 @@
   return Range (-r.base (), -r.limit (), -r.inc ());
 }
 
+Range operator + (double x, const Range& r)
+{
+  return Range (x + r.base (), x + r.limit (), r.inc ());
+}
+
+Range operator + (const Range& r, double x)
+{
+  return Range (r.base () + x, r.limit () + x, r.inc ());
+}
+
+Range operator - (double x, const Range& r)
+{
+  return Range (x - r.base (), x - r.limit (), -r.inc ());
+}
+
+Range operator - (const Range& r, double x)
+{
+  return Range (r.base () - x, r.limit () - x, r.inc ());
+}
+
+Range operator * (double x, const Range& r)
+{
+  return Range (x * r.base (), x * r.limit (), x * r.inc ());
+}
+
+Range operator * (const Range& r, double x)
+{
+  return Range (r.base () * x, r.limit () * x, r.inc () * x);
+}
+
+
 // C  See Knuth, Art Of Computer Programming, Vol. 1, Problem 1.2.4-5.
 // C
 // C===Tolerant FLOOR function.