14#ifndef ORTOOLS_THIRD_PARTY_SOLVERS_GUROBI_ENVIRONMENT_H_
15#define ORTOOLS_THIRD_PARTY_SOLVERS_GUROBI_ENVIRONMENT_H_
20#include "absl/status/status.h"
21#include "absl/strings/string_view.h"
24#define GUROBI_STDCALL __stdcall
47 std::vector<absl::string_view> potential_paths);
56#define GRB_VERSION_MAJOR 10
57#define GRB_VERSION_MINOR 0
58#define GRB_VERSION_TECHNICAL 0
59#define DEFAULT_CS_PRIORITY 0
60#define MAX_CS_PRIORITY 100
61#define DEFAULT_CS_PORT 61000
62#define DEFAULT_CS_HANGUP 60
63#define GRB_ERROR_OUT_OF_MEMORY 10001
64#define GRB_ERROR_NULL_ARGUMENT 10002
65#define GRB_ERROR_INVALID_ARGUMENT 10003
66#define GRB_ERROR_UNKNOWN_ATTRIBUTE 10004
67#define GRB_ERROR_DATA_NOT_AVAILABLE 10005
68#define GRB_ERROR_INDEX_OUT_OF_RANGE 10006
69#define GRB_ERROR_UNKNOWN_PARAMETER 10007
70#define GRB_ERROR_VALUE_OUT_OF_RANGE 10008
71#define GRB_ERROR_NO_LICENSE 10009
72#define GRB_ERROR_SIZE_LIMIT_EXCEEDED 10010
73#define GRB_ERROR_CALLBACK 10011
74#define GRB_ERROR_FILE_READ 10012
75#define GRB_ERROR_FILE_WRITE 10013
76#define GRB_ERROR_NUMERIC 10014
77#define GRB_ERROR_IIS_NOT_INFEASIBLE 10015
78#define GRB_ERROR_NOT_FOR_MIP 10016
79#define GRB_ERROR_OPTIMIZATION_IN_PROGRESS 10017
80#define GRB_ERROR_DUPLICATES 10018
81#define GRB_ERROR_NODEFILE 10019
82#define GRB_ERROR_Q_NOT_PSD 10020
83#define GRB_ERROR_QCP_EQUALITY_CONSTRAINT 10021
84#define GRB_ERROR_NETWORK 10022
85#define GRB_ERROR_JOB_REJECTED 10023
86#define GRB_ERROR_NOT_SUPPORTED 10024
87#define GRB_ERROR_EXCEED_2B_NONZEROS 10025
88#define GRB_ERROR_INVALID_PIECEWISE_OBJ 10026
89#define GRB_ERROR_UPDATEMODE_CHANGE 10027
90#define GRB_ERROR_CLOUD 10028
91#define GRB_ERROR_MODEL_MODIFICATION 10029
92#define GRB_ERROR_CSWORKER 10030
93#define GRB_ERROR_TUNE_MODEL_TYPES 10031
94#define GRB_ERROR_SECURITY 10032
95#define GRB_LESS_EQUAL '<'
96#define GRB_GREATER_EQUAL '>'
98#define GRB_CONTINUOUS 'C'
100#define GRB_INTEGER 'I'
101#define GRB_SEMICONT 'S'
102#define GRB_SEMIINT 'N'
103#define GRB_MINIMIZE 1
104#define GRB_MAXIMIZE -1
105#define GRB_SOS_TYPE1 1
106#define GRB_SOS_TYPE2 2
107#define GRB_INFINITY 1e100
108#define GRB_UNDEFINED 1e101
109#define GRB_MAXINT 2000000000
110#define GRB_MAX_NAMELEN 255
111#define GRB_MAX_STRLEN 512
112#define GRB_MAX_TAGLEN 10240
113#define GRB_MAX_CONCURRENT 64
114#define CB_ARGS GRBmodel *model, void *cbdata, int where, void *usrdata
115#define LOGCB_ARGS char *msg, void *logdata
139extern std::function<int(
void *cbdata,
int where,
int what,
void *resultP)>
GRBcbget;
141extern std::function<int(
void *cbdata,
int cutlen,
const int *cutind,
const double *cutval,
char cutsense,
double cutrhs)>
GRBcbcut;
142extern std::function<int(
void *cbdata,
int lazylen,
const int *lazyind,
const double *lazyval,
char lazysense,
double lazyrhs)>
GRBcblazy;
143#define GRB_INT_ATTR_NUMCONSTRS "NumConstrs"
144#define GRB_INT_ATTR_NUMVARS "NumVars"
145#define GRB_INT_ATTR_NUMSOS "NumSOS"
146#define GRB_INT_ATTR_NUMQCONSTRS "NumQConstrs"
147#define GRB_INT_ATTR_NUMGENCONSTRS "NumGenConstrs"
148#define GRB_INT_ATTR_NUMNZS "NumNZs"
149#define GRB_DBL_ATTR_DNUMNZS "DNumNZs"
150#define GRB_INT_ATTR_NUMQNZS "NumQNZs"
151#define GRB_INT_ATTR_NUMQCNZS "NumQCNZs"
152#define GRB_INT_ATTR_NUMINTVARS "NumIntVars"
153#define GRB_INT_ATTR_NUMBINVARS "NumBinVars"
154#define GRB_INT_ATTR_NUMPWLOBJVARS "NumPWLObjVars"
155#define GRB_STR_ATTR_MODELNAME "ModelName"
156#define GRB_INT_ATTR_MODELSENSE "ModelSense"
157#define GRB_DBL_ATTR_OBJCON "ObjCon"
158#define GRB_INT_ATTR_IS_MIP "IsMIP"
159#define GRB_INT_ATTR_IS_QP "IsQP"
160#define GRB_INT_ATTR_IS_QCP "IsQCP"
161#define GRB_INT_ATTR_IS_MULTIOBJ "IsMultiObj"
162#define GRB_INT_ATTR_LICENSE_EXPIRATION "LicenseExpiration"
163#define GRB_INT_ATTR_NUMTAGGED "NumTagged"
164#define GRB_INT_ATTR_FINGERPRINT "Fingerprint"
165#define GRB_INT_ATTR_BATCHERRORCODE "BatchErrorCode"
166#define GRB_STR_ATTR_BATCHERRORMESSAGE "BatchErrorMessage"
167#define GRB_STR_ATTR_BATCHID "BatchID"
168#define GRB_INT_ATTR_BATCHSTATUS "BatchStatus"
169#define GRB_DBL_ATTR_LB "LB"
170#define GRB_DBL_ATTR_UB "UB"
171#define GRB_DBL_ATTR_OBJ "Obj"
172#define GRB_CHAR_ATTR_VTYPE "VType"
173#define GRB_DBL_ATTR_START "Start"
174#define GRB_DBL_ATTR_PSTART "PStart"
175#define GRB_INT_ATTR_BRANCHPRIORITY "BranchPriority"
176#define GRB_STR_ATTR_VARNAME "VarName"
177#define GRB_INT_ATTR_PWLOBJCVX "PWLObjCvx"
178#define GRB_DBL_ATTR_VARHINTVAL "VarHintVal"
179#define GRB_INT_ATTR_VARHINTPRI "VarHintPri"
180#define GRB_INT_ATTR_PARTITION "Partition"
181#define GRB_INT_ATTR_POOLIGNORE "PoolIgnore"
182#define GRB_STR_ATTR_VTAG "VTag"
183#define GRB_STR_ATTR_CTAG "CTag"
184#define GRB_DBL_ATTR_RHS "RHS"
185#define GRB_DBL_ATTR_DSTART "DStart"
186#define GRB_CHAR_ATTR_SENSE "Sense"
187#define GRB_STR_ATTR_CONSTRNAME "ConstrName"
188#define GRB_INT_ATTR_LAZY "Lazy"
189#define GRB_STR_ATTR_QCTAG "QCTag"
190#define GRB_DBL_ATTR_QCRHS "QCRHS"
191#define GRB_CHAR_ATTR_QCSENSE "QCSense"
192#define GRB_STR_ATTR_QCNAME "QCName"
193#define GRB_INT_ATTR_GENCONSTRTYPE "GenConstrType"
194#define GRB_STR_ATTR_GENCONSTRNAME "GenConstrName"
195#define GRB_INT_ATTR_FUNCPIECES "FuncPieces"
196#define GRB_DBL_ATTR_FUNCPIECEERROR "FuncPieceError"
197#define GRB_DBL_ATTR_FUNCPIECELENGTH "FuncPieceLength"
198#define GRB_DBL_ATTR_FUNCPIECERATIO "FuncPieceRatio"
199#define GRB_DBL_ATTR_MAX_COEFF "MaxCoeff"
200#define GRB_DBL_ATTR_MIN_COEFF "MinCoeff"
201#define GRB_DBL_ATTR_MAX_BOUND "MaxBound"
202#define GRB_DBL_ATTR_MIN_BOUND "MinBound"
203#define GRB_DBL_ATTR_MAX_OBJ_COEFF "MaxObjCoeff"
204#define GRB_DBL_ATTR_MIN_OBJ_COEFF "MinObjCoeff"
205#define GRB_DBL_ATTR_MAX_RHS "MaxRHS"
206#define GRB_DBL_ATTR_MIN_RHS "MinRHS"
207#define GRB_DBL_ATTR_MAX_QCCOEFF "MaxQCCoeff"
208#define GRB_DBL_ATTR_MIN_QCCOEFF "MinQCCoeff"
209#define GRB_DBL_ATTR_MAX_QOBJ_COEFF "MaxQObjCoeff"
210#define GRB_DBL_ATTR_MIN_QOBJ_COEFF "MinQObjCoeff"
211#define GRB_DBL_ATTR_MAX_QCLCOEFF "MaxQCLCoeff"
212#define GRB_DBL_ATTR_MIN_QCLCOEFF "MinQCLCoeff"
213#define GRB_DBL_ATTR_MAX_QCRHS "MaxQCRHS"
214#define GRB_DBL_ATTR_MIN_QCRHS "MinQCRHS"
215#define GRB_DBL_ATTR_RUNTIME "Runtime"
216#define GRB_DBL_ATTR_WORK "Work"
217#define GRB_INT_ATTR_STATUS "Status"
218#define GRB_DBL_ATTR_OBJVAL "ObjVal"
219#define GRB_DBL_ATTR_OBJBOUND "ObjBound"
220#define GRB_DBL_ATTR_OBJBOUNDC "ObjBoundC"
221#define GRB_DBL_ATTR_POOLOBJBOUND "PoolObjBound"
222#define GRB_DBL_ATTR_POOLOBJVAL "PoolObjVal"
223#define GRB_DBL_ATTR_MIPGAP "MIPGap"
224#define GRB_INT_ATTR_SOLCOUNT "SolCount"
225#define GRB_DBL_ATTR_ITERCOUNT "IterCount"
226#define GRB_INT_ATTR_BARITERCOUNT "BarIterCount"
227#define GRB_DBL_ATTR_NODECOUNT "NodeCount"
228#define GRB_DBL_ATTR_OPENNODECOUNT "OpenNodeCount"
229#define GRB_INT_ATTR_HASDUALNORM "HasDualNorm"
230#define GRB_INT_ATTR_CONCURRENTWINMETHOD "ConcurrentWinMethod"
231#define GRB_DBL_ATTR_X "X"
232#define GRB_DBL_ATTR_XN "Xn"
233#define GRB_DBL_ATTR_BARX "BarX"
234#define GRB_DBL_ATTR_RC "RC"
235#define GRB_DBL_ATTR_VDUALNORM "VDualNorm"
236#define GRB_INT_ATTR_VBASIS "VBasis"
237#define GRB_DBL_ATTR_PI "Pi"
238#define GRB_DBL_ATTR_QCPI "QCPi"
239#define GRB_DBL_ATTR_SLACK "Slack"
240#define GRB_DBL_ATTR_QCSLACK "QCSlack"
241#define GRB_DBL_ATTR_CDUALNORM "CDualNorm"
242#define GRB_INT_ATTR_CBASIS "CBasis"
243#define GRB_DBL_ATTR_MAX_VIO "MaxVio"
244#define GRB_DBL_ATTR_BOUND_VIO "BoundVio"
245#define GRB_DBL_ATTR_BOUND_SVIO "BoundSVio"
246#define GRB_INT_ATTR_BOUND_VIO_INDEX "BoundVioIndex"
247#define GRB_INT_ATTR_BOUND_SVIO_INDEX "BoundSVioIndex"
248#define GRB_DBL_ATTR_BOUND_VIO_SUM "BoundVioSum"
249#define GRB_DBL_ATTR_BOUND_SVIO_SUM "BoundSVioSum"
250#define GRB_DBL_ATTR_CONSTR_VIO "ConstrVio"
251#define GRB_DBL_ATTR_CONSTR_SVIO "ConstrSVio"
252#define GRB_INT_ATTR_CONSTR_VIO_INDEX "ConstrVioIndex"
253#define GRB_INT_ATTR_CONSTR_SVIO_INDEX "ConstrSVioIndex"
254#define GRB_DBL_ATTR_CONSTR_VIO_SUM "ConstrVioSum"
255#define GRB_DBL_ATTR_CONSTR_SVIO_SUM "ConstrSVioSum"
256#define GRB_DBL_ATTR_CONSTR_RESIDUAL "ConstrResidual"
257#define GRB_DBL_ATTR_CONSTR_SRESIDUAL "ConstrSResidual"
258#define GRB_INT_ATTR_CONSTR_RESIDUAL_INDEX "ConstrResidualIndex"
259#define GRB_INT_ATTR_CONSTR_SRESIDUAL_INDEX "ConstrSResidualIndex"
260#define GRB_DBL_ATTR_CONSTR_RESIDUAL_SUM "ConstrResidualSum"
261#define GRB_DBL_ATTR_CONSTR_SRESIDUAL_SUM "ConstrSResidualSum"
262#define GRB_DBL_ATTR_DUAL_VIO "DualVio"
263#define GRB_DBL_ATTR_DUAL_SVIO "DualSVio"
264#define GRB_INT_ATTR_DUAL_VIO_INDEX "DualVioIndex"
265#define GRB_INT_ATTR_DUAL_SVIO_INDEX "DualSVioIndex"
266#define GRB_DBL_ATTR_DUAL_VIO_SUM "DualVioSum"
267#define GRB_DBL_ATTR_DUAL_SVIO_SUM "DualSVioSum"
268#define GRB_DBL_ATTR_DUAL_RESIDUAL "DualResidual"
269#define GRB_DBL_ATTR_DUAL_SRESIDUAL "DualSResidual"
270#define GRB_INT_ATTR_DUAL_RESIDUAL_INDEX "DualResidualIndex"
271#define GRB_INT_ATTR_DUAL_SRESIDUAL_INDEX "DualSResidualIndex"
272#define GRB_DBL_ATTR_DUAL_RESIDUAL_SUM "DualResidualSum"
273#define GRB_DBL_ATTR_DUAL_SRESIDUAL_SUM "DualSResidualSum"
274#define GRB_DBL_ATTR_INT_VIO "IntVio"
275#define GRB_INT_ATTR_INT_VIO_INDEX "IntVioIndex"
276#define GRB_DBL_ATTR_INT_VIO_SUM "IntVioSum"
277#define GRB_DBL_ATTR_COMPL_VIO "ComplVio"
278#define GRB_INT_ATTR_COMPL_VIO_INDEX "ComplVioIndex"
279#define GRB_DBL_ATTR_COMPL_VIO_SUM "ComplVioSum"
280#define GRB_DBL_ATTR_KAPPA "Kappa"
281#define GRB_DBL_ATTR_KAPPA_EXACT "KappaExact"
282#define GRB_DBL_ATTR_N2KAPPA "N2Kappa"
283#define GRB_DBL_ATTR_SA_OBJLOW "SAObjLow"
284#define GRB_DBL_ATTR_SA_OBJUP "SAObjUp"
285#define GRB_DBL_ATTR_SA_LBLOW "SALBLow"
286#define GRB_DBL_ATTR_SA_LBUP "SALBUp"
287#define GRB_DBL_ATTR_SA_UBLOW "SAUBLow"
288#define GRB_DBL_ATTR_SA_UBUP "SAUBUp"
289#define GRB_DBL_ATTR_SA_RHSLOW "SARHSLow"
290#define GRB_DBL_ATTR_SA_RHSUP "SARHSUp"
291#define GRB_INT_ATTR_IIS_MINIMAL "IISMinimal"
292#define GRB_INT_ATTR_IIS_LB "IISLB"
293#define GRB_INT_ATTR_IIS_UB "IISUB"
294#define GRB_INT_ATTR_IIS_CONSTR "IISConstr"
295#define GRB_INT_ATTR_IIS_SOS "IISSOS"
296#define GRB_INT_ATTR_IIS_QCONSTR "IISQConstr"
297#define GRB_INT_ATTR_IIS_GENCONSTR "IISGenConstr"
298#define GRB_INT_ATTR_IIS_LBFORCE "IISLBForce"
299#define GRB_INT_ATTR_IIS_UBFORCE "IISUBForce"
300#define GRB_INT_ATTR_IIS_CONSTRFORCE "IISConstrForce"
301#define GRB_INT_ATTR_IIS_SOSFORCE "IISSOSForce"
302#define GRB_INT_ATTR_IIS_QCONSTRFORCE "IISQConstrForce"
303#define GRB_INT_ATTR_IIS_GENCONSTRFORCE "IISGenConstrForce"
304#define GRB_INT_ATTR_TUNE_RESULTCOUNT "TuneResultCount"
305#define GRB_DBL_ATTR_FARKASDUAL "FarkasDual"
306#define GRB_DBL_ATTR_FARKASPROOF "FarkasProof"
307#define GRB_DBL_ATTR_UNBDRAY "UnbdRay"
308#define GRB_INT_ATTR_INFEASVAR "InfeasVar"
309#define GRB_INT_ATTR_UNBDVAR "UnbdVar"
310#define GRB_INT_ATTR_VARPRESTAT "VarPreStat"
311#define GRB_DBL_ATTR_PREFIXVAL "PreFixVal"
312#define GRB_DBL_ATTR_OBJN "ObjN"
313#define GRB_DBL_ATTR_OBJNVAL "ObjNVal"
314#define GRB_DBL_ATTR_OBJNCON "ObjNCon"
315#define GRB_DBL_ATTR_OBJNWEIGHT "ObjNWeight"
316#define GRB_INT_ATTR_OBJNPRIORITY "ObjNPriority"
317#define GRB_DBL_ATTR_OBJNRELTOL "ObjNRelTol"
318#define GRB_DBL_ATTR_OBJNABSTOL "ObjNAbsTol"
319#define GRB_STR_ATTR_OBJNNAME "ObjNName"
320#define GRB_DBL_ATTR_SCENNLB "ScenNLB"
321#define GRB_DBL_ATTR_SCENNUB "ScenNUB"
322#define GRB_DBL_ATTR_SCENNOBJ "ScenNObj"
323#define GRB_DBL_ATTR_SCENNRHS "ScenNRHS"
324#define GRB_STR_ATTR_SCENNNAME "ScenNName"
325#define GRB_DBL_ATTR_SCENNX "ScenNX"
326#define GRB_DBL_ATTR_SCENNOBJBOUND "ScenNObjBound"
327#define GRB_DBL_ATTR_SCENNOBJVAL "ScenNObjVal"
328#define GRB_INT_ATTR_NUMOBJ "NumObj"
329#define GRB_INT_ATTR_NUMSCENARIOS "NumScenarios"
330#define GRB_INT_ATTR_NUMSTART "NumStart"
331#define GRB_GENCONSTR_MAX 0
332#define GRB_GENCONSTR_MIN 1
333#define GRB_GENCONSTR_ABS 2
334#define GRB_GENCONSTR_AND 3
335#define GRB_GENCONSTR_OR 4
336#define GRB_GENCONSTR_NORM 5
337#define GRB_GENCONSTR_INDICATOR 6
338#define GRB_GENCONSTR_PWL 7
339#define GRB_GENCONSTR_POLY 8
340#define GRB_GENCONSTR_EXP 9
341#define GRB_GENCONSTR_EXPA 10
342#define GRB_GENCONSTR_LOG 11
343#define GRB_GENCONSTR_LOGA 12
344#define GRB_GENCONSTR_POW 13
345#define GRB_GENCONSTR_SIN 14
346#define GRB_GENCONSTR_COS 15
347#define GRB_GENCONSTR_TAN 16
348#define GRB_GENCONSTR_LOGISTIC 17
349#define GRB_CB_POLLING 0
350#define GRB_CB_PRESOLVE 1
351#define GRB_CB_SIMPLEX 2
353#define GRB_CB_MIPSOL 4
354#define GRB_CB_MIPNODE 5
355#define GRB_CB_MESSAGE 6
356#define GRB_CB_BARRIER 7
357#define GRB_CB_MULTIOBJ 8
359#define GRB_CB_PRE_COLDEL 1000
360#define GRB_CB_PRE_ROWDEL 1001
361#define GRB_CB_PRE_SENCHG 1002
362#define GRB_CB_PRE_BNDCHG 1003
363#define GRB_CB_PRE_COECHG 1004
364#define GRB_CB_SPX_ITRCNT 2000
365#define GRB_CB_SPX_OBJVAL 2001
366#define GRB_CB_SPX_PRIMINF 2002
367#define GRB_CB_SPX_DUALINF 2003
368#define GRB_CB_SPX_ISPERT 2004
369#define GRB_CB_MIP_OBJBST 3000
370#define GRB_CB_MIP_OBJBND 3001
371#define GRB_CB_MIP_NODCNT 3002
372#define GRB_CB_MIP_SOLCNT 3003
373#define GRB_CB_MIP_CUTCNT 3004
374#define GRB_CB_MIP_NODLFT 3005
375#define GRB_CB_MIP_ITRCNT 3006
376#define GRB_CB_MIP_OPENSCENARIOS 3007
377#define GRB_CB_MIP_PHASE 3008
378#define GRB_CB_MIPSOL_SOL 4001
379#define GRB_CB_MIPSOL_OBJ 4002
380#define GRB_CB_MIPSOL_OBJBST 4003
381#define GRB_CB_MIPSOL_OBJBND 4004
382#define GRB_CB_MIPSOL_NODCNT 4005
383#define GRB_CB_MIPSOL_SOLCNT 4006
384#define GRB_CB_MIPSOL_OPENSCENARIOS 4007
385#define GRB_CB_MIPSOL_PHASE 4008
386#define GRB_CB_MIPNODE_STATUS 5001
387#define GRB_CB_MIPNODE_REL 5002
388#define GRB_CB_MIPNODE_OBJBST 5003
389#define GRB_CB_MIPNODE_OBJBND 5004
390#define GRB_CB_MIPNODE_NODCNT 5005
391#define GRB_CB_MIPNODE_SOLCNT 5006
392#define GRB_CB_MIPNODE_BRVAR 5007
393#define GRB_CB_MIPNODE_OPENSCENARIOS 5008
394#define GRB_CB_MIPNODE_PHASE 5009
395#define GRB_CB_MSG_STRING 6001
396#define GRB_CB_RUNTIME 6002
397#define GRB_CB_WORK 6003
398#define GRB_CB_BARRIER_ITRCNT 7001
399#define GRB_CB_BARRIER_PRIMOBJ 7002
400#define GRB_CB_BARRIER_DUALOBJ 7003
401#define GRB_CB_BARRIER_PRIMINF 7004
402#define GRB_CB_BARRIER_DUALINF 7005
403#define GRB_CB_BARRIER_COMPL 7006
404#define GRB_CB_MULTIOBJ_OBJCNT 8001
405#define GRB_CB_MULTIOBJ_SOLCNT 8002
406#define GRB_CB_MULTIOBJ_SOL 8003
407#define GRB_CB_IIS_CONSTRMIN 9001
408#define GRB_CB_IIS_CONSTRMAX 9002
409#define GRB_CB_IIS_CONSTRGUESS 9003
410#define GRB_CB_IIS_BOUNDMIN 9004
411#define GRB_CB_IIS_BOUNDMAX 9005
412#define GRB_CB_IIS_BOUNDGUESS 9006
413#define GRB_FEASRELAX_LINEAR 0
414#define GRB_FEASRELAX_QUADRATIC 1
415#define GRB_FEASRELAX_CARDINALITY 2
416extern std::function<int(
GRBmodel *model,
int *numnzP,
int *vbeg,
int *vind,
double *vval,
int start,
int len)>
GRBgetvars;
419#define MALLOCCB_ARGS size_t size, void *syscbusrdata
420#define CALLOCCB_ARGS size_t nmemb, size_t size, void *syscbusrdata
421#define REALLOCCB_ARGS void *ptr, size_t size, void *syscbusrdata
422#define FREECB_ARGS void *ptr, void *syscbusrdata
423#define THREADCREATECB_ARGS void **threadP, void (*start_routine)(void *), void *arg, void *syscbusrdata
424#define THREADJOINCB_ARGS void *thread, void *syscbusrdata
426extern std::function<int(
GRBenv *env,
GRBmodel **modelP,
const char *Pname,
int numvars,
double *obj,
double *lb,
double *ub,
char *vtype,
char **varnames)>
GRBnewmodel;
427extern std::function<int(
GRBmodel *model,
int numnz,
int *vind,
double *vval,
double obj,
double lb,
double ub,
char vtype,
const char *varname)>
GRBaddvar;
428extern std::function<int(
GRBmodel *model,
int numvars,
int numnz,
int *vbeg,
int *vind,
double *vval,
double *obj,
double *lb,
double *ub,
char *vtype,
char **varnames)>
GRBaddvars;
429extern std::function<int(
GRBmodel *model,
int numnz,
int *cind,
double *cval,
char sense,
double rhs,
const char *constrname)>
GRBaddconstr;
430extern std::function<int(
GRBmodel *model,
int numconstrs,
int numnz,
int *cbeg,
int *cind,
double *cval,
char *sense,
double *rhs,
char **constrnames)>
GRBaddconstrs;
431extern std::function<int(
GRBmodel *model,
int numnz,
int *cind,
double *cval,
double lower,
double upper,
const char *constrname)>
GRBaddrangeconstr;
432extern std::function<int(
GRBmodel *model,
int numsos,
int nummembers,
int *types,
int *beg,
int *ind,
double *weight)>
GRBaddsos;
433extern std::function<int(
GRBmodel *model,
const char *name,
int resvar,
int nvars,
const int *vars,
double constant)>
GRBaddgenconstrMax;
434extern std::function<int(
GRBmodel *model,
const char *name,
int resvar,
int nvars,
const int *vars,
double constant)>
GRBaddgenconstrMin;
438extern std::function<int(
GRBmodel *model,
const char *name,
int binvar,
int binval,
int nvars,
const int *vars,
const double *vals,
char sense,
double rhs)>
GRBaddgenconstrIndicator;
439extern std::function<int(
GRBmodel *model,
int numlnz,
int *lind,
double *lval,
int numqnz,
int *qrow,
int *qcol,
double *qval,
char sense,
double rhs,
const char *QCname)>
GRBaddqconstr;
440extern std::function<int(
GRBmodel *model,
int numqnz,
int *qrow,
int *qcol,
double *qval)>
GRBaddqpterms;
447extern std::function<int(
GRBmodel *model,
int cnt,
int *cind,
int *vind,
double *val)>
GRBchgcoeffs;
452#define GRB_INFEASIBLE 3
453#define GRB_INF_OR_UNBD 4
454#define GRB_UNBOUNDED 5
456#define GRB_ITERATION_LIMIT 7
457#define GRB_NODE_LIMIT 8
458#define GRB_TIME_LIMIT 9
459#define GRB_SOLUTION_LIMIT 10
460#define GRB_INTERRUPTED 11
461#define GRB_NUMERIC 12
462#define GRB_SUBOPTIMAL 13
463#define GRB_INPROGRESS 14
464#define GRB_USER_OBJ_LIMIT 15
465#define GRB_WORK_LIMIT 16
466#define GRB_MEM_LIMIT 17
468#define GRB_NONBASIC_LOWER -1
469#define GRB_NONBASIC_UPPER -2
470#define GRB_SUPERBASIC -3
471#define GRB_INT_PAR_BARITERLIMIT "BarIterLimit"
472#define GRB_DBL_PAR_CUTOFF "Cutoff"
473#define GRB_DBL_PAR_ITERATIONLIMIT "IterationLimit"
474#define GRB_DBL_PAR_NODELIMIT "NodeLimit"
475#define GRB_INT_PAR_SOLUTIONLIMIT "SolutionLimit"
476#define GRB_DBL_PAR_TIMELIMIT "TimeLimit"
477#define GRB_DBL_PAR_WORKLIMIT "WorkLimit"
478#define GRB_DBL_PAR_MEMLIMIT "MemLimit"
479#define GRB_DBL_PAR_SOFTMEMLIMIT "SoftMemLimit"
480#define GRB_DBL_PAR_BESTOBJSTOP "BestObjStop"
481#define GRB_DBL_PAR_BESTBDSTOP "BestBdStop"
482#define GRB_DBL_PAR_FEASIBILITYTOL "FeasibilityTol"
483#define GRB_DBL_PAR_INTFEASTOL "IntFeasTol"
484#define GRB_DBL_PAR_MARKOWITZTOL "MarkowitzTol"
485#define GRB_DBL_PAR_MIPGAP "MIPGap"
486#define GRB_DBL_PAR_MIPGAPABS "MIPGapAbs"
487#define GRB_DBL_PAR_OPTIMALITYTOL "OptimalityTol"
488#define GRB_DBL_PAR_PSDTOL "PSDTol"
489#define GRB_INT_PAR_METHOD "Method"
490#define GRB_DBL_PAR_PERTURBVALUE "PerturbValue"
491#define GRB_DBL_PAR_OBJSCALE "ObjScale"
492#define GRB_INT_PAR_SCALEFLAG "ScaleFlag"
493#define GRB_INT_PAR_SIMPLEXPRICING "SimplexPricing"
494#define GRB_INT_PAR_QUAD "Quad"
495#define GRB_INT_PAR_NORMADJUST "NormAdjust"
496#define GRB_INT_PAR_SIFTING "Sifting"
497#define GRB_INT_PAR_SIFTMETHOD "SiftMethod"
498#define GRB_INT_PAR_LPWARMSTART "LPWarmStart"
499#define GRB_INT_PAR_NETWORKALG "NetworkAlg"
500#define GRB_DBL_PAR_BARCONVTOL "BarConvTol"
501#define GRB_INT_PAR_BARCORRECTORS "BarCorrectors"
502#define GRB_INT_PAR_BARHOMOGENEOUS "BarHomogeneous"
503#define GRB_INT_PAR_BARORDER "BarOrder"
504#define GRB_DBL_PAR_BARQCPCONVTOL "BarQCPConvTol"
505#define GRB_INT_PAR_CROSSOVER "Crossover"
506#define GRB_INT_PAR_CROSSOVERBASIS "CrossoverBasis"
507#define GRB_INT_PAR_BRANCHDIR "BranchDir"
508#define GRB_INT_PAR_DEGENMOVES "DegenMoves"
509#define GRB_INT_PAR_DISCONNECTED "Disconnected"
510#define GRB_DBL_PAR_HEURISTICS "Heuristics"
511#define GRB_DBL_PAR_IMPROVESTARTGAP "ImproveStartGap"
512#define GRB_DBL_PAR_IMPROVESTARTTIME "ImproveStartTime"
513#define GRB_DBL_PAR_IMPROVESTARTNODES "ImproveStartNodes"
514#define GRB_INT_PAR_INTEGRALITYFOCUS "IntegralityFocus"
515#define GRB_INT_PAR_MINRELNODES "MinRelNodes"
516#define GRB_INT_PAR_MIPFOCUS "MIPFocus"
517#define GRB_INT_PAR_NLPHEUR "NLPHeur"
518#define GRB_STR_PAR_NODEFILEDIR "NodefileDir"
519#define GRB_DBL_PAR_NODEFILESTART "NodefileStart"
520#define GRB_INT_PAR_NODEMETHOD "NodeMethod"
521#define GRB_DBL_PAR_NORELHEURTIME "NoRelHeurTime"
522#define GRB_DBL_PAR_NORELHEURWORK "NoRelHeurWork"
523#define GRB_INT_PAR_OBBT "OBBT"
524#define GRB_INT_PAR_PUMPPASSES "PumpPasses"
525#define GRB_INT_PAR_RINS "RINS"
526#define GRB_STR_PAR_SOLFILES "SolFiles"
527#define GRB_INT_PAR_STARTNODELIMIT "StartNodeLimit"
528#define GRB_INT_PAR_SUBMIPNODES "SubMIPNodes"
529#define GRB_INT_PAR_SYMMETRY "Symmetry"
530#define GRB_INT_PAR_VARBRANCH "VarBranch"
531#define GRB_INT_PAR_SOLUTIONNUMBER "SolutionNumber"
532#define GRB_INT_PAR_ZEROOBJNODES "ZeroObjNodes"
533#define GRB_INT_PAR_CUTS "Cuts"
534#define GRB_INT_PAR_CLIQUECUTS "CliqueCuts"
535#define GRB_INT_PAR_COVERCUTS "CoverCuts"
536#define GRB_INT_PAR_FLOWCOVERCUTS "FlowCoverCuts"
537#define GRB_INT_PAR_FLOWPATHCUTS "FlowPathCuts"
538#define GRB_INT_PAR_GUBCOVERCUTS "GUBCoverCuts"
539#define GRB_INT_PAR_IMPLIEDCUTS "ImpliedCuts"
540#define GRB_INT_PAR_PROJIMPLIEDCUTS "ProjImpliedCuts"
541#define GRB_INT_PAR_MIPSEPCUTS "MIPSepCuts"
542#define GRB_INT_PAR_MIRCUTS "MIRCuts"
543#define GRB_INT_PAR_STRONGCGCUTS "StrongCGCuts"
544#define GRB_INT_PAR_MODKCUTS "ModKCuts"
545#define GRB_INT_PAR_ZEROHALFCUTS "ZeroHalfCuts"
546#define GRB_INT_PAR_NETWORKCUTS "NetworkCuts"
547#define GRB_INT_PAR_SUBMIPCUTS "SubMIPCuts"
548#define GRB_INT_PAR_INFPROOFCUTS "InfProofCuts"
549#define GRB_INT_PAR_RLTCUTS "RLTCuts"
550#define GRB_INT_PAR_RELAXLIFTCUTS "RelaxLiftCuts"
551#define GRB_INT_PAR_BQPCUTS "BQPCuts"
552#define GRB_INT_PAR_PSDCUTS "PSDCuts"
553#define GRB_INT_PAR_LIFTPROJECTCUTS "LiftProjectCuts"
554#define GRB_INT_PAR_CUTAGGPASSES "CutAggPasses"
555#define GRB_INT_PAR_CUTPASSES "CutPasses"
556#define GRB_INT_PAR_GOMORYPASSES "GomoryPasses"
557#define GRB_STR_PAR_WORKERPOOL "WorkerPool"
558#define GRB_STR_PAR_WORKERPASSWORD "WorkerPassword"
559#define GRB_STR_PAR_COMPUTESERVER "ComputeServer"
560#define GRB_STR_PAR_TOKENSERVER "TokenServer"
561#define GRB_STR_PAR_SERVERPASSWORD "ServerPassword"
562#define GRB_INT_PAR_SERVERTIMEOUT "ServerTimeout"
563#define GRB_STR_PAR_CSROUTER "CSRouter"
564#define GRB_STR_PAR_CSGROUP "CSGroup"
565#define GRB_DBL_PAR_CSQUEUETIMEOUT "CSQueueTimeout"
566#define GRB_INT_PAR_CSPRIORITY "CSPriority"
567#define GRB_INT_PAR_CSIDLETIMEOUT "CSIdleTimeout"
568#define GRB_INT_PAR_CSTLSINSECURE "CSTLSInsecure"
569#define GRB_INT_PAR_TSPORT "TSPort"
570#define GRB_STR_PAR_CLOUDACCESSID "CloudAccessID"
571#define GRB_STR_PAR_CLOUDSECRETKEY "CloudSecretKey"
572#define GRB_STR_PAR_CLOUDPOOL "CloudPool"
573#define GRB_STR_PAR_CLOUDHOST "CloudHost"
574#define GRB_STR_PAR_CSMANAGER "CSManager"
575#define GRB_STR_PAR_CSAUTHTOKEN "CSAuthToken"
576#define GRB_STR_PAR_CSAPIACCESSID "CSAPIAccessID"
577#define GRB_STR_PAR_CSAPISECRET "CSAPISecret"
578#define GRB_INT_PAR_CSBATCHMODE "CSBatchMode"
579#define GRB_STR_PAR_USERNAME "Username"
580#define GRB_STR_PAR_CSAPPNAME "CSAppName"
581#define GRB_INT_PAR_CSCLIENTLOG "CSClientLog"
582#define GRB_STR_PAR_WLSACCESSID "WLSAccessID"
583#define GRB_STR_PAR_WLSSECRET "WLSSecret"
584#define GRB_INT_PAR_WLSTOKENDURATION "WLSTokenDuration"
585#define GRB_DBL_PAR_WLSTOKENREFRESH "WLSTokenRefresh"
586#define GRB_STR_PAR_WLSTOKEN "WLSToken"
587#define GRB_INT_PAR_LICENSEID "LicenseID"
588#define GRB_INT_PAR_AGGREGATE "Aggregate"
589#define GRB_INT_PAR_AGGFILL "AggFill"
590#define GRB_INT_PAR_CONCURRENTMIP "ConcurrentMIP"
591#define GRB_INT_PAR_CONCURRENTJOBS "ConcurrentJobs"
592#define GRB_INT_PAR_DISPLAYINTERVAL "DisplayInterval"
593#define GRB_INT_PAR_DISTRIBUTEDMIPJOBS "DistributedMIPJobs"
594#define GRB_INT_PAR_DUALREDUCTIONS "DualReductions"
595#define GRB_DBL_PAR_FEASRELAXBIGM "FeasRelaxBigM"
596#define GRB_INT_PAR_IISMETHOD "IISMethod"
597#define GRB_INT_PAR_INFUNBDINFO "InfUnbdInfo"
598#define GRB_INT_PAR_JSONSOLDETAIL "JSONSolDetail"
599#define GRB_INT_PAR_LAZYCONSTRAINTS "LazyConstraints"
600#define GRB_STR_PAR_LOGFILE "LogFile"
601#define GRB_INT_PAR_LOGTOCONSOLE "LogToConsole"
602#define GRB_INT_PAR_MIQCPMETHOD "MIQCPMethod"
603#define GRB_INT_PAR_NONCONVEX "NonConvex"
604#define GRB_INT_PAR_NUMERICFOCUS "NumericFocus"
605#define GRB_INT_PAR_OUTPUTFLAG "OutputFlag"
606#define GRB_INT_PAR_PRECRUSH "PreCrush"
607#define GRB_INT_PAR_PREDEPROW "PreDepRow"
608#define GRB_INT_PAR_PREDUAL "PreDual"
609#define GRB_INT_PAR_PREPASSES "PrePasses"
610#define GRB_INT_PAR_PREQLINEARIZE "PreQLinearize"
611#define GRB_INT_PAR_PRESOLVE "Presolve"
612#define GRB_DBL_PAR_PRESOS1BIGM "PreSOS1BigM"
613#define GRB_DBL_PAR_PRESOS2BIGM "PreSOS2BigM"
614#define GRB_INT_PAR_PRESOS1ENCODING "PreSOS1Encoding"
615#define GRB_INT_PAR_PRESOS2ENCODING "PreSOS2Encoding"
616#define GRB_INT_PAR_PRESPARSIFY "PreSparsify"
617#define GRB_INT_PAR_PREMIQCPFORM "PreMIQCPForm"
618#define GRB_INT_PAR_QCPDUAL "QCPDual"
619#define GRB_INT_PAR_RECORD "Record"
620#define GRB_STR_PAR_RESULTFILE "ResultFile"
621#define GRB_INT_PAR_SEED "Seed"
622#define GRB_INT_PAR_SOLUTIONTARGET "SolutionTarget"
623#define GRB_INT_PAR_THREADS "Threads"
624#define GRB_DBL_PAR_TUNETIMELIMIT "TuneTimeLimit"
625#define GRB_INT_PAR_TUNERESULTS "TuneResults"
626#define GRB_INT_PAR_TUNECRITERION "TuneCriterion"
627#define GRB_INT_PAR_TUNETRIALS "TuneTrials"
628#define GRB_INT_PAR_TUNEOUTPUT "TuneOutput"
629#define GRB_INT_PAR_TUNEJOBS "TuneJobs"
630#define GRB_DBL_PAR_TUNECLEANUP "TuneCleanup"
631#define GRB_DBL_PAR_TUNETARGETMIPGAP "TuneTargetMIPGap"
632#define GRB_DBL_PAR_TUNETARGETTIME "TuneTargetTime"
633#define GRB_INT_PAR_TUNEMETRIC "TuneMetric"
634#define GRB_INT_PAR_UPDATEMODE "UpdateMode"
635#define GRB_INT_PAR_OBJNUMBER "ObjNumber"
636#define GRB_INT_PAR_MULTIOBJMETHOD "MultiObjMethod"
637#define GRB_INT_PAR_MULTIOBJPRE "MultiObjPre"
638#define GRB_INT_PAR_SCENARIONUMBER "ScenarioNumber"
639#define GRB_INT_PAR_POOLSOLUTIONS "PoolSolutions"
640#define GRB_DBL_PAR_POOLGAP "PoolGap"
641#define GRB_DBL_PAR_POOLGAPABS "PoolGapAbs"
642#define GRB_INT_PAR_POOLSEARCHMODE "PoolSearchMode"
643#define GRB_INT_PAR_IGNORENAMES "IgnoreNames"
644#define GRB_INT_PAR_STARTNUMBER "StartNumber"
645#define GRB_INT_PAR_PARTITIONPLACE "PartitionPlace"
646#define GRB_INT_PAR_FUNCPIECES "FuncPieces"
647#define GRB_DBL_PAR_FUNCPIECELENGTH "FuncPieceLength"
648#define GRB_DBL_PAR_FUNCPIECEERROR "FuncPieceError"
649#define GRB_DBL_PAR_FUNCPIECERATIO "FuncPieceRatio"
650#define GRB_DBL_PAR_FUNCMAXVAL "FuncMaxVal"
651#define GRB_STR_PAR_DUMMY "Dummy"
652#define GRB_STR_PAR_JOBID "JobID"
653#define GRB_CUTS_AUTO -1
654#define GRB_CUTS_OFF 0
655#define GRB_CUTS_CONSERVATIVE 1
656#define GRB_CUTS_AGGRESSIVE 2
657#define GRB_CUTS_VERYAGGRESSIVE 3
658#define GRB_PRESOLVE_AUTO -1
659#define GRB_PRESOLVE_OFF 0
660#define GRB_PRESOLVE_CONSERVATIVE 1
661#define GRB_PRESOLVE_AGGRESSIVE 2
662#define GRB_METHOD_NONE -1
663#define GRB_METHOD_AUTO -1
664#define GRB_METHOD_PRIMAL 0
665#define GRB_METHOD_DUAL 1
666#define GRB_METHOD_BARRIER 2
667#define GRB_METHOD_CONCURRENT 3
668#define GRB_METHOD_DETERMINISTIC_CONCURRENT 4
669#define GRB_METHOD_DETERMINISTIC_CONCURRENT_SIMPLEX 5
670#define GRB_BARHOMOGENEOUS_AUTO -1
671#define GRB_BARHOMOGENEOUS_OFF 0
672#define GRB_BARHOMOGENEOUS_ON 1
673#define GRB_MIPFOCUS_BALANCED 0
674#define GRB_MIPFOCUS_FEASIBILITY 1
675#define GRB_MIPFOCUS_OPTIMALITY 2
676#define GRB_MIPFOCUS_BESTBOUND 3
677#define GRB_BARORDER_AUTOMATIC -1
678#define GRB_BARORDER_AMD 0
679#define GRB_BARORDER_NESTEDDISSECTION 1
680#define GRB_SIMPLEXPRICING_AUTO -1
681#define GRB_SIMPLEXPRICING_PARTIAL 0
682#define GRB_SIMPLEXPRICING_STEEPEST_EDGE 1
683#define GRB_SIMPLEXPRICING_DEVEX 2
684#define GRB_SIMPLEXPRICING_STEEPEST_QUICK 3
685#define GRB_VARBRANCH_AUTO -1
686#define GRB_VARBRANCH_PSEUDO_REDUCED 0
687#define GRB_VARBRANCH_PSEUDO_SHADOW 1
688#define GRB_VARBRANCH_MAX_INFEAS 2
689#define GRB_VARBRANCH_STRONG 3
690#define GRB_PARTITION_EARLY 16
691#define GRB_PARTITION_ROOTSTART 8
692#define GRB_PARTITION_ROOTEND 4
693#define GRB_PARTITION_NODES 2
694#define GRB_PARTITION_CLEANUP 1
695#define GRB_PHASE_MIP_NOREL 0
696#define GRB_PHASE_MIP_SEARCH 1
697#define GRB_PHASE_MIP_IMPROVE 2
699extern std::function<int(
GRBmodel *model,
int index,
int priority,
double weight,
double abstol,
double reltol,
const char *name,
double constant,
int lnz,
int *lind,
double *lval)>
GRBsetobjectiven;
703extern std::function<int(
GRBenv *env,
const char *paramname,
const char *value)>
GRBsetparam;
709extern std::function<int(
GRBenv **envP,
const char *logfilename)>
GRBloadenv;
715extern std::function<int(
GRBenv *envP,
const char *paramname,
int *valueP,
int *minP,
int *maxP,
int *defP)>
GRBgetintparaminfo;
716extern std::function<int(
GRBenv *envP,
const char *paramname,
double *valueP,
double *minP,
double *maxP,
double *defP)>
GRBgetdblparaminfo;
723extern std::function<void(
int *majorP,
int *minorP,
int *technicalP)>
GRBversion;
725#define GRB_BATCH_STATUS_UNKNOWN 0
726#define GRB_BATCH_CREATED 1
727#define GRB_BATCH_SUBMITTED 2
728#define GRB_BATCH_ABORTED 3
729#define GRB_BATCH_FAILED 4
730#define GRB_BATCH_COMPLETED 5
struct _GRBmodel GRBmodel
std::function< int(GRBmodel *model, int numnz, int *cind, double *cval, char sense, double rhs, const char *constrname)> GRBaddconstr
std::function< void(GRBenv *env)> GRBfreeenv
std::function< int(GRBmodel *model, const char *attrname, double *valueP)> GRBgetdblattr
std::function< int(GRBmodel *model, const char *attrname, int first, int len, double *values)> GRBgetdblattrarray
std::function< int(GRBmodel *model, const char *attrname, int first, int len, int *values)> GRBgetintattrarray
std::function< int(GRBmodel *model, const char *attrname, double newvalue)> GRBsetdblattr
std::function< int(GRBmodel *model, int len, int *ind)> GRBdelsos
std::function< int(GRBmodel *model, int numvars, int numnz, int *vbeg, int *vind, double *vval, double *obj, double *lb, double *ub, char *vtype, char **varnames)> GRBaddvars
std::function< int(GRBmodel *model, int(GUROBI_STDCALL *cb)(CB_ARGS), void *usrdata)> GRBsetcallbackfunc
std::function< int(GRBenv *dest, GRBenv *src)> GRBcopyparams
std::function< int(GRBmodel *model, int *numnzP, int *vbeg, int *vind, double *vval, int start, int len)> GRBgetvars
std::function< int(GRBmodel *model, const char *attrname, int len, int *ind, int *newvalues)> GRBsetintattrlist
std::function< int(GRBmodel *model, int cnt, int *cind, int *vind, double *val)> GRBchgcoeffs
std::function< int(GRBmodel *model, const char *attrname, int first, int len, char *values)> GRBgetcharattrarray
std::function< int(void *cbdata, int cutlen, const int *cutind, const double *cutval, char cutsense, double cutrhs)> GRBcbcut
std::function< int(GRBenv *env, const char *paramname, double *valueP)> GRBgetdblparam
std::function< int(GRBmodel *model, int numlnz, int *lind, double *lval, int numqnz, int *qrow, int *qcol, double *qval, char sense, double rhs, const char *QCname)> GRBaddqconstr
std::function< int(GRBmodel *model, int len, int *ind)> GRBdelvars
std::function< int(GRBmodel *model, const char *attrname, int newvalue)> GRBsetintattr
std::function< int(GRBenv *env, const char *paramname, const char *value)> GRBsetparam
std::function< int(GRBmodel *model, const char *attrname, int element, int *valueP)> GRBgetintattrelement
Select next search node to expand Select next item_i to add this new search node to the search Generate a new search node where item_i is not in the knapsack Check validity of this new partial solution(using propagators) - If valid
std::function< int(GRBenv *env, GRBmodel **modelP, const char *Pname, int numvars, double *obj, double *lb, double *ub, char *vtype, char **varnames)> GRBnewmodel
std::function< int(GRBmodel *model, int numnz, int *vind, double *vval, double obj, double lb, double ub, char vtype, const char *varname)> GRBaddvar
std::function< int(GRBmodel *model, const char *attrname, int first, int len, int *newvalues)> GRBsetintattrarray
std::function< int(GRBmodel *model)> GRBupdatemodel
std::function< void(int *majorP, int *minorP, int *technicalP)> GRBversion
std::function< GRBenv *(GRBmodel *model)> GRBgetenv
std::function< int(GRBmodel *model, const char *attrname, int len, int *ind, char *newvalues)> GRBsetcharattrlist
std::function< int(GRBenv *env, const char *paramname, char *valueP)> GRBgetstrparam
std::function< int(GRBmodel *model, const char *attrname, int element, double *valueP)> GRBgetdblattrelement
std::function< int(GRBmodel *model, const char *attrname, int first, int len, char *newvalues)> GRBsetcharattrarray
std::function< int(GRBmodel *model)> GRBfreemodel
std::function< int(GRBmodel *model, int len, int *ind)> GRBdelqconstrs
std::function< int(void *cbdata, int lazylen, const int *lazyind, const double *lazyval, char lazysense, double lazyrhs)> GRBcblazy
std::function< int(GRBmodel *model)> GRBcomputeIIS
std::function< int(void *cbdata, int where, int what, void *resultP)> GRBcbget
std::function< int(GRBenv *env, const char *paramname, int value)> GRBsetintparam
std::function< int(GRBmodel *model, const char *attrname)> GRBisattravailable
std::function< int(GRBenv *env, const char *paramname, const char *value)> GRBsetstrparam
std::function< int(GRBenv *env, const char *paramname, char *valueP, char *defP)> GRBgetstrparaminfo
std::function< int(GRBmodel *model, const char *attrname, int first, int len, double *newvalues)> GRBsetdblattrarray
std::function< int(GRBmodel *model, const char *name, int resvar, int nvars, const int *vars, double constant)> GRBaddgenconstrMin
std::function< int(GRBmodel *model, int numnz, int *cind, double *cval, double lower, double upper, const char *constrname)> GRBaddrangeconstr
std::function< int(GRBmodel *model, const char *name, int binvar, int binval, int nvars, const int *vars, const double *vals, char sense, double rhs)> GRBaddgenconstrIndicator
std::function< int(GRBmodel *model, const char *attrname, int element, char newvalue)> GRBsetcharattrelement
std::function< int(GRBmodel *model, const char *attrname, int element, int newvalue)> GRBsetintattrelement
std::function< int(GRBenv *env)> GRBresetparams
std::function< int(GRBmodel *model, const char *attrname, const char *newvalue)> GRBsetstrattr
absl::Status LoadGurobiDynamicLibrary(std::vector< absl::string_view > potential_paths)
std::function< GRBenv *(GRBmodel *model)> GRBdiscardmultiobjenvs
std::function< int(GRBmodel *model)> GRBoptimize
std::function< int(GRBenv **envP, const char *logfilename)> GRBloadenv
std::function< int(GRBmodel *model, int numqnz, int *qrow, int *qcol, double *qval)> GRBaddqpterms
std::function< GRBenv *(GRBmodel *model, int num)> GRBgetmultiobjenv
std::function< int(GRBenv **envP)> GRBemptyenv
std::function< int(GRBenv *env, const char *paramname)> GRBgetparamtype
std::function< int(GRBmodel *model, int len, int *ind)> GRBdelconstrs
std::function< int(GRBmodel *model, const char *name, int resvar, int argvar)> GRBaddgenconstrAbs
std::function< int(GRBenv *env, int i, char **paramnameP)> GRBgetparamname
std::function< int(GRBmodel *model, const char *attrname, int *valueP)> GRBgetintattr
std::function< int(GRBmodel *model, int len, int *ind)> GRBdelgenconstrs
std::function< int(GRBmodel *model, int index, int priority, double weight, double abstol, double reltol, const char *name, double constant, int lnz, int *lind, double *lval)> GRBsetobjectiven
std::function< const char *(GRBenv *env)> GRBgeterrormsg
std::function< int(GRBmodel *model, const char *filename)> GRBwrite
std::function< int(GRBenv *env, const char *paramname, double *valueP, double *minP, double *maxP, double *defP)> GRBgetdblparaminfo
std::function< int(GRBenv *env, const char *paramname, int *valueP)> GRBgetintparam
std::function< int(GRBmodel *model, const char *name, int resvar, int nvars, const int *vars)> GRBaddgenconstrAnd
std::function< int(GRBenv *env)> GRBstartenv
std::function< int(GRBmodel *model, const char *name, int resvar, int nvars, const int *vars)> GRBaddgenconstrOr
std::function< int(GRBmodel *model, int numconstrs, int numnz, int *cbeg, int *cind, double *cval, char *sense, double *rhs, char **constrnames)> GRBaddconstrs
std::function< int(GRBmodel *model, const char *attrname, int len, int *ind, double *newvalues)> GRBsetdblattrlist
std::function< int(GRBmodel *model, const char *name, int resvar, int nvars, const int *vars, double constant)> GRBaddgenconstrMax
std::function< char *(void)> GRBplatform
std::function< int(GRBenv *env, const char *paramname, int *valueP, int *minP, int *maxP, int *defP)> GRBgetintparaminfo
std::function< int(GRBmodel *model, int numsos, int nummembers, int *types, int *beg, int *ind, double *weight)> GRBaddsos
std::function< int(GRBenv *env)> GRBgetnumparams
std::function< int(GRBmodel *model, const char *attrname, int element, char *valueP)> GRBgetcharattrelement
std::function< int(GRBmodel *model, const char *attrname, char **valueP)> GRBgetstrattr
std::function< int(GRBmodel *model)> GRBdelq
std::function< int(void *cbdata, const double *solution, double *objvalP)> GRBcbsolution
std::function< void(GRBmodel *model)> GRBterminate
std::function< int(GRBenv *env, const char *paramname, double value)> GRBsetdblparam
std::function< int(GRBmodel *model, const char *attrname, int element, double newvalue)> GRBsetdblattrelement