00001
00002
00003 #ifndef CoinCDefine_H
00004 #define CoinCDefine_H
00005
00010
00011 #ifndef COIN_DBL_MAX
00012 #define COIN_DBL_MAX DBL_MAX
00013 #endif
00014 #if defined (CLP_EXTERN_C)
00015 #define COIN_EXTERN_C
00016 #define COIN_NO_SBB
00017 #define COIN_NO_CBC
00018 #endif
00019 #if defined (SBB_EXTERN_C)
00020 #define COIN_EXTERN_C
00021 #define COIN_NO_CLP
00022 #endif
00023 #if defined (CBC_EXTERN_C)
00024 #define COIN_EXTERN_C
00025 #define COIN_NO_CLP
00026 #endif
00027
00028 #ifndef COINLIBAPI
00029
00030 #if defined(CBCCINTERFACEDLL_EXPORTS) || defined(CLPMSDLL)
00031 #if defined (COIN_EXTERN_C)
00032 # define COINLIBAPI __declspec(dllexport)
00033 #else
00034 # define COINLIBAPI __declspec(dllexport)
00035 #endif
00036 # define COINLINKAGE __stdcall
00037 # define COINLINKAGE_CB __cdecl
00038 #else
00039 #if defined (COIN_EXTERN_C)
00040 # define COINLIBAPI extern "C"
00041 #else
00042 # define COINLIBAPI
00043 #endif
00044 # define COINLINKAGE
00045 # define COINLINKAGE_CB
00046 #endif
00047
00048 #endif
00049
00050 #if defined (CLP_EXTERN_C)
00051
00052 class CMessageHandler;
00053 typedef struct {
00054 ClpSimplex * model_;
00055 CMessageHandler * handler_;
00056 } Clp_Simplex;
00057 #else
00058 typedef void Clp_Simplex;
00059 #endif
00060
00061 #ifndef COIN_NO_CLP
00062
00064 typedef void (COINLINKAGE_CB *clp_callback) (Clp_Simplex * model,int msgno, int ndouble,
00065 const double * dvec, int nint, const int * ivec,
00066 int nchar, char ** cvec);
00067 #endif
00068
00069 #if defined (SBB_EXTERN_C)
00070
00071 class Sbb_MessageHandler;
00072 typedef struct {
00073 OsiClpSolverInterface * solver_;
00074 SbbModel * model_;
00075 Sbb_MessageHandler * handler_;
00076 char * information_;
00077 } Sbb_Model;
00078 #else
00079 typedef void Sbb_Model;
00080 #endif
00081 #if defined (CBC_EXTERN_C)
00082
00083 class Cbc_MessageHandler;
00084 typedef struct {
00085 OsiClpSolverInterface * solver_;
00086 CbcModel * model_;
00087 Cbc_MessageHandler * handler_;
00088 char * information_;
00089 } Cbc_Model;
00090 #else
00091 typedef void Cbc_Model;
00092 #endif
00093 #ifndef COIN_NO_SBB
00094
00096 typedef void (COINLINKAGE_CB *sbb_callback) (Sbb_Model * model,int msgno, int ndouble,
00097 const double * dvec, int nint, const int * ivec,
00098 int nchar, char ** cvec);
00099 typedef void (COINLINKAGE_CB *cbc_callback) (Cbc_Model * model,int msgno, int ndouble,
00100 const double * dvec, int nint, const int * ivec,
00101 int nchar, char ** cvec);
00102 #endif
00103 #if COIN_BIG_INDEX==0
00104 typedef int CoinBigIndex;
00105 #elif COIN_BIG_INDEX==1
00106 typedef long CoinBigIndex;
00107 #else
00108 typedef long long CoinBigIndex;
00109 #endif
00110
00111 #undef COIN_NO_CLP
00112 #undef COIN_NO_SBB
00113 #undef COIN_NO_CBC
00114 #endif