36 #define CX_E 2.7182818284590452353602874713526625L
37 #define CX_LN2 0.6931471805599453094172321214581766L
38 #define CX_LN10 2.3025850929940456840179914546843642L
39 #define CX_PI 3.1415926535897932384626433832795029L
40 #define CX_PI_2 1.5707963267948966192313216916397514L
41 #define CX_PI_4 0.7853981633974483096156608458198757L
42 #define CX_SQRT2 1.4142135623730950488016887242096981L
49 #define CX_MININT8 ((cxint8) 0x80)
50 #define CX_MAXINT8 ((cxint8) 0x7f)
51 #define CX_MAXUINT8 ((cxuint8) 0xff)
53 #define CX_MININT16 ((cxint16) 0x8000)
54 #define CX_MAXINT16 ((cxint16) 0x7fff)
55 #define CX_MAXUINT16 ((cxuint16) 0xffff)
57 #define CX_MININT32 ((cxint32) 0x80000000)
58 #define CX_MAXINT32 ((cxint32) 0x7fffffff)
59 #define CX_MAXUINT32 ((cxuint32) 0xffffffff)
61 #define CX_MININT64 ((cxint64) CX_INT64_CONSTANT(0x8000000000000000))
62 #define CX_MAXINT64 CX_INT64_CONSTANT(0x7fffffffffffffff)
63 #define CX_MAXUINT64 CX_INT64_CONSTANT(0xffffffffffffffffU)
71 typedef short cxshort;
76 typedef unsigned char cxuchar;
77 typedef unsigned short cxushort;
78 typedef unsigned int cxuint;
79 typedef unsigned long cxulong;
80 typedef cxuchar cxbyte;
82 typedef float cxfloat;
83 typedef double cxdouble;
86 typedef const void * cxcptr;
93 typedef cxint (*cx_compare_func) (cxcptr a, cxcptr b);
94 typedef cxint (*cx_compare_data_func) (cxcptr a, cxcptr b, cxptr data);
95 typedef cxbool (*cx_equal_func) (cxcptr a, cxcptr b);
96 typedef void (*cx_free_func) (cxptr data);