CoinUtils
trunk
|
00001 /* $Id$ */ 00002 // Copyright (C) 2004, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 // This code is licensed under the terms of the Eclipse Public License (EPL). 00005 00006 #ifndef _CoinTypes_hpp 00007 #define _CoinTypes_hpp 00008 00009 #include "CoinUtilsConfig.h" 00010 /* On some systems, we require stdint.h to have the 64bit integer type defined. */ 00011 #ifdef COINUTILS_HAS_STDINT_H 00012 #include <stdint.h> 00013 #endif 00014 00015 #define CoinInt64 COIN_INT64_T 00016 #define CoinUInt64 COIN_UINT64_T 00017 #define CoinIntPtr COIN_INTPTR_T 00018 00019 //============================================================================= 00020 #ifndef COIN_BIG_INDEX 00021 #define COIN_BIG_INDEX 0 00022 #endif 00023 00024 #if COIN_BIG_INDEX==0 00025 typedef int CoinBigIndex; 00026 #elif COIN_BIG_INDEX==1 00027 typedef long CoinBigIndex; 00028 #else 00029 typedef long long CoinBigIndex; 00030 #endif 00031 00032 //============================================================================= 00033 #ifndef COIN_BIG_DOUBLE 00034 #define COIN_BIG_DOUBLE 0 00035 #endif 00036 00037 // See if we want the ability to have long double work arrays 00038 #if COIN_BIG_DOUBLE==2 00039 #undef COIN_BIG_DOUBLE 00040 #define COIN_BIG_DOUBLE 0 00041 #define COIN_LONG_WORK 1 00042 typedef long double CoinWorkDouble; 00043 #elif COIN_BIG_DOUBLE==3 00044 #undef COIN_BIG_DOUBLE 00045 #define COIN_BIG_DOUBLE 1 00046 #define COIN_LONG_WORK 1 00047 typedef long double CoinWorkDouble; 00048 #else 00049 #define COIN_LONG_WORK 0 00050 typedef double CoinWorkDouble; 00051 #endif 00052 00053 #if COIN_BIG_DOUBLE==0 00054 typedef double CoinFactorizationDouble; 00055 #elif COIN_BIG_DOUBLE==1 00056 typedef long double CoinFactorizationDouble; 00057 #else 00058 typedef double CoinFactorizationDouble; 00059 #endif 00060 00061 #endif