source: trunk/CoinMP/src/CoinMP.h @ 524

Last change on this file since 524 was 524, checked in by bjarni, 6 years ago

Updated header file CoinMP.h to remove warnings about multiple exports during 64-bit compile in trunk 1.7

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 22.7 KB
RevLine 
[44]1/************************************************************************/
2/*                                                                      */
[326]3/*  CoinMP Solver                                     Maximal Software  */
[44]4/*                                                                      */
5/*  File         :  'coinmp.h'                                          */
6/*                                                                      */
[488]7/*  Version      :  1.7                                                 */
[44]8/*                                                                      */
[95]9/*  Author       :  Bjarni Kristjansson, Maximal Software               */
10/*                                                                      */
[488]11/*  Copyright (c) 2002-2013                     Bjarni Kristjansson     */
[95]12/*                                                                      */
[44]13/************************************************************************/
14
[428]15/* $Id: CoinMP.h 524 2013-09-20 09:45:32Z bjarni $ */
[44]16
[95]17#ifndef _COINMP_H_
18#define _COINMP_H_
[44]19
20
[158]21#if defined(_MSC_VER) && !defined(HAVE_CONFIG_H)
[160]22
[524]23# define SOLVCALL   __stdcall
24# if defined(SOLVER_EXPORT) && !defined(_WIN64)
25#  define SOLVAPI  __declspec(dllexport)
26# endif
27# if defined(SOLVER_IMPORT)
28#  define SOLVAPI __declspec(dllimport)
29# endif
30
[44]31#endif
[160]32
[524]33#ifndef SOLVAPI
34#define SOLVAPI
35#endif
[160]36
[524]37#ifndef SOLVCALL
[160]38#define SOLVCALL
[44]39#endif
40
41
[524]42
[113]43#ifndef SOLV_LINK_LIB
44#ifndef SOLV_LINK_DLL
45#define SOLV_LINK_LIB
[44]46#endif
47#endif
48
49
50
[170]51#define SOLV_CALL_SUCCESS   0
52#define SOLV_CALL_FAILED    -1
[69]53
[113]54#define SOLV_METHOD_DEFAULT       0x00000000L
[69]55
[113]56#define SOLV_METHOD_PRIMAL        0x00000001L
57#define SOLV_METHOD_DUAL          0x00000002L
58#define SOLV_METHOD_NETWORK       0x00000004L
59#define SOLV_METHOD_BARRIER       0x00000008L
[69]60
[113]61#define SOLV_METHOD_BENDERS       0x00000100L
62#define SOLV_METHOD_DEQ           0x00000200L
63#define SOLV_METHOD_EV            0x00000400L
[69]64
[113]65
66#define SOLV_FEATURE_LP            0x00000001L
67#define SOLV_FEATURE_QP            0x00000002L
68#define SOLV_FEATURE_QCP           0x00000004L
69#define SOLV_FEATURE_NLP           0x00000008L
70
71#define SOLV_FEATURE_MIP           0x00000010L
72#define SOLV_FEATURE_MIQP          0x00000020L
73#define SOLV_FEATURE_MIQCP         0x00000040L
74#define SOLV_FEATURE_MINLP         0x00000080L
75
76#define SOLV_FEATURE_SP            0x00010000L
77
78
79#define SOLV_OBJSENS_MAX   -1
80#define SOLV_OBJSENS_MIN    1
81
82
83#define SOLV_FILE_LOG      0
84#define SOLV_FILE_BASIS    1
85#define SOLV_FILE_MIPSTART 2
86#define SOLV_FILE_MPS      3
87#define SOLV_FILE_LP       4
88#define SOLV_FILE_BINARY   5
89#define SOLV_FILE_OUTPUT   6
90#define SOLV_FILE_BINOUT   7
91#define SOLV_FILE_IIS      8
92
[170]93#define SOLV_CHECK_COLCOUNT     1
94#define SOLV_CHECK_ROWCOUNT     2
95#define SOLV_CHECK_RANGECOUNT   3
96#define SOLV_CHECK_OBJSENSE     4
97#define SOLV_CHECK_ROWTYPE      5
98#define SOLV_CHECK_MATBEGIN     6
99#define SOLV_CHECK_MATCOUNT     7
100#define SOLV_CHECK_MATBEGCNT    8
101#define SOLV_CHECK_MATBEGNZ     9
102#define SOLV_CHECK_MATINDEX    10
103#define SOLV_CHECK_MATINDEXROW 11
104#define SOLV_CHECK_BOUNDS      12
105#define SOLV_CHECK_COLTYPE     13
106#define SOLV_CHECK_COLNAMES    14
107#define SOLV_CHECK_COLNAMESLEN 15
108#define SOLV_CHECK_ROWNAMES    16
109#define SOLV_CHECK_ROWNAMSLEN  17
[113]110
111
[44]112typedef void *HPROB;
113
[167]114#ifdef __cplusplus
[95]115extern "C" {
[167]116#endif
[46]117
[433]118typedef int (SOLVCALL * COIN_MSGLOG_CB)(const char* MessageStr, 
[447]119                                        void* UserParam);
[433]120
121typedef int (SOLVCALL *COIN_LPITER_CB)(int    IterCount, 
[441]122                                        double ObjectValue,
123                                        int    IsFeasible, 
124                                        double InfeasValue,
[447]125                                        void*  UserParam);
[433]126
127typedef int (SOLVCALL *COIN_MIPNODE_CB)(int    IterCount, 
[441]128                                        int       MipNodeCount,
129                                        double BestBound,
130                                        double BestInteger,
131                                        int    IsMipImproved, 
[447]132                                        void*  UserParam);
[433]133
134
[437]135/* Depreciated, use COIN_XXX_CB instead */
[290]136typedef int (SOLVCALL * MSGLOGCALLBACK)(const char* MessageStr);
[44]137
[170]138typedef int (SOLVCALL *ITERCALLBACK)(int    IterCount, 
[69]139                                                        double ObjectValue,
140                                                        int    IsFeasible, 
141                                                        double InfeasValue);
[44]142
[170]143typedef int (SOLVCALL *MIPNODECALLBACK)(int    IterCount, 
[113]144                                                           int    MipNodeCount,
145                                                           double BestBound,
146                                                           double BestInteger,
147                                                           int    IsMipImproved);
[44]148
149
150
[113]151#ifdef SOLV_LINK_LIB
[44]152
[290]153SOLVAPI int    SOLVCALL CoinInitSolver(const char* LicenseStr);
[160]154SOLVAPI int    SOLVCALL CoinFreeSolver(void);
[44]155
[290]156SOLVAPI const char*  SOLVCALL CoinGetSolverName(void);
[245]157SOLVAPI int    SOLVCALL CoinGetSolverNameBuf(char* SolverName, int buflen);
[358]158
[290]159SOLVAPI const char*  SOLVCALL CoinGetVersionStr(void);
[245]160SOLVAPI int    SOLVCALL CoinGetVersionStrBuf(char* VersionStr, int buflen);
[160]161SOLVAPI double SOLVCALL CoinGetVersion(void);
[358]162
[160]163SOLVAPI int    SOLVCALL CoinGetFeatures(void);
164SOLVAPI int    SOLVCALL CoinGetMethods(void);
165SOLVAPI double SOLVCALL CoinGetInfinity(void);
[44]166
[290]167SOLVAPI HPROB  SOLVCALL CoinCreateProblem(const char* ProblemName);
[44]168
[363]169SOLVAPI int SOLVCALL CoinLoadMatrix(HPROB hProb, 
170                                int ColCount, int RowCount, int NZCount, int RangeCount, 
171                                int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
[439]172                                double* LowerBounds, double* UpperBounds, const char* RowType, 
[363]173                                double* RHSValues, double* RangeValues, int* MatrixBegin, 
174                                int* MatrixCount, int* MatrixIndex, double* MatrixValues);
175
176SOLVAPI int SOLVCALL CoinLoadNames(HPROB hProb, char** ColNamesList, 
[439]177                                char** RowNamesList, const char* ObjectName);
[363]178
[439]179SOLVAPI int SOLVCALL CoinLoadNamesBuf(HPROB hProb, const char* ColNamesBuf, 
180                                const char* RowNamesBuf, const char* ObjectName);
[363]181
[160]182SOLVAPI int    SOLVCALL CoinLoadProblem(HPROB hProb, 
[170]183                                        int ColCount, int RowCount, int NZCount, int RangeCount, 
184                                        int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
[439]185                                        double* LowerBounds, double* UpperBounds, const char* RowType, 
[170]186                                        double* RHSValues, double* RangeValues, int* MatrixBegin, 
187                                        int* MatrixCount, int* MatrixIndex, double* MatrixValues,   
[439]188                                        char** ColNamesList, char** RowNamesList, const char* ObjectName);
[44]189
[222]190SOLVAPI int    SOLVCALL CoinLoadProblemBuf(HPROB hProb, 
191                                        int ColCount, int RowCount, int NZCount, int RangeCount, 
192                                        int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
193                                        double* LowerBounds, double* UpperBounds, char* RowType, 
194                                        double* RHSValues, double* RangeValues, int* MatrixBegin, 
195                                        int* MatrixCount, int* MatrixIndex, double* MatrixValues,   
[439]196                                        const char* ColNamesBuf, const char* RowNamesBuf, const char* ObjectName);
[222]197
[170]198SOLVAPI int    SOLVCALL CoinLoadInitValues(HPROB hProb, double* InitValues);
199
[439]200SOLVAPI int    SOLVCALL CoinLoadInteger(HPROB hProb, const char* ColumnType);
[44]201
202
[245]203SOLVAPI int    SOLVCALL CoinLoadPriority(HPROB hProb, int PriorCount, int* PriorIndex, 
[350]204                                                                                  int* PriorValues, int* PriorBranch);
[44]205
[160]206SOLVAPI int    SOLVCALL CoinLoadSos(HPROB hProb, int SosCount, int SosNZCount, 
[245]207                                                   int* SosType, int* SosPrior, int* SosBegin,   
208                                                   int* SosIndex, double* SosRef);
[44]209
[350]210SOLVAPI int    SOLVCALL CoinLoadSemiCont(HPROB hProb, int SemiCount, int* SemiIndex);
211
[245]212SOLVAPI int    SOLVCALL CoinLoadQuadratic(HPROB hProb, int* QuadBegin, int* QuadCount, 
213                                                                 int* QuadIndex, double* QuadValues);
[44]214
[160]215SOLVAPI int    SOLVCALL CoinLoadNonlinear(HPROB hProb, int NlpTreeCount, int NlpLineCount, 
[245]216                                                                 int* NlpBegin, int* NlpOper, int* NlpArg1, 
217                                                                 int* NlpArg2, int* NlpIndex1, int* NlpIndex2, 
218                                                                 double* NlpValue1, double* NlpValue2);
[44]219
[160]220SOLVAPI int    SOLVCALL CoinUnloadProblem(HPROB hProb);
[44]221
[170]222SOLVAPI int    SOLVCALL CoinCheckProblem(HPROB hProb);
223
[428]224/* Depreciated, use CoinLoadNamesBuf instead
[341]225//SOLVAPI int    SOLVCALL CoinSetLoadNamesType(HPROB hProb, int LoadNamesType);
[428]226 */
[185]227
[290]228SOLVAPI const char*  SOLVCALL CoinGetProblemName(HPROB hProb);
[245]229SOLVAPI int    SOLVCALL CoinGetProblemNameBuf(HPROB hProb, char* ProblemName, int buflen);
[185]230
231SOLVAPI int    SOLVCALL CoinGetColCount(HPROB hProb);
232SOLVAPI int    SOLVCALL CoinGetRowCount(HPROB hProb);
233
[290]234SOLVAPI const char*  SOLVCALL CoinGetColName(HPROB hProb, int col);
[245]235SOLVAPI int    SOLVCALL CoinGetColNameBuf(HPROB hProb, int col, char* ColName, int buflen);
[185]236
[290]237SOLVAPI const char*  SOLVCALL CoinGetRowName(HPROB hProb, int row);
[245]238SOLVAPI int    SOLVCALL CoinGetRowNameBuf(HPROB hProb, int row, char* RowName, int buflen);
239
[447]240SOLVAPI int SOLVCALL CoinRegisterMsgLogCallback(HPROB hProb, COIN_MSGLOG_CB MsgLogCB, void* UserParam);
241SOLVAPI int SOLVCALL CoinRegisterLPIterCallback(HPROB hProb, COIN_LPITER_CB LPIterCB, void* UserParam);
242SOLVAPI int SOLVCALL CoinRegisterMipNodeCallback(HPROB hProb, COIN_MIPNODE_CB MipNodeCB, void* UserParam);
[433]243
[437]244/* Depreciated, use CoinRegisterXxxCallback instead */
[160]245SOLVAPI int    SOLVCALL CoinSetMsgLogCallback(HPROB hProb, MSGLOGCALLBACK MsgLogCallback);
246SOLVAPI int    SOLVCALL CoinSetIterCallback(HPROB hProb, ITERCALLBACK IterCallback);
247SOLVAPI int    SOLVCALL CoinSetMipNodeCallback(HPROB hProb, MIPNODECALLBACK MipNodeCallback);
[44]248
[160]249SOLVAPI int    SOLVCALL CoinOptimizeProblem(HPROB hProb, int Method);
[44]250
[160]251SOLVAPI int    SOLVCALL CoinGetSolutionStatus(HPROB hProb);
[365]252SOLVAPI const char*  SOLVCALL CoinGetSolutionText(HPROB hProb);
253SOLVAPI int    SOLVCALL CoinGetSolutionTextBuf(HPROB hProb, char* SolutionText, int buflen);
[185]254
[160]255SOLVAPI double SOLVCALL CoinGetObjectValue(HPROB hProb);
256SOLVAPI double SOLVCALL CoinGetMipBestBound(HPROB hProb);
[44]257
[160]258SOLVAPI int    SOLVCALL CoinGetIterCount(HPROB hProb);
259SOLVAPI int    SOLVCALL CoinGetMipNodeCount(HPROB hProb);
[44]260
[160]261SOLVAPI int    SOLVCALL CoinGetSolutionValues(HPROB hProb, double* Activity, double* ReducedCost, 
[69]262                                                                         double* SlackValues, double* ShadowPrice);
[245]263SOLVAPI int    SOLVCALL CoinGetSolutionRanges(HPROB hProb, double* ObjLoRange, double* ObjUpRange,
264                                                                         double* RhsLoRange, double* RhsUpRange);
[385]265SOLVAPI int    SOLVCALL CoinGetSolutionBasis(HPROB hProb, int* ColStatus, int* RowStatus);
[44]266
[364]267
268
[290]269SOLVAPI int    SOLVCALL CoinReadFile(HPROB hProb, int FileType, const char* ReadFilename);
270SOLVAPI int    SOLVCALL CoinWriteFile(HPROB hProb, int FileType, const char* WriteFilename);
[44]271
[290]272SOLVAPI int    SOLVCALL CoinOpenLogFile(HPROB hProb, const char* LogFilename);
[160]273SOLVAPI int    SOLVCALL CoinCloseLogFile(HPROB hProb);
[44]274
275
276
[364]277SOLVAPI int    SOLVCALL CoinGetOptionCount(HPROB hProb);
278SOLVAPI int    SOLVCALL CoinLocateOptionID(HPROB hProb, int OptionID);
279SOLVAPI int    SOLVCALL CoinLocateOptionName(HPROB hProb, const char* OptionName);
[245]280
[364]281SOLVAPI int        SOLVCALL CoinGetOptionID(HPROB hProb, int OptionNr);
282SOLVAPI int    SOLVCALL CoinGetOptionInfo(HPROB hProb, int OptionNr, int* OptionID, int* GroupType, int* OptionType);
[245]283SOLVAPI int    SOLVCALL CoinGetIntOptionMinMax(HPROB hProb, int OptionNr, int* MinValue, int* MaxValue);
284SOLVAPI int    SOLVCALL CoinGetRealOptionMinMax(HPROB hProb, int OptionNr, double* MinValue, double* MaxValue);
[364]285SOLVAPI int    SOLVCALL CoinGetOptionNamesBuf(HPROB hProb, int OptionNr, char* OptionName, char* ShortName, int buflen);
[245]286
[364]287
288SOLVAPI int        SOLVCALL CoinGetOptionGroup(HPROB hProb, int OptionID);
289SOLVAPI int    SOLVCALL CoinGetOptionType(HPROB hProb, int OptionID);
290
291SOLVAPI int    SOLVCALL CoinGetIntOptionDefaultValue(HPROB hProb, int OptionID);
292SOLVAPI int    SOLVCALL CoinGetIntOptionMinValue(HPROB hProb, int OptionID);
293SOLVAPI int    SOLVCALL CoinGetIntOptionMaxValue(HPROB hProb, int OptionID);
294
295SOLVAPI double SOLVCALL CoinGetRealOptionDefaultValue(HPROB hProb, int OptionID);
296SOLVAPI double SOLVCALL CoinGetRealOptionMinValue(HPROB hProb, int OptionID);
297SOLVAPI double SOLVCALL CoinGetRealOptionMaxValue(HPROB hProb, int OptionID);
298
299SOLVAPI const char*  SOLVCALL CoinGetOptionName(HPROB hProb, int OptionID);
300SOLVAPI int    SOLVCALL CoinGetOptionNameBuf(HPROB hProb, int OptionID, char* OptionName, int buflen);
301SOLVAPI const char*  SOLVCALL CoinGetOptionShortName(HPROB hProb, int OptionID);
302SOLVAPI int    SOLVCALL CoinGetOptionShortNameBuf(HPROB hProb, int OptionID, char* ShortName, int buflen);
303
304
[160]305SOLVAPI int    SOLVCALL CoinGetOptionChanged(HPROB hProb, int OptionID);
[88]306
[160]307SOLVAPI int    SOLVCALL CoinGetIntOption(HPROB hProb, int OptionID);
308SOLVAPI int    SOLVCALL CoinSetIntOption(HPROB hProb, int OptionID, int IntValue);
[44]309
[160]310SOLVAPI double SOLVCALL CoinGetRealOption(HPROB hProb, int OptionID);
311SOLVAPI int    SOLVCALL CoinSetRealOption(HPROB hProb, int OptionID, double RealValue);
[44]312
[290]313SOLVAPI const char*  SOLVCALL CoinGetStringOption(HPROB hProb, int OptionID);
[245]314SOLVAPI int    SOLVCALL CoinGetStringOptionBuf(HPROB hProb, int OptionID, char* StringValue, int buflen);
[290]315SOLVAPI int    SOLVCALL CoinSetStringOption(HPROB hProb, int OptionID, const char* StringValue);
[44]316
317
318#endif
319
320
[113]321#ifdef SOLV_LINK_DLL
[44]322
[290]323int    (SOLVCALL *CoinInitSolver)(const char* LicenseStr);
[160]324int    (SOLVCALL *CoinFreeSolver)(void);
[44]325
[290]326const char*  (SOLVCALL *CoinGetSolverName)(void);
[245]327int    (SOLVCALL *CoinGetSolverNameBuf)(char* SolverName, int buflen);
[290]328const char*  (SOLVCALL *CoinGetVersionStr)(void);
[245]329int    (SOLVCALL *CoinGetVersionStrBuf)(char* VersionStr, int buflen);
[160]330double (SOLVCALL *CoinGetVersion)(void);
331int    (SOLVCALL *CoinGetFeatures)(void);
332int    (SOLVCALL *CoinGetMethods)(void);
333double (SOLVCALL *CoinGetInfinity)(void);
[44]334
[290]335HPROB  (SOLVCALL *CoinCreateProblem)(const char* ProblemName);
[44]336
[364]337int    (SOLVCALL *CoinLoadMatrix)(HPROB hProb, 
338                                int ColCount, int RowCount, int NZCount, int RangeCount, 
339                                int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
[439]340                                double* LowerBounds, double* UpperBounds, const char* RowType, 
[364]341                                double* RHSValues, double* RangeValues, int* MatrixBegin, 
342                                int* MatrixCount, int* MatrixIndex, double* MatrixValues);
343
344int    (SOLVCALL *CoinLoadNames)(HPROB hProb, char** ColNamesList, 
[439]345                                char** RowNamesList, const char* ObjectName);
[364]346
[439]347int    (SOLVCALL *CoinLoadNamesBuf)(HPROB hProb, const char* ColNamesBuf, 
348                                const char* RowNamesBuf, const char* ObjectName);
[364]349
[160]350int    (SOLVCALL *CoinLoadProblem)(HPROB hProb, 
[113]351                                                                   int ColCount, int RowCount, int NonZeroCount, int RangeCount, 
[170]352                                                                   int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
[439]353                                                                   double* LowerBounds, double* UpperBounds, const char* RowType, 
[170]354                                                                   double* RHSValues, double* RangeValues, int* MatrixBegin, 
355                                                                   int* MatrixCount, int* MatrixIndex, double* MatrixValues,   
[439]356                                                                   char** ColNamesList, char** RowNamesList, const char* objName);
[44]357
[222]358int    (SOLVCALL *CoinLoadProblemBuf)(HPROB hProb, 
359                                                                   int ColCount, int RowCount, int NonZeroCount, int RangeCount, 
360                                                                   int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
361                                                                   double* LowerBounds, double* UpperBounds, char* RowType, 
362                                                                   double* RHSValues, double* RangeValues, int* MatrixBegin, 
363                                                                   int* MatrixCount, int* MatrixIndex, double* MatrixValues,   
[439]364                                                                   const char* ColNamesBuf, const char* RowNamesBuf, const char* ObjectName);
[222]365
[170]366int    (SOLVCALL *CoinLoadInitValues)(HPROB hProb, double* InitValues);
367
[439]368int    (SOLVCALL *CoinLoadInteger)(HPROB hProb, const char* ColumnType);
[44]369
[245]370int    (SOLVCALL *CoinLoadPriority)(HPROB hProb, int PriorCount, int* PriorIndex, 
[350]371                                                                                                int* PriorValues, int* PriorBranch);
[44]372
[160]373int    (SOLVCALL *CoinLoadSos)(HPROB hProb, int SosCount, int SosNZCount, 
[245]374                                                                                 int* SosType, int* SosPrior, int* SosBegin,   
375                                                                                 int* SosIndex, double* SosRef);
[44]376
[364]377int    (SOLVCALL *CoinLoadSemiCont)(HPROB hProb, int SemiCount, int* SemiIndex);
378
[245]379int    (SOLVCALL *CoinLoadQuadratic)(HPROB hProb, int* QuadBegin, int* QuadCount, 
380                                                                                                 int* QuadIndex, double* QuadValues);
[44]381
[160]382int    (SOLVCALL *CoinLoadNonlinear)(HPROB hProb, int NlpTreeCount, int NlpLineCount, 
[245]383                                                                                                 int* NlpBegin, int* NlpOper, int* NlpArg1, 
384                                                                                                 int* NlpArg2, int* NlpIndex1, int* NlpIndex2, 
385                                                                                                 double* NlpValue1, double* NlpValue2);
[44]386
[160]387int    (SOLVCALL *CoinUnloadProblem)(HPROB hProb);
[44]388
[170]389int    (SOLVCALL *CoinCheckProblem)(HPROB hProb);
390
[428]391/* int    (SOLVCALL *CoinSetLoadNamesType)(HPROB hProb, int LoadNamesType); */
[185]392
[290]393const char*  (SOLVCALL *CoinGetProblemName)(HPROB hProb);
[245]394int    (SOLVCALL *CoinGetProblemNameBuf)(HPROB hProb, char* ProblemName, int buflen);
[170]395
396int    (SOLVCALL *CoinGetColCount)(HPROB hProb);
397int    (SOLVCALL *CoinGetRowCount)(HPROB hProb);
398
[290]399const char*  (SOLVCALL *CoinGetColName)(HPROB hProb, int col);
[245]400int    (SOLVCALL *CoinGetColNameBuf)(HPROB hProb, int col, char* ColName, int buflen);
[290]401const char*  (SOLVCALL *CoinGetRowName)(HPROB hProb, int row);
[245]402int    (SOLVCALL *CoinGetRowNameBuf)(HPROB hProb, int row, char* RowName, int buflen);
[170]403
[433]404void   (SOLVCALL *CoinRegisterMsgLogCallback)(HPROB hProb, COIN_MSGLOG_CB MsgLogCB, void* UserParam);
405void   (SOLVCALL *CoinRegisterLPIterCallback)(HPROB hProb, COIN_LPITER_CB LPIterCB, void* UserParam);
406void   (SOLVCALL *CoinRegisterMipNodeCallback)(HPROB hProb, COIN_MIPNODE_CB MipNodeCB, void* UserParam);
407
[437]408/* Depreciated, use CoinRegisterXxxCallback instead */
[364]409void   (SOLVCALL *CoinSetMsgLogCallback)(HPROB hProb, MSGLOGCALLBACK MsgLogCallback);
410void   (SOLVCALL *CoinSetIterCallback)(HPROB hProb, ITERCALLBACK IterCallback);
411void   (SOLVCALL *CoinSetMipNodeCallback)(HPROB hProb, MIPNODECALLBACK MipNodeCallback);
412
413int    (SOLVCALL *CoinOptimizeProblem)(HPROB hProb, int Method);
414
[185]415int    (SOLVCALL *CoinGetSolutionStatus)(HPROB hProb);
[365]416const char* (SOLVCALL *CoinGetSolutionText)(HPROB hProb);
417int    (SOLVCALL *CoinGetSolutionTextBuf)(HPROB hProb, char* SolutionText, int buflen);
[185]418
419double (SOLVCALL *CoinGetObjectValue)(HPROB hProb);
420double (SOLVCALL *CoinGetMipBestBound)(HPROB hProb);
421
[160]422int    (SOLVCALL *CoinGetIterCount)(HPROB hProb);
423int    (SOLVCALL *CoinGetMipNodeCount)(HPROB hProb);
[44]424
[160]425int    (SOLVCALL *CoinGetSolutionValues)(HPROB hProb, double* Activity, double* ReducedCost, 
[44]426                                                                                                          double* SlackValues, double* ShadowPrice);
[245]427int    (SOLVCALL *CoinGetSolutionRanges)(HPROB hProb, double* ObjLoRange, double* ObjUpRange,
428                                                                                           double* RhsLoRange, double* RhsUpRange);
[400]429int    (SOLVCALL *CoinGetSolutionBasis)(HPROB hProb, int* ColStatus, int* RowStatus);
[44]430
[364]431
[290]432void   (SOLVCALL *CoinReadFile)(HPROB hProb, int FileType, const char* ReadFilename);
433void   (SOLVCALL *CoinWriteFile)(HPROB hProb, int FileType, const char* WriteFilename);
[44]434
[290]435void   (SOLVCALL *CoinOpenLogFile)(HPROB hProb, const char* LogFilename);
[160]436void   (SOLVCALL *CoinCloseLogFile)(HPROB hProb);
[44]437
[364]438
[160]439int    (SOLVCALL *CoinGetOptionCount)(HPROB hProb);
[364]440int    (SOLVCALL *CoinLocateOptionID)(HPROB hProb, int OptionID);
441int    (SOLVCALL *CoinLocateOptionName)(HPROB hProb, const char* OptionName);
442
443int        (SOLVCALL *CoinGetOptionID)(HPROB hProb, int OptionNr);
[245]444int    (SOLVCALL *CoinGetOptionInfo)(HPROB hProb, int OptionNr, int* OptionID, int* GroupType, int* OptionType);
445int    (SOLVCALL *CoinGetIntOptionMinMax)(HPROB hProb, int OptionNr, int* MinValue, int* MaxValue);
446int    (SOLVCALL *CoinGetRealOptionMinMax)(HPROB hProb, int OptionNr, double* MinValue, double* MaxValue);
[364]447int    (SOLVCALL *CoinGetOptionNames)(HPROB hProb, int OptionNr, char* OptionName, char* ShortName, int buflen);
[245]448
[364]449
450int    (SOLVCALL *CoinGetOptionGroup)(HPROB hProb, int OptionID);
451int    (SOLVCALL *CoinGetOptionType)(HPROB hProb, int OptionID);
452
453int    (SOLVCALL *CoinGetIntOptionDefaultValue)(HPROB hProb, int OptionID);
454int    (SOLVCALL *CoinGetIntOptionMinValue)(HPROB hProb, int OptionID);
455int    (SOLVCALL *CoinGetIntOptionMaxValue)(HPROB hProb, int OptionID);
456
457double (SOLVCALL *CoinGetRealOptionDefaultValue)(HPROB hProb, int OptionID);
458double (SOLVCALL *CoinGetRealOptionMinValue)(HPROB hProb, int OptionID);
459double (SOLVCALL *CoinGetRealOptionMaxValue)(HPROB hProb, int OptionID);
460
461const char*  (SOLVCALL *CoinGetOptionName)(HPROB hProb, int OptionID);
462int    (SOLVCALL *CoinGetOptionNameBuf)(HPROB hProb, int OptionID, char* OptionName, int buflen);
463const char*  (SOLVCALL *CoinGetOptionShortName)(HPROB hProb, int OptionID);
464int    (SOLVCALL *CoinGetOptionShortNameBuf)(HPROB hProb, int OptionID, char* ShortName, int buflen);
465
466
[160]467int    (SOLVCALL *CoinGetOptionChanged)(HPROB hProb, int OptionID);
[88]468
[160]469int    (SOLVCALL *CoinGetIntOption)(HPROB hProb, int OptionID);
470int    (SOLVCALL *CoinSetIntOption)(HPROB hProb, int OptionID, int IntValue);
[44]471
[160]472double (SOLVCALL *CoinGetRealOption)(HPROB hProb, int OptionID);
473int    (SOLVCALL *CoinSetRealOption)(HPROB hProb, int OptionID, double RealValue);
[44]474
[290]475const char*  (SOLVCALL *CoinGetStringOption)(HPROB hProb, int OptionID);
[245]476int    (SOLVCALL *CoinGetStringOptionBuf)(HPROB hProb, int OptionID, char* StringValue, int buflen);
[290]477int    (SOLVCALL *CoinSetStringOption)(HPROB hProb, int OptionID, const char* StringValue);
[44]478
[46]479#endif
[44]480
[167]481#ifdef __cplusplus
[95]482}
[167]483#endif
[44]484
[46]485
486
[44]487#define COIN_INT_SOLVEMETHOD     1
488#define COIN_INT_PRESOLVETYPE    2
489#define COIN_INT_SCALING         3
490#define COIN_INT_PERTURBATION    4
491#define COIN_INT_PRIMALPIVOTALG  5
492#define COIN_INT_DUALPIVOTALG    6
493#define COIN_INT_LOGLEVEL        7
494#define COIN_INT_MAXITER         8
495#define COIN_INT_CRASHIND        9     
496#define COIN_INT_CRASHPIVOT     10
497#define COIN_REAL_CRASHGAP      11
498#define COIN_REAL_PRIMALOBJLIM  12
499#define COIN_REAL_DUALOBJLIM    13
500#define COIN_REAL_PRIMALOBJTOL  14
501#define COIN_REAL_DUALOBJTOL    15
502#define COIN_REAL_MAXSECONDS    16
503
504#define COIN_INT_MIPMAXNODES    17
505#define COIN_INT_MIPMAXSOL      18
506#define COIN_REAL_MIPMAXSEC     19
507
508#define COIN_INT_MIPFATHOMDISC     20
509#define COIN_INT_MIPHOTSTART       21
[428]510/* #define COIN_INT_MIPFORCEPRIOR     21 */
[44]511#define COIN_INT_MIPMINIMUMDROP    22
512#define COIN_INT_MIPMAXCUTPASS     23
513#define COIN_INT_MIPMAXPASSROOT    24
514#define COIN_INT_MIPSTRONGBRANCH   25
515#define COIN_INT_MIPSCANGLOBCUTS   26
516
517#define COIN_REAL_MIPINTTOL        30
518#define COIN_REAL_MIPINFWEIGHT     31
519#define COIN_REAL_MIPCUTOFF        32
520#define COIN_REAL_MIPABSGAP        33
[317]521#define COIN_REAL_MIPFRACGAP       34
[44]522
523#define COIN_INT_MIPCUT_PROBING          110
524#define COIN_INT_MIPPROBE_FREQ           111
525#define COIN_INT_MIPPROBE_MODE           112
526#define COIN_INT_MIPPROBE_USEOBJ         113
527#define COIN_INT_MIPPROBE_MAXPASS        114
528#define COIN_INT_MIPPROBE_MAXPROBE       115
529#define COIN_INT_MIPPROBE_MAXLOOK        116
530#define COIN_INT_MIPPROBE_ROWCUTS        117
531
532#define COIN_INT_MIPCUT_GOMORY           120
533#define COIN_INT_MIPGOMORY_FREQ          121
534#define COIN_INT_MIPGOMORY_LIMIT         122
535#define COIN_REAL_MIPGOMORY_AWAY         123
536
537
538#define COIN_INT_MIPCUT_KNAPSACK         130
539#define COIN_INT_MIPKNAPSACK_FREQ        131
540#define COIN_INT_MIPKNAPSACK_MAXIN       132
541
542#define COIN_INT_MIPCUT_ODDHOLE          140
543#define COIN_INT_MIPODDHOLE_FREQ         141
544#define COIN_REAL_MIPODDHOLE_MINVIOL     142
545#define COIN_REAL_MIPODDHOLE_MINVIOLPER  143
546#define COIN_INT_MIPODDHOLE_MAXENTRIES   144
547
548#define COIN_INT_MIPCUT_CLIQUE           150
549#define COIN_INT_MIPCLIQUE_FREQ          151
550#define COIN_INT_MIPCLIQUE_PACKING       152
551#define COIN_INT_MIPCLIQUE_STAR          153
552#define COIN_INT_MIPCLIQUE_STARMETHOD    154
553#define COIN_INT_MIPCLIQUE_STARMAXLEN    155
554#define COIN_INT_MIPCLIQUE_STARREPORT    156
555#define COIN_INT_MIPCLIQUE_ROW           157
556#define COIN_INT_MIPCLIQUE_ROWMAXLEN     158
557#define COIN_INT_MIPCLIQUE_ROWREPORT     159
558#define COIN_REAL_MIPCLIQUE_MINVIOL      160
559
560#define COIN_INT_MIPCUT_LIFTPROJECT      170
561#define COIN_INT_MIPLIFTPRO_FREQ         171
562#define COIN_INT_MIPLIFTPRO_BETAONE      172
563
564#define COIN_INT_MIPCUT_SIMPROUND        180
565#define COIN_INT_MIPSIMPROUND_FREQ       181   
566
[88]567#define COIN_INT_MIPUSECBCMAIN           200   
[44]568
569
[113]570#endif  /* _COINMP_H_ */
Note: See TracBrowser for help on using the repository browser.