source: trunk/CoinMP/src/CoinSolver.h @ 347

Last change on this file since 347 was 347, checked in by bjarni, 10 years ago

Changing return type of GetOptionName? to const char* and add minor error checking to CoinSolver?.c

File size: 3.7 KB
Line 
1
2/*  CoinSolver.h  */
3
4
5#ifndef _COINSOLVER_H_
6#define _COINSOLVER_H_
7
8
9#if defined(_MSC_VER) && !defined(HAVE_CONFIG_H)
10#define SOLVCALL   __stdcall
11#else
12#define SOLVCALL
13#endif
14
15
16#undef MAXINT
17#undef MAXREAL
18
19#define MAXINT          2100000000L
20#define MAXREAL         COIN_DBL_MAX
21
22#define ROUND(x)       (((x)>0)?((long)((x)+0.5)):((long)((x)-0.5)))
23
24
25#define OPT_NONE                        0
26#define OPT_ONOFF                       1
27#define OPT_LIST                        2
28#define OPT_INT                         3
29#define OPT_REAL                        4
30#define OPT_STRING                      5
31
32#define GRP_NONE                        0
33#define GRP_OTHER                       0
34
35#define GRP_SIMPLEX                     1
36#define GRP_PREPROC                     2
37#define GRP_LOGFILE                     3
38#define GRP_LIMITS                      4
39#define GRP_MIPSTRAT            5
40#define GRP_MIPCUTS                     6
41#define GRP_MIPTOL                      7
42#define GRP_BARRIER                     8
43#define GRP_NETWORK                     9
44
45
46typedef int    OPTINT;
47typedef double OPTVAL;
48
49typedef struct {
50                        char   OptionName[32];
51                        char   ShortName[32];
52                        int    GroupType;
53                        OPTVAL DefaultValue;
54                        OPTVAL CurrentValue;
55                        OPTVAL MinValue;
56                        OPTVAL MaxValue;
57                        int             OptionType;
58                        int    changed;
59                        int    OptionID;
60        } SOLVOPTINFO, *PSOLVOPT;
61
62
63typedef PSOLVOPT OPTIONTABLE;
64
65
66typedef int (SOLVCALL  *MSGLOGCALLBACK)(const char* MessageStr);
67
68typedef int (SOLVCALL  *ITERCALLBACK)(int    IterCount, 
69                                                        double ObjectValue,
70                                                        int    IsFeasible, 
71                                                        double InfeasValue);
72
73typedef int (SOLVCALL *MIPNODECALLBACK)(int    IterCount, 
74                                                           int    MipNodeCount,
75                                                           double BestBound,
76                                                           double BestInteger,
77                                                           int    IsMipImproved);
78
79
80typedef struct {
81                                char LogFilename[260];
82
83                                int OptionCount;
84                                int OptionCopy;
85                                OPTIONTABLE OptionTable;
86
87                                MSGLOGCALLBACK  MsgLogCallback;
88                                ITERCALLBACK    IterCallback;
89                                MIPNODECALLBACK MipNodeCallback;
90
91                                } SOLVERINFO, *PSOLVER;
92
93
94#ifdef __cplusplus
95extern "C" {
96#endif
97
98
99PSOLVER coinCreateSolverObject(void);
100
101void coinClearSolverObject(PSOLVER pSolver);
102
103void coinSetLogFilename(PSOLVER pSolver, const char* LogFilename);
104const char* coinGetLogFilename(PSOLVER pSolver);
105
106void    coinSetOptionTable(PSOLVER pSolver, OPTIONTABLE OptionTable, int OptionCount);
107void    coinCopyOptionTable(PSOLVER pSolver, OPTIONTABLE OptionTable, int OptionCount);
108
109int     coinGetOptionCount(PSOLVER pSolver);
110int     coinGetOptionID(PSOLVER pSolver, int OptionNr);
111int     coinLocateOptionID(PSOLVER pSolver, int OptionID);
112
113int     coinGetOptionType(PSOLVER pSolver, int OptionID);
114int     coinGetOptionGroup(PSOLVER pSolver, int OptionID);
115
116int     coinLocateOptionName(PSOLVER pSolver, char* OptionName);
117const char*   coinGetOptionName(PSOLVER pSolver, int OptionID);
118int     coinGetOptionNameBuf(PSOLVER pSolver, int OptionID, char* OptionName, int buflen);
119const char*   coinGetOptionShortName(PSOLVER pSolver, int OptionNr);
120int     coinGetOptionShortNameBuf(PSOLVER pSolver, int OptionNr, char* ShortName, int buflen);
121
122int     coinGetIntOptionDefaultValue(PSOLVER pSolver, int OptionID);
123int     coinGetIntOptionMinValue(PSOLVER pSolver, int OptionID);
124int     coinGetIntOptionMaxValue(PSOLVER pSolver, int OptionID);
125
126double  coinGetRealOptionDefaultValue(PSOLVER pSolver, int OptionID);
127double  coinGetRealOptionMinValue(PSOLVER pSolver, int OptionID);
128double  coinGetRealOptionMaxValue(PSOLVER pSolver, int OptionID);
129
130int     coinGetOptionChanged(PSOLVER pSolver, int OptionID);
131
132int     coinGetIntOption(PSOLVER pSolver, int OptionID);
133int     coinSetIntOption(PSOLVER pSolver, int OptionID, int IntValue);
134
135double  coinGetRealOption(PSOLVER pSolver, int OptionID);
136int     coinSetRealOption(PSOLVER pSolver, int OptionID, double RealValue);
137#ifdef __cplusplus
138}
139#endif
140
141
142#endif  /* _COINSOLVER_H_ */
143
Note: See TracBrowser for help on using the repository browser.