00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00028 #ifndef _RTXFLOAT_H_
00029 #define _RTXFLOAT_H_
00030
00031 #include "rtxsrc/osSysTypes.h"
00032 #include "rtxsrc/rtxExternDefs.h"
00033
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037
00038 #ifdef _NO_ULP_EQUAL
00039
00040
00041 #define rtxFloatEqual(a, b) (a == b)
00042 #define rtxFloatGreater(a, b) (a > b)
00043 #define rtxFloatGreaterOrEqual(a, b) (a >= b)
00044 #define rtxFloatSmaller(a, b) (a < b)
00045 #define rtxFloatSmallerOrEqual(a, b) (a <= b)
00046 #ifndef __SYMBIAN32__
00047 #define rtxDoubleEqual(a, b) (a == b)
00048 #define rtxDoubleGreater(a, b) (a > b)
00049 #define rtxDoubleGreaterOrEqual(a, b) (a >= b)
00050 #define rtxDoubleSmaller(a, b) (a < b)
00051 #define rtxDoubleSmallerOrEqual(a, b) (a <= b)
00052 #endif
00053
00054 #else
00055
00056 #define rtxFloatEqual(a, b) rtxFloatEqualImpl(a, b)
00057 #define rtxFloatGreater(a, b) ((a>b) && !rtxFloatEqual(a,b))
00058 #define rtxFloatGreaterOrEqual(a, b) ((a>b) || rtxFloatEqual(a,b))
00059 #define rtxFloatSmaller(a, b) ((a<b) && !rtxFloatEqual(a,b))
00060 #define rtxFloatSmallerOrEqual(a, b) ((a<b) || rtxFloatEqual(a,b))
00061 #ifndef __SYMBIAN32__
00062 #define rtxDoubleEqual(a, b) rtxDoubleEqualImpl(a, b)
00063 #define rtxDoubleGreater(a, b) ((a>b) && !rtxDoubleEqual(a,b))
00064 #define rtxDoubleGreaterOrEqual(a, b) ((a>b) || rtxDoubleEqual(a,b))
00065 #define rtxDoubleSmaller(a, b) ((a<b) && !rtxDoubleEqual(a,b))
00066 #define rtxDoubleSmallerOrEqual(a, b) ((a<b) || rtxDoubleEqual(a,b))
00067 #endif
00068
00069 #endif
00070
00071 EXTERNRT OSBOOL rtxFloatEqualImpl(float a, float b);
00072
00073 #ifndef __SYMBIAN32__
00074 EXTERNRT OSBOOL rtxDoubleEqualImpl(double a, double b);
00075 #endif
00076
00077 #ifdef __cplusplus
00078 }
00079 #endif
00080
00081 #endif
00082