namespace std { namespace decimal { class decimal32 { public: typedef float __dec32 __attribute__((mode(SD))); decimal32 () : __val(0.e-101DF) {} decimal32 (__dec32 x) : __val(x) {} __dec32 __val; }; class decimal64 { public: typedef float __dec64 __attribute__((mode(DD))); decimal64 () : __val(0.e-398dd) {} decimal64 (__dec64 x) : __val(x) {} __dec64 __val; }; class decimal128 { public: typedef float __dec128 __attribute__((mode(TD))); decimal128 () : __val(0.e-6176DL) {} decimal128 (__dec128 x) : __val(x) {} __dec128 __val; }; inline decimal32 operator+ (decimal32 lhs, decimal32 rhs) { decimal32 tmp; tmp.__val = lhs.__val + rhs.__val; return tmp; } inline decimal64 operator+ (decimal64 lhs, decimal64 rhs) { decimal64 tmp; tmp.__val = lhs.__val + rhs.__val; return tmp; } inline decimal128 operator+ (decimal128 lhs, decimal128 rhs) { decimal128 tmp; tmp.__val = lhs.__val + rhs.__val; return tmp; } inline bool operator!= (decimal32 lhs, decimal32 rhs) { return lhs.__val != rhs.__val; } inline bool operator!= (decimal64 lhs, decimal64 rhs) { return lhs.__val != rhs.__val; } inline bool operator!= (decimal128 lhs, decimal128 rhs) { return lhs.__val != rhs.__val; } } }