diff main/fixed/src/int/fixed.h @ 9481:d84d2fea3c90 octave-forge

Re-enable compilation of fixed package
author jordigh
date Wed, 22 Feb 2012 22:07:33 +0000
parents f8d77845533f
children
line wrap: on
line diff
--- a/main/fixed/src/int/fixed.h	Wed Feb 22 21:56:05 2012 +0000
+++ b/main/fixed/src/int/fixed.h	Wed Feb 22 22:07:33 2012 +0000
@@ -158,14 +158,14 @@
 
 #ifdef _MSC_VER
   FixedPoint (const long double x) { *this = FixedPoint((const double)x); }
-
-  operator double () const { return fixedpoint(); }
 #endif
 
   FixedPoint (const FixedPoint &x) : number(x.number), decsize(x.decsize),
                                      intsize(x.intsize), filter(x.filter),
                                      value(x.value) { }
 
+  operator double () const { return fixedpoint(); }
+
   // Changing FixedPoint dynamic
 
   FixedPoint chintsize (const int n) {
@@ -229,6 +229,23 @@
   
   // FixedPoint operators
 
+  friend FixedPoint operator +  (const FixedPoint &x, int y) { return x + FixedPoint (y); }
+
+  friend FixedPoint operator -  (const FixedPoint &x, int y) { return x - FixedPoint (y); }
+
+  friend FixedPoint operator *  (const FixedPoint &x, int y) { return x * FixedPoint (y); }
+
+  friend FixedPoint operator /  (const FixedPoint &x, int y) { return x / FixedPoint (y); }
+
+  friend FixedPoint operator +  (int x, const FixedPoint &y) { return FixedPoint (x) + y; }
+
+  friend FixedPoint operator -  (int x, const FixedPoint &y) { return FixedPoint (x) - y; }
+
+  friend FixedPoint operator *  (int x, const FixedPoint &y) { return FixedPoint (x) * y; }
+
+  friend FixedPoint operator /  (int x, const FixedPoint &y) { return FixedPoint (x) / y; }
+
+
   friend FixedPoint operator +  (const FixedPoint &x, const FixedPoint &y);
 
   friend FixedPoint operator -  (const FixedPoint &x, const FixedPoint &y);
@@ -243,6 +260,30 @@
   
   // FixedPoint comparators
 
+  friend OCTAVE_FIXED_API bool operator ==  (int x, const FixedPoint &y) { return FixedPoint (x) == y; }
+
+  friend OCTAVE_FIXED_API bool operator !=  (int x, const FixedPoint &y) { return FixedPoint (x) != y; }
+
+  friend OCTAVE_FIXED_API bool operator >  (int x, const FixedPoint &y) { return FixedPoint (x) > y; }
+  
+  friend OCTAVE_FIXED_API bool operator >=  (int x, const FixedPoint &y) { return FixedPoint (x) >= y; }
+  
+  friend OCTAVE_FIXED_API bool operator <  (int x, const FixedPoint &y) { return FixedPoint (x) < y; }
+  
+  friend OCTAVE_FIXED_API bool operator <=  (int x, const FixedPoint &y) { return FixedPoint (x) <= y; }
+
+  friend OCTAVE_FIXED_API bool operator ==  (const FixedPoint& y, int x) { return x == FixedPoint (y); }
+
+  friend OCTAVE_FIXED_API bool operator !=  (const FixedPoint& y, int x) { return x != FixedPoint (y); }
+
+  friend OCTAVE_FIXED_API bool operator >  (const FixedPoint& y, int x) { return x > FixedPoint (y); }
+  
+  friend OCTAVE_FIXED_API bool operator >=  (const FixedPoint& y, int x) { return x >= FixedPoint (y); }
+  
+  friend OCTAVE_FIXED_API bool operator <  (const FixedPoint& y, int x) { return x < FixedPoint (y); }
+  
+  friend OCTAVE_FIXED_API bool operator <=  (const FixedPoint& y, int x) { return x <= FixedPoint (y); }
+
   friend OCTAVE_FIXED_API bool operator ==  (const FixedPoint &x, const FixedPoint &y);
 
   friend OCTAVE_FIXED_API bool operator !=  (const FixedPoint &x, const FixedPoint &y);