Mercurial > hg > octave-nkf
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 +++ b/liboctave/Range.cc @@ -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.