54#if defined(sun) || defined(sgi) || defined(__osf__) || defined(_MSC_VER)
60#define M_PI 3.14159265358979
62#define rint(x) (floor((x)+0.5))
63namespace std {
using ::floor;
using ::ceil;
using ::fabs;
using ::fmod;
using ::sqrt;
using ::sin;
using ::cos;
using ::tan;
using ::asin;
using ::acos;
using ::atan;
using ::sinh;
using ::cosh;
using ::tanh;
using ::atan2;
using ::exp;
using ::log;
using ::pow; }
68#if defined(__MINGW32__)
82 typedef float ftype32;
83 typedef double ftype64;
85 typedef unsigned int uitype32;
86# define CLIPPER_NAN_MASK_A_32 0x7f800000U
87# define CLIPPER_NAN_MASK_B_32 0x007fffffU
88# define CLIPPER_NULL_MASK_32 0x7fc00000U
89#if defined(__MINGW32__)
90 typedef ::int64_t itype64;
91 typedef ::uint64_t uitype64;
92# define CLIPPER_NAN_MASK_A_64 0x7ff0000000000000UL
93# define CLIPPER_NAN_MASK_B_64 0x000fffffffffffffUL
94# define CLIPPER_NULL_MASK_64 0x7ff8000000000000UL
95#elif defined(__osf__) || defined(__amd64__)
97 typedef unsigned long uitype64;
98# define CLIPPER_NAN_MASK_A_64 0x7ff0000000000000UL
99# define CLIPPER_NAN_MASK_B_64 0x000fffffffffffffUL
100# define CLIPPER_NULL_MASK_64 0x7ff8000000000000UL
102 typedef long long itype64;
103 typedef unsigned long long uitype64;
104# define CLIPPER_NAN_MASK_A_64 0x7ff0000000000000ULL
105# define CLIPPER_NAN_MASK_B_64 0x000fffffffffffffULL
106# define CLIPPER_NULL_MASK_64 0x7ff8000000000000ULL
113#ifndef CLIPPER_DISABLE_THREADS
115#if defined(__WIN32__) || defined(_WIN32)
118#define HKL HKL_RENAMED
122#ifndef WIN32_LEAN_AND_MEAN
123#define WIN32_LEAN_AND_MEAN 1
134#define CLIPPER_MUTEX_INIT(MUTEX) InitializeCriticalSection(MUTEX)
135#define CLIPPER_MUTEX_FREE(MUTEX) DeleteCriticalSection(MUTEX)
136#define CLIPPER_MUTEX_LOCK(MUTEX) EnterCriticalSection(MUTEX)
137#define CLIPPER_MUTEX_UNLK(MUTEX) LeaveCriticalSection(MUTEX)
138#define CLIPPER_MUTEX_TYPE CRITICAL_SECTION
139#define CLIPPER_THREAD_EXEC(THREAD,ENTRY,ARG) (THREAD=CreateThread(0,0,(LPTHREAD_START_ROUTINE)ENTRY,(void*)ARG,0,NULL),THREAD!=NULL)
140#define CLIPPER_THREAD_JOIN(THREAD) (WaitForSingleObject(THREAD,INFINITE)>=0)
141#define CLIPPER_THREAD_TYPE HANDLE
142#define CLIPPER_THREAD_ARGTYPE LPVOID
143#define CLIPPER_THREAD_RETTYPE DWORD
147#define CLIPPER_MUTEX_INIT(MUTEX) pthread_mutex_init(MUTEX,NULL)
148#define CLIPPER_MUTEX_FREE(MUTEX) pthread_mutex_destroy(MUTEX)
149#define CLIPPER_MUTEX_LOCK(MUTEX) pthread_mutex_lock(MUTEX)
150#define CLIPPER_MUTEX_UNLK(MUTEX) pthread_mutex_unlock(MUTEX)
151#define CLIPPER_MUTEX_TYPE pthread_mutex_t
152#define CLIPPER_THREAD_EXEC(THREAD,ENTRY,ARG) (pthread_create(&THREAD,NULL,ENTRY,(void*)ARG)==0)
153#define CLIPPER_THREAD_JOIN(THREAD) (pthread_join(THREAD,NULL)==0)
154#define CLIPPER_THREAD_TYPE pthread_t
155#define CLIPPER_THREAD_ARGTYPE void*
156#define CLIPPER_THREAD_RETTYPE void*