diff --git a/scripts/Project.toml b/scripts/Project.toml index 58901203..5697133b 100644 --- a/scripts/Project.toml +++ b/scripts/Project.toml @@ -2,4 +2,4 @@ Clang = "40e3b903-d033-50b4-a0cc-940c62c95e31" [compat] -Clang = "0.12" \ No newline at end of file +Clang = "0.17" diff --git a/scripts/clang.jl b/scripts/clang.jl deleted file mode 100644 index b89cc9c9..00000000 --- a/scripts/clang.jl +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) 2015 Dahua Lin, Miles Lubin, Joey Huchette, Iain Dunning, and -# contributors -# -# Use of this source code is governed by an MIT-style license that can be found -# in the LICENSE.md file or at https://opensource.org/licenses/MIT. - -# TODO(odow): -# -# This script can be used to build the C interface to Gurobi. However, it -# requires you to manually set the path to the appropriate gurobi_c.h. - -import Clang - -const LIBGRB_HEADERS = [ - "/Library/gurobi910/mac64/include/gurobi_c.h", -] - -const GRB_VERSION = "91" - -const GEN_DIR = joinpath(dirname(@__DIR__), "src", "gen$(GRB_VERSION)") -if !isdir(GEN_DIR) - mkdir(GEN_DIR) -end - -wc = Clang.init( - headers = LIBGRB_HEADERS, - output_file = joinpath(GEN_DIR, "libgrb_api.jl"), - common_file = joinpath(GEN_DIR, "libgrb_common.jl"), - header_wrapped = (root, current) -> root == current, - header_library = x -> "libgurobi", - clang_diagnostics = true, -) - -run(wc) - -function manual_corrections() - filename = joinpath(GEN_DIR, "libgrb_api.jl") - lines = readlines(filename; keep = true) - for (i, line) in enumerate(lines) - lines[i] = replace(line, "Cstring" => "Ptr{Cchar}") - end - open(filename, "w") do io - print.(Ref(io), lines) - end -end -manual_corrections() - -rm(joinpath(GEN_DIR, "LibTemplate.jl")) diff --git a/scripts/gen.jl b/scripts/gen.jl new file mode 100644 index 00000000..32654150 --- /dev/null +++ b/scripts/gen.jl @@ -0,0 +1,24 @@ +# Copyright (c) 2015 Dahua Lin, Miles Lubin, Joey Huchette, Iain Dunning, and +# contributors +# +# Use of this source code is governed by an MIT-style license that can be found +# in the LICENSE.md file or at https://opensource.org/licenses/MIT. + +# !!! note +# +# Run this script as `julia --project=. gen.jl` +# +# When updating, you must: +# +# * modify the `gurobi_c` constant to point to the correct filename +# * modify the `output_folder` + +using Clang.Generators + +const gurobi_c = "/Library/gurobi1003/macos_universal2/include/gurobi_c.h" +const output_folder = "gen100" + +options = load_options(joinpath(@__DIR__, "generate.toml")) +options["general"]["output_file_path"] = + joinpath(@__DIR__, "..", "src", output_folder, "libgrb_api.jl") +build!(create_context([gurobi_c], get_default_args(), options)) diff --git a/scripts/generate.toml b/scripts/generate.toml new file mode 100644 index 00000000..66d2e7bd --- /dev/null +++ b/scripts/generate.toml @@ -0,0 +1,30 @@ +[general] +library_name = "libgurobi" +prologue_file_path = "prologue.jl" +output_file_path = "../src/gen100/libgrb_api.jl" # adjusted by gen.jl +print_using_CEnum = false +extract_c_comment_style = "doxygen" +output_ignorelist = [ + "THREADCREATECB_ARGS", + "THREADJOINCB_ARGS", + "MALLOCCB_ARGS", + "CALLOCCB_ARGS", + "REALLOCCB_ARGS", + "FREECB_ARGS", + "CB_ARGS", + "LOGCB_ARGS", + "GRB_LESS_EQUAL", + "GRB_GREATER_EQUAL", + "GRB_EQUAL", + "GRB_CONTINUOUS", + "GRB_BINARY", + "GRB_INTEGER", + "GRB_SEMICONT", + "GRB_SEMIINT" +] + +[codegen] +opaque_as_mutable_struct = false + +[codegen.macro] +ignore_header_guards_with_suffixes = ["__stdcall"] diff --git a/scripts/prologue.jl b/scripts/prologue.jl new file mode 100644 index 00000000..c635aceb --- /dev/null +++ b/scripts/prologue.jl @@ -0,0 +1,22 @@ +# Copyright (c) 2015 Dahua Lin, Miles Lubin, Joey Huchette, Iain Dunning, and +# contributors +# +# Use of this source code is governed by an MIT-style license that can be found +# in the LICENSE.md file or at https://opensource.org/licenses/MIT. + +# !format: off + +# ============================ start of prologue.jl ============================ +# These constants are handled explicitly in the prologue.jl to avoid them being +# automatically parsed as `const GRB_LESS_EQUAL = Cchar('<')`. There's probably +# a better way to handle this, but it works for now, and they won't be changing +# in future releases. +const GRB_LESS_EQUAL = '<' +const GRB_GREATER_EQUAL = '>' +const GRB_EQUAL = '=' +const GRB_CONTINUOUS = 'C' +const GRB_BINARY = 'B' +const GRB_INTEGER = 'I' +const GRB_SEMICONT = 'S' +const GRB_SEMIINT = 'N' +# ============================= end of prologue.jl ============================= diff --git a/src/Gurobi.jl b/src/Gurobi.jl index e461f6a3..48c99068 100644 --- a/src/Gurobi.jl +++ b/src/Gurobi.jl @@ -59,7 +59,6 @@ elseif _is_patch(_GUROBI_VERSION, v"9.5") include("gen95/libgrb_common.jl") include("gen95/libgrb_api.jl") elseif _is_patch(_GUROBI_VERSION, v"10.0") - include("gen100/libgrb_common.jl") include("gen100/libgrb_api.jl") else error(""" diff --git a/src/gen100/libgrb_api.jl b/src/gen100/libgrb_api.jl index 258a37b0..534b569d 100644 --- a/src/gen100/libgrb_api.jl +++ b/src/gen100/libgrb_api.jl @@ -4,9 +4,34 @@ # Use of this source code is governed by an MIT-style license that can be found # in the LICENSE.md file or at https://opensource.org/licenses/MIT. -# Julia wrapper for header: gurobi_c.h -# Automatically generated using Clang.jl +# !format: off +# ============================ start of prologue.jl ============================ +# These constants are handled explicitly in the prologue.jl to avoid them being +# automatically parsed as `const GRB_LESS_EQUAL = Cchar('<')`. There's probably +# a better way to handle this, but it works for now, and they won't be changing +# in future releases. +const GRB_LESS_EQUAL = '<' +const GRB_GREATER_EQUAL = '>' +const GRB_EQUAL = '=' +const GRB_CONTINUOUS = 'C' +const GRB_BINARY = 'B' +const GRB_INTEGER = 'I' +const GRB_SEMICONT = 'S' +const GRB_SEMIINT = 'N' +# ============================= end of prologue.jl ============================= + +const _GRBmodel = Cvoid + +const GRBmodel = _GRBmodel + +const _GRBbatch = Cvoid + +const GRBbatch = _GRBbatch + +const _GRBenv = Cvoid + +const GRBenv = _GRBenv function GRBgetattrinfo(model, attrname, datatypeP, attrtypeP, settableP) ccall((:GRBgetattrinfo, libgurobi), Cint, (Ptr{GRBmodel}, Ptr{Cchar}, Ptr{Cint}, Ptr{Cint}, Ptr{Cint}), model, attrname, datatypeP, attrtypeP, settableP) @@ -53,7 +78,7 @@ function GRBgetcharattrelement(model, attrname, element, valueP) end function GRBsetcharattrelement(model, attrname, element, newvalue) - ccall((:GRBsetcharattrelement, libgurobi), Cint, (Ptr{GRBmodel}, Ptr{Cchar}, Cint, UInt8), model, attrname, element, newvalue) + ccall((:GRBsetcharattrelement, libgurobi), Cint, (Ptr{GRBmodel}, Ptr{Cchar}, Cint, Cchar), model, attrname, element, newvalue) end function GRBgetcharattrarray(model, attrname, first, len, values) @@ -181,11 +206,11 @@ function GRBcbsolution(cbdata, solution, objvalP) end function GRBcbcut(cbdata, cutlen, cutind, cutval, cutsense, cutrhs) - ccall((:GRBcbcut, libgurobi), Cint, (Ptr{Cvoid}, Cint, Ptr{Cint}, Ptr{Cdouble}, UInt8, Cdouble), cbdata, cutlen, cutind, cutval, cutsense, cutrhs) + ccall((:GRBcbcut, libgurobi), Cint, (Ptr{Cvoid}, Cint, Ptr{Cint}, Ptr{Cdouble}, Cchar, Cdouble), cbdata, cutlen, cutind, cutval, cutsense, cutrhs) end function GRBcblazy(cbdata, lazylen, lazyind, lazyval, lazysense, lazyrhs) - ccall((:GRBcblazy, libgurobi), Cint, (Ptr{Cvoid}, Cint, Ptr{Cint}, Ptr{Cdouble}, UInt8, Cdouble), cbdata, lazylen, lazyind, lazyval, lazysense, lazyrhs) + ccall((:GRBcblazy, libgurobi), Cint, (Ptr{Cvoid}, Cint, Ptr{Cint}, Ptr{Cdouble}, Cchar, Cdouble), cbdata, lazylen, lazyind, lazyval, lazysense, lazyrhs) end function GRBgetcoeff(model, constr, var, valP) @@ -433,7 +458,7 @@ function GRBXloadmodel(env, modelP, Pname, numvars, numconstrs, objsense, objcon end function GRBaddvar(model, numnz, vind, vval, obj, lb, ub, vtype, varname) - ccall((:GRBaddvar, libgurobi), Cint, (Ptr{GRBmodel}, Cint, Ptr{Cint}, Ptr{Cdouble}, Cdouble, Cdouble, Cdouble, UInt8, Ptr{Cchar}), model, numnz, vind, vval, obj, lb, ub, vtype, varname) + ccall((:GRBaddvar, libgurobi), Cint, (Ptr{GRBmodel}, Cint, Ptr{Cint}, Ptr{Cdouble}, Cdouble, Cdouble, Cdouble, Cchar, Ptr{Cchar}), model, numnz, vind, vval, obj, lb, ub, vtype, varname) end function GRBaddvars(model, numvars, numnz, vbeg, vind, vval, obj, lb, ub, vtype, varnames) @@ -445,7 +470,7 @@ function GRBXaddvars(model, numvars, numnz, vbeg, vind, vval, obj, lb, ub, vtype end function GRBaddconstr(model, numnz, cind, cval, sense, rhs, constrname) - ccall((:GRBaddconstr, libgurobi), Cint, (Ptr{GRBmodel}, Cint, Ptr{Cint}, Ptr{Cdouble}, UInt8, Cdouble, Ptr{Cchar}), model, numnz, cind, cval, sense, rhs, constrname) + ccall((:GRBaddconstr, libgurobi), Cint, (Ptr{GRBmodel}, Cint, Ptr{Cint}, Ptr{Cdouble}, Cchar, Cdouble, Ptr{Cchar}), model, numnz, cind, cval, sense, rhs, constrname) end function GRBaddconstrs(model, numconstrs, numnz, cbeg, cind, cval, sense, rhs, constrnames) @@ -497,7 +522,7 @@ function GRBaddgenconstrNorm(model, name, resvar, nvars, vars, which) end function GRBaddgenconstrIndicator(model, name, binvar, binval, nvars, vars, vals, sense, rhs) - ccall((:GRBaddgenconstrIndicator, libgurobi), Cint, (Ptr{GRBmodel}, Ptr{Cchar}, Cint, Cint, Cint, Ptr{Cint}, Ptr{Cdouble}, UInt8, Cdouble), model, name, binvar, binval, nvars, vars, vals, sense, rhs) + ccall((:GRBaddgenconstrIndicator, libgurobi), Cint, (Ptr{GRBmodel}, Ptr{Cchar}, Cint, Cint, Cint, Ptr{Cint}, Ptr{Cdouble}, Cchar, Cdouble), model, name, binvar, binval, nvars, vars, vals, sense, rhs) end function GRBaddgenconstrPWL(model, name, xvar, yvar, npts, xpts, ypts) @@ -545,7 +570,7 @@ function GRBaddgenconstrLogistic(model, name, xvar, yvar, options) end function GRBaddqconstr(model, numlnz, lind, lval, numqnz, qrow, qcol, qval, sense, rhs, QCname) - ccall((:GRBaddqconstr, libgurobi), Cint, (Ptr{GRBmodel}, Cint, Ptr{Cint}, Ptr{Cdouble}, Cint, Ptr{Cint}, Ptr{Cint}, Ptr{Cdouble}, UInt8, Cdouble, Ptr{Cchar}), model, numlnz, lind, lval, numqnz, qrow, qcol, qval, sense, rhs, QCname) + ccall((:GRBaddqconstr, libgurobi), Cint, (Ptr{GRBmodel}, Cint, Ptr{Cint}, Ptr{Cdouble}, Cint, Ptr{Cint}, Ptr{Cint}, Ptr{Cdouble}, Cchar, Cdouble, Ptr{Cchar}), model, numlnz, lind, lval, numqnz, qrow, qcol, qval, sense, rhs, QCname) end function GRBaddcone(model, nummembers, members) @@ -612,6 +637,14 @@ function GRBcomputeIIS(model) ccall((:GRBcomputeIIS, libgurobi), Cint, (Ptr{GRBmodel},), model) end +struct _GRBsvec + len::Cint + ind::Ptr{Cint} + val::Ptr{Cdouble} +end + +const GRBsvec = _GRBsvec + function GRBFSolve(model, b, x) ccall((:GRBFSolve, libgurobi), Cint, (Ptr{GRBmodel}, Ptr{GRBsvec}, Ptr{GRBsvec}), model, b, x) end @@ -717,7 +750,7 @@ function GRBgetstrparaminfo(env, paramname, valueP, defP) end function GRBgetparamflags(env, parname, valueP) - ccall((:GRBgetparamflags, libgurobi), Cint, (Ptr{GRBenv}, Ptr{Cchar}, Ptr{UInt32}), env, parname, valueP) + ccall((:GRBgetparamflags, libgurobi), Cint, (Ptr{GRBenv}, Ptr{Cchar}, Ptr{Cuint}), env, parname, valueP) end function GRBsetparam(env, paramname, value) @@ -917,7 +950,7 @@ function GRBgetbatchattrname(env, n, attrnameP) end function GRBgetbatchattrflags(batch, attrname, flagsP) - ccall((:GRBgetbatchattrflags, libgurobi), Cint, (Ptr{GRBbatch}, Ptr{Cchar}, Ptr{UInt32}), batch, attrname, flagsP) + ccall((:GRBgetbatchattrflags, libgurobi), Cint, (Ptr{GRBbatch}, Ptr{Cchar}, Ptr{Cuint}), batch, attrname, flagsP) end function GRBgetbatchattrinfo(batch, attrname, datatypeP, settableP) @@ -955,3 +988,1162 @@ end function GRBprefetchattr(model, attrname) ccall((:GRBprefetchattr, libgurobi), Cint, (Ptr{GRBmodel}, Ptr{Cchar}), model, attrname) end + +# Skipping MacroDefinition: __cdecl + +const GRB_VERSION_MAJOR = 10 + +const GRB_VERSION_MINOR = 0 + +const GRB_VERSION_TECHNICAL = 3 + +const DEFAULT_CS_PRIORITY = 0 + +const MAX_CS_PRIORITY = 100 + +const DEFAULT_CS_PORT = 61000 + +const DEFAULT_CS_HANGUP = 60 + +const GRB_ERROR_OUT_OF_MEMORY = 10001 + +const GRB_ERROR_NULL_ARGUMENT = 10002 + +const GRB_ERROR_INVALID_ARGUMENT = 10003 + +const GRB_ERROR_UNKNOWN_ATTRIBUTE = 10004 + +const GRB_ERROR_DATA_NOT_AVAILABLE = 10005 + +const GRB_ERROR_INDEX_OUT_OF_RANGE = 10006 + +const GRB_ERROR_UNKNOWN_PARAMETER = 10007 + +const GRB_ERROR_VALUE_OUT_OF_RANGE = 10008 + +const GRB_ERROR_NO_LICENSE = 10009 + +const GRB_ERROR_SIZE_LIMIT_EXCEEDED = 10010 + +const GRB_ERROR_CALLBACK = 10011 + +const GRB_ERROR_FILE_READ = 10012 + +const GRB_ERROR_FILE_WRITE = 10013 + +const GRB_ERROR_NUMERIC = 10014 + +const GRB_ERROR_IIS_NOT_INFEASIBLE = 10015 + +const GRB_ERROR_NOT_FOR_MIP = 10016 + +const GRB_ERROR_OPTIMIZATION_IN_PROGRESS = 10017 + +const GRB_ERROR_DUPLICATES = 10018 + +const GRB_ERROR_NODEFILE = 10019 + +const GRB_ERROR_Q_NOT_PSD = 10020 + +const GRB_ERROR_QCP_EQUALITY_CONSTRAINT = 10021 + +const GRB_ERROR_NETWORK = 10022 + +const GRB_ERROR_JOB_REJECTED = 10023 + +const GRB_ERROR_NOT_SUPPORTED = 10024 + +const GRB_ERROR_EXCEED_2B_NONZEROS = 10025 + +const GRB_ERROR_INVALID_PIECEWISE_OBJ = 10026 + +const GRB_ERROR_UPDATEMODE_CHANGE = 10027 + +const GRB_ERROR_CLOUD = 10028 + +const GRB_ERROR_MODEL_MODIFICATION = 10029 + +const GRB_ERROR_CSWORKER = 10030 + +const GRB_ERROR_TUNE_MODEL_TYPES = 10031 + +const GRB_ERROR_SECURITY = 10032 + +const GRB_MINIMIZE = 1 + +const GRB_MAXIMIZE = -1 + +const GRB_SOS_TYPE1 = 1 + +const GRB_SOS_TYPE2 = 2 + +const GRB_INFINITY = 1.0e100 + +const GRB_UNDEFINED = 1.0e101 + +const GRB_MAXINT = 2000000000 + +const GRB_MAX_NAMELEN = 255 + +const GRB_MAX_STRLEN = 512 + +const GRB_MAX_TAGLEN = 10240 + +const GRB_MAX_CONCURRENT = 64 + +const GRB_INT_ATTR_NUMCONSTRS = "NumConstrs" + +const GRB_INT_ATTR_NUMVARS = "NumVars" + +const GRB_INT_ATTR_NUMSOS = "NumSOS" + +const GRB_INT_ATTR_NUMQCONSTRS = "NumQConstrs" + +const GRB_INT_ATTR_NUMGENCONSTRS = "NumGenConstrs" + +const GRB_INT_ATTR_NUMNZS = "NumNZs" + +const GRB_DBL_ATTR_DNUMNZS = "DNumNZs" + +const GRB_INT_ATTR_NUMQNZS = "NumQNZs" + +const GRB_INT_ATTR_NUMQCNZS = "NumQCNZs" + +const GRB_INT_ATTR_NUMINTVARS = "NumIntVars" + +const GRB_INT_ATTR_NUMBINVARS = "NumBinVars" + +const GRB_INT_ATTR_NUMPWLOBJVARS = "NumPWLObjVars" + +const GRB_STR_ATTR_MODELNAME = "ModelName" + +const GRB_INT_ATTR_MODELSENSE = "ModelSense" + +const GRB_DBL_ATTR_OBJCON = "ObjCon" + +const GRB_INT_ATTR_IS_MIP = "IsMIP" + +const GRB_INT_ATTR_IS_QP = "IsQP" + +const GRB_INT_ATTR_IS_QCP = "IsQCP" + +const GRB_INT_ATTR_IS_MULTIOBJ = "IsMultiObj" + +const GRB_INT_ATTR_LICENSE_EXPIRATION = "LicenseExpiration" + +const GRB_INT_ATTR_NUMTAGGED = "NumTagged" + +const GRB_INT_ATTR_FINGERPRINT = "Fingerprint" + +const GRB_INT_ATTR_BATCHERRORCODE = "BatchErrorCode" + +const GRB_STR_ATTR_BATCHERRORMESSAGE = "BatchErrorMessage" + +const GRB_STR_ATTR_BATCHID = "BatchID" + +const GRB_INT_ATTR_BATCHSTATUS = "BatchStatus" + +const GRB_DBL_ATTR_LB = "LB" + +const GRB_DBL_ATTR_UB = "UB" + +const GRB_DBL_ATTR_OBJ = "Obj" + +const GRB_CHAR_ATTR_VTYPE = "VType" + +const GRB_DBL_ATTR_START = "Start" + +const GRB_DBL_ATTR_PSTART = "PStart" + +const GRB_INT_ATTR_BRANCHPRIORITY = "BranchPriority" + +const GRB_STR_ATTR_VARNAME = "VarName" + +const GRB_INT_ATTR_PWLOBJCVX = "PWLObjCvx" + +const GRB_DBL_ATTR_VARHINTVAL = "VarHintVal" + +const GRB_INT_ATTR_VARHINTPRI = "VarHintPri" + +const GRB_INT_ATTR_PARTITION = "Partition" + +const GRB_INT_ATTR_POOLIGNORE = "PoolIgnore" + +const GRB_STR_ATTR_VTAG = "VTag" + +const GRB_STR_ATTR_CTAG = "CTag" + +const GRB_DBL_ATTR_RHS = "RHS" + +const GRB_DBL_ATTR_DSTART = "DStart" + +const GRB_CHAR_ATTR_SENSE = "Sense" + +const GRB_STR_ATTR_CONSTRNAME = "ConstrName" + +const GRB_INT_ATTR_LAZY = "Lazy" + +const GRB_STR_ATTR_QCTAG = "QCTag" + +const GRB_DBL_ATTR_QCRHS = "QCRHS" + +const GRB_CHAR_ATTR_QCSENSE = "QCSense" + +const GRB_STR_ATTR_QCNAME = "QCName" + +const GRB_INT_ATTR_GENCONSTRTYPE = "GenConstrType" + +const GRB_STR_ATTR_GENCONSTRNAME = "GenConstrName" + +const GRB_INT_ATTR_FUNCPIECES = "FuncPieces" + +const GRB_DBL_ATTR_FUNCPIECEERROR = "FuncPieceError" + +const GRB_DBL_ATTR_FUNCPIECELENGTH = "FuncPieceLength" + +const GRB_DBL_ATTR_FUNCPIECERATIO = "FuncPieceRatio" + +const GRB_DBL_ATTR_MAX_COEFF = "MaxCoeff" + +const GRB_DBL_ATTR_MIN_COEFF = "MinCoeff" + +const GRB_DBL_ATTR_MAX_BOUND = "MaxBound" + +const GRB_DBL_ATTR_MIN_BOUND = "MinBound" + +const GRB_DBL_ATTR_MAX_OBJ_COEFF = "MaxObjCoeff" + +const GRB_DBL_ATTR_MIN_OBJ_COEFF = "MinObjCoeff" + +const GRB_DBL_ATTR_MAX_RHS = "MaxRHS" + +const GRB_DBL_ATTR_MIN_RHS = "MinRHS" + +const GRB_DBL_ATTR_MAX_QCCOEFF = "MaxQCCoeff" + +const GRB_DBL_ATTR_MIN_QCCOEFF = "MinQCCoeff" + +const GRB_DBL_ATTR_MAX_QOBJ_COEFF = "MaxQObjCoeff" + +const GRB_DBL_ATTR_MIN_QOBJ_COEFF = "MinQObjCoeff" + +const GRB_DBL_ATTR_MAX_QCLCOEFF = "MaxQCLCoeff" + +const GRB_DBL_ATTR_MIN_QCLCOEFF = "MinQCLCoeff" + +const GRB_DBL_ATTR_MAX_QCRHS = "MaxQCRHS" + +const GRB_DBL_ATTR_MIN_QCRHS = "MinQCRHS" + +const GRB_DBL_ATTR_RUNTIME = "Runtime" + +const GRB_DBL_ATTR_WORK = "Work" + +const GRB_INT_ATTR_STATUS = "Status" + +const GRB_DBL_ATTR_OBJVAL = "ObjVal" + +const GRB_DBL_ATTR_OBJBOUND = "ObjBound" + +const GRB_DBL_ATTR_OBJBOUNDC = "ObjBoundC" + +const GRB_DBL_ATTR_POOLOBJBOUND = "PoolObjBound" + +const GRB_DBL_ATTR_POOLOBJVAL = "PoolObjVal" + +const GRB_DBL_ATTR_MIPGAP = "MIPGap" + +const GRB_INT_ATTR_SOLCOUNT = "SolCount" + +const GRB_DBL_ATTR_ITERCOUNT = "IterCount" + +const GRB_INT_ATTR_BARITERCOUNT = "BarIterCount" + +const GRB_DBL_ATTR_NODECOUNT = "NodeCount" + +const GRB_DBL_ATTR_OPENNODECOUNT = "OpenNodeCount" + +const GRB_INT_ATTR_HASDUALNORM = "HasDualNorm" + +const GRB_INT_ATTR_CONCURRENTWINMETHOD = "ConcurrentWinMethod" + +const GRB_DBL_ATTR_X = "X" + +const GRB_DBL_ATTR_XN = "Xn" + +const GRB_DBL_ATTR_BARX = "BarX" + +const GRB_DBL_ATTR_RC = "RC" + +const GRB_DBL_ATTR_VDUALNORM = "VDualNorm" + +const GRB_INT_ATTR_VBASIS = "VBasis" + +const GRB_DBL_ATTR_PI = "Pi" + +const GRB_DBL_ATTR_QCPI = "QCPi" + +const GRB_DBL_ATTR_SLACK = "Slack" + +const GRB_DBL_ATTR_QCSLACK = "QCSlack" + +const GRB_DBL_ATTR_CDUALNORM = "CDualNorm" + +const GRB_INT_ATTR_CBASIS = "CBasis" + +const GRB_DBL_ATTR_MAX_VIO = "MaxVio" + +const GRB_DBL_ATTR_BOUND_VIO = "BoundVio" + +const GRB_DBL_ATTR_BOUND_SVIO = "BoundSVio" + +const GRB_INT_ATTR_BOUND_VIO_INDEX = "BoundVioIndex" + +const GRB_INT_ATTR_BOUND_SVIO_INDEX = "BoundSVioIndex" + +const GRB_DBL_ATTR_BOUND_VIO_SUM = "BoundVioSum" + +const GRB_DBL_ATTR_BOUND_SVIO_SUM = "BoundSVioSum" + +const GRB_DBL_ATTR_CONSTR_VIO = "ConstrVio" + +const GRB_DBL_ATTR_CONSTR_SVIO = "ConstrSVio" + +const GRB_INT_ATTR_CONSTR_VIO_INDEX = "ConstrVioIndex" + +const GRB_INT_ATTR_CONSTR_SVIO_INDEX = "ConstrSVioIndex" + +const GRB_DBL_ATTR_CONSTR_VIO_SUM = "ConstrVioSum" + +const GRB_DBL_ATTR_CONSTR_SVIO_SUM = "ConstrSVioSum" + +const GRB_DBL_ATTR_CONSTR_RESIDUAL = "ConstrResidual" + +const GRB_DBL_ATTR_CONSTR_SRESIDUAL = "ConstrSResidual" + +const GRB_INT_ATTR_CONSTR_RESIDUAL_INDEX = "ConstrResidualIndex" + +const GRB_INT_ATTR_CONSTR_SRESIDUAL_INDEX = "ConstrSResidualIndex" + +const GRB_DBL_ATTR_CONSTR_RESIDUAL_SUM = "ConstrResidualSum" + +const GRB_DBL_ATTR_CONSTR_SRESIDUAL_SUM = "ConstrSResidualSum" + +const GRB_DBL_ATTR_DUAL_VIO = "DualVio" + +const GRB_DBL_ATTR_DUAL_SVIO = "DualSVio" + +const GRB_INT_ATTR_DUAL_VIO_INDEX = "DualVioIndex" + +const GRB_INT_ATTR_DUAL_SVIO_INDEX = "DualSVioIndex" + +const GRB_DBL_ATTR_DUAL_VIO_SUM = "DualVioSum" + +const GRB_DBL_ATTR_DUAL_SVIO_SUM = "DualSVioSum" + +const GRB_DBL_ATTR_DUAL_RESIDUAL = "DualResidual" + +const GRB_DBL_ATTR_DUAL_SRESIDUAL = "DualSResidual" + +const GRB_INT_ATTR_DUAL_RESIDUAL_INDEX = "DualResidualIndex" + +const GRB_INT_ATTR_DUAL_SRESIDUAL_INDEX = "DualSResidualIndex" + +const GRB_DBL_ATTR_DUAL_RESIDUAL_SUM = "DualResidualSum" + +const GRB_DBL_ATTR_DUAL_SRESIDUAL_SUM = "DualSResidualSum" + +const GRB_DBL_ATTR_INT_VIO = "IntVio" + +const GRB_INT_ATTR_INT_VIO_INDEX = "IntVioIndex" + +const GRB_DBL_ATTR_INT_VIO_SUM = "IntVioSum" + +const GRB_DBL_ATTR_COMPL_VIO = "ComplVio" + +const GRB_INT_ATTR_COMPL_VIO_INDEX = "ComplVioIndex" + +const GRB_DBL_ATTR_COMPL_VIO_SUM = "ComplVioSum" + +const GRB_DBL_ATTR_KAPPA = "Kappa" + +const GRB_DBL_ATTR_KAPPA_EXACT = "KappaExact" + +const GRB_DBL_ATTR_N2KAPPA = "N2Kappa" + +const GRB_DBL_ATTR_SA_OBJLOW = "SAObjLow" + +const GRB_DBL_ATTR_SA_OBJUP = "SAObjUp" + +const GRB_DBL_ATTR_SA_LBLOW = "SALBLow" + +const GRB_DBL_ATTR_SA_LBUP = "SALBUp" + +const GRB_DBL_ATTR_SA_UBLOW = "SAUBLow" + +const GRB_DBL_ATTR_SA_UBUP = "SAUBUp" + +const GRB_DBL_ATTR_SA_RHSLOW = "SARHSLow" + +const GRB_DBL_ATTR_SA_RHSUP = "SARHSUp" + +const GRB_INT_ATTR_IIS_MINIMAL = "IISMinimal" + +const GRB_INT_ATTR_IIS_LB = "IISLB" + +const GRB_INT_ATTR_IIS_UB = "IISUB" + +const GRB_INT_ATTR_IIS_CONSTR = "IISConstr" + +const GRB_INT_ATTR_IIS_SOS = "IISSOS" + +const GRB_INT_ATTR_IIS_QCONSTR = "IISQConstr" + +const GRB_INT_ATTR_IIS_GENCONSTR = "IISGenConstr" + +const GRB_INT_ATTR_IIS_LBFORCE = "IISLBForce" + +const GRB_INT_ATTR_IIS_UBFORCE = "IISUBForce" + +const GRB_INT_ATTR_IIS_CONSTRFORCE = "IISConstrForce" + +const GRB_INT_ATTR_IIS_SOSFORCE = "IISSOSForce" + +const GRB_INT_ATTR_IIS_QCONSTRFORCE = "IISQConstrForce" + +const GRB_INT_ATTR_IIS_GENCONSTRFORCE = "IISGenConstrForce" + +const GRB_INT_ATTR_TUNE_RESULTCOUNT = "TuneResultCount" + +const GRB_DBL_ATTR_FARKASDUAL = "FarkasDual" + +const GRB_DBL_ATTR_FARKASPROOF = "FarkasProof" + +const GRB_DBL_ATTR_UNBDRAY = "UnbdRay" + +const GRB_INT_ATTR_INFEASVAR = "InfeasVar" + +const GRB_INT_ATTR_UNBDVAR = "UnbdVar" + +const GRB_INT_ATTR_VARPRESTAT = "VarPreStat" + +const GRB_DBL_ATTR_PREFIXVAL = "PreFixVal" + +const GRB_DBL_ATTR_OBJN = "ObjN" + +const GRB_DBL_ATTR_OBJNVAL = "ObjNVal" + +const GRB_DBL_ATTR_OBJNCON = "ObjNCon" + +const GRB_DBL_ATTR_OBJNWEIGHT = "ObjNWeight" + +const GRB_INT_ATTR_OBJNPRIORITY = "ObjNPriority" + +const GRB_DBL_ATTR_OBJNRELTOL = "ObjNRelTol" + +const GRB_DBL_ATTR_OBJNABSTOL = "ObjNAbsTol" + +const GRB_STR_ATTR_OBJNNAME = "ObjNName" + +const GRB_DBL_ATTR_SCENNLB = "ScenNLB" + +const GRB_DBL_ATTR_SCENNUB = "ScenNUB" + +const GRB_DBL_ATTR_SCENNOBJ = "ScenNObj" + +const GRB_DBL_ATTR_SCENNRHS = "ScenNRHS" + +const GRB_STR_ATTR_SCENNNAME = "ScenNName" + +const GRB_DBL_ATTR_SCENNX = "ScenNX" + +const GRB_DBL_ATTR_SCENNOBJBOUND = "ScenNObjBound" + +const GRB_DBL_ATTR_SCENNOBJVAL = "ScenNObjVal" + +const GRB_INT_ATTR_NUMOBJ = "NumObj" + +const GRB_INT_ATTR_NUMSCENARIOS = "NumScenarios" + +const GRB_INT_ATTR_NUMSTART = "NumStart" + +const GRB_DBL_ATTR_Xn = "Xn" + +const GRB_GENCONSTR_MAX = 0 + +const GRB_GENCONSTR_MIN = 1 + +const GRB_GENCONSTR_ABS = 2 + +const GRB_GENCONSTR_AND = 3 + +const GRB_GENCONSTR_OR = 4 + +const GRB_GENCONSTR_NORM = 5 + +const GRB_GENCONSTR_INDICATOR = 6 + +const GRB_GENCONSTR_PWL = 7 + +const GRB_GENCONSTR_POLY = 8 + +const GRB_GENCONSTR_EXP = 9 + +const GRB_GENCONSTR_EXPA = 10 + +const GRB_GENCONSTR_LOG = 11 + +const GRB_GENCONSTR_LOGA = 12 + +const GRB_GENCONSTR_POW = 13 + +const GRB_GENCONSTR_SIN = 14 + +const GRB_GENCONSTR_COS = 15 + +const GRB_GENCONSTR_TAN = 16 + +const GRB_GENCONSTR_LOGISTIC = 17 + +const GRB_CB_POLLING = 0 + +const GRB_CB_PRESOLVE = 1 + +const GRB_CB_SIMPLEX = 2 + +const GRB_CB_MIP = 3 + +const GRB_CB_MIPSOL = 4 + +const GRB_CB_MIPNODE = 5 + +const GRB_CB_MESSAGE = 6 + +const GRB_CB_BARRIER = 7 + +const GRB_CB_MULTIOBJ = 8 + +const GRB_CB_IIS = 9 + +const GRB_CB_PRE_COLDEL = 1000 + +const GRB_CB_PRE_ROWDEL = 1001 + +const GRB_CB_PRE_SENCHG = 1002 + +const GRB_CB_PRE_BNDCHG = 1003 + +const GRB_CB_PRE_COECHG = 1004 + +const GRB_CB_SPX_ITRCNT = 2000 + +const GRB_CB_SPX_OBJVAL = 2001 + +const GRB_CB_SPX_PRIMINF = 2002 + +const GRB_CB_SPX_DUALINF = 2003 + +const GRB_CB_SPX_ISPERT = 2004 + +const GRB_CB_MIP_OBJBST = 3000 + +const GRB_CB_MIP_OBJBND = 3001 + +const GRB_CB_MIP_NODCNT = 3002 + +const GRB_CB_MIP_SOLCNT = 3003 + +const GRB_CB_MIP_CUTCNT = 3004 + +const GRB_CB_MIP_NODLFT = 3005 + +const GRB_CB_MIP_ITRCNT = 3006 + +const GRB_CB_MIP_OPENSCENARIOS = 3007 + +const GRB_CB_MIP_PHASE = 3008 + +const GRB_CB_MIPSOL_SOL = 4001 + +const GRB_CB_MIPSOL_OBJ = 4002 + +const GRB_CB_MIPSOL_OBJBST = 4003 + +const GRB_CB_MIPSOL_OBJBND = 4004 + +const GRB_CB_MIPSOL_NODCNT = 4005 + +const GRB_CB_MIPSOL_SOLCNT = 4006 + +const GRB_CB_MIPSOL_OPENSCENARIOS = 4007 + +const GRB_CB_MIPSOL_PHASE = 4008 + +const GRB_CB_MIPNODE_STATUS = 5001 + +const GRB_CB_MIPNODE_REL = 5002 + +const GRB_CB_MIPNODE_OBJBST = 5003 + +const GRB_CB_MIPNODE_OBJBND = 5004 + +const GRB_CB_MIPNODE_NODCNT = 5005 + +const GRB_CB_MIPNODE_SOLCNT = 5006 + +const GRB_CB_MIPNODE_BRVAR = 5007 + +const GRB_CB_MIPNODE_OPENSCENARIOS = 5008 + +const GRB_CB_MIPNODE_PHASE = 5009 + +const GRB_CB_MSG_STRING = 6001 + +const GRB_CB_RUNTIME = 6002 + +const GRB_CB_WORK = 6003 + +const GRB_CB_BARRIER_ITRCNT = 7001 + +const GRB_CB_BARRIER_PRIMOBJ = 7002 + +const GRB_CB_BARRIER_DUALOBJ = 7003 + +const GRB_CB_BARRIER_PRIMINF = 7004 + +const GRB_CB_BARRIER_DUALINF = 7005 + +const GRB_CB_BARRIER_COMPL = 7006 + +const GRB_CB_MULTIOBJ_OBJCNT = 8001 + +const GRB_CB_MULTIOBJ_SOLCNT = 8002 + +const GRB_CB_MULTIOBJ_SOL = 8003 + +const GRB_CB_IIS_CONSTRMIN = 9001 + +const GRB_CB_IIS_CONSTRMAX = 9002 + +const GRB_CB_IIS_CONSTRGUESS = 9003 + +const GRB_CB_IIS_BOUNDMIN = 9004 + +const GRB_CB_IIS_BOUNDMAX = 9005 + +const GRB_CB_IIS_BOUNDGUESS = 9006 + +const GRB_FEASRELAX_LINEAR = 0 + +const GRB_FEASRELAX_QUADRATIC = 1 + +const GRB_FEASRELAX_CARDINALITY = 2 + +const GRB_LOADED = 1 + +const GRB_OPTIMAL = 2 + +const GRB_INFEASIBLE = 3 + +const GRB_INF_OR_UNBD = 4 + +const GRB_UNBOUNDED = 5 + +const GRB_CUTOFF = 6 + +const GRB_ITERATION_LIMIT = 7 + +const GRB_NODE_LIMIT = 8 + +const GRB_TIME_LIMIT = 9 + +const GRB_SOLUTION_LIMIT = 10 + +const GRB_INTERRUPTED = 11 + +const GRB_NUMERIC = 12 + +const GRB_SUBOPTIMAL = 13 + +const GRB_INPROGRESS = 14 + +const GRB_USER_OBJ_LIMIT = 15 + +const GRB_WORK_LIMIT = 16 + +const GRB_MEM_LIMIT = 17 + +const GRB_BASIC = 0 + +const GRB_NONBASIC_LOWER = -1 + +const GRB_NONBASIC_UPPER = -2 + +const GRB_SUPERBASIC = -3 + +const GRB_INT_PAR_BARITERLIMIT = "BarIterLimit" + +const GRB_DBL_PAR_CUTOFF = "Cutoff" + +const GRB_DBL_PAR_ITERATIONLIMIT = "IterationLimit" + +const GRB_DBL_PAR_NODELIMIT = "NodeLimit" + +const GRB_INT_PAR_SOLUTIONLIMIT = "SolutionLimit" + +const GRB_DBL_PAR_TIMELIMIT = "TimeLimit" + +const GRB_DBL_PAR_WORKLIMIT = "WorkLimit" + +const GRB_DBL_PAR_MEMLIMIT = "MemLimit" + +const GRB_DBL_PAR_SOFTMEMLIMIT = "SoftMemLimit" + +const GRB_DBL_PAR_BESTOBJSTOP = "BestObjStop" + +const GRB_DBL_PAR_BESTBDSTOP = "BestBdStop" + +const GRB_DBL_PAR_FEASIBILITYTOL = "FeasibilityTol" + +const GRB_DBL_PAR_INTFEASTOL = "IntFeasTol" + +const GRB_DBL_PAR_MARKOWITZTOL = "MarkowitzTol" + +const GRB_DBL_PAR_MIPGAP = "MIPGap" + +const GRB_DBL_PAR_MIPGAPABS = "MIPGapAbs" + +const GRB_DBL_PAR_OPTIMALITYTOL = "OptimalityTol" + +const GRB_DBL_PAR_PSDTOL = "PSDTol" + +const GRB_INT_PAR_METHOD = "Method" + +const GRB_DBL_PAR_PERTURBVALUE = "PerturbValue" + +const GRB_DBL_PAR_OBJSCALE = "ObjScale" + +const GRB_INT_PAR_SCALEFLAG = "ScaleFlag" + +const GRB_INT_PAR_SIMPLEXPRICING = "SimplexPricing" + +const GRB_INT_PAR_QUAD = "Quad" + +const GRB_INT_PAR_NORMADJUST = "NormAdjust" + +const GRB_INT_PAR_SIFTING = "Sifting" + +const GRB_INT_PAR_SIFTMETHOD = "SiftMethod" + +const GRB_INT_PAR_LPWARMSTART = "LPWarmStart" + +const GRB_INT_PAR_NETWORKALG = "NetworkAlg" + +const GRB_DBL_PAR_BARCONVTOL = "BarConvTol" + +const GRB_INT_PAR_BARCORRECTORS = "BarCorrectors" + +const GRB_INT_PAR_BARHOMOGENEOUS = "BarHomogeneous" + +const GRB_INT_PAR_BARORDER = "BarOrder" + +const GRB_DBL_PAR_BARQCPCONVTOL = "BarQCPConvTol" + +const GRB_INT_PAR_CROSSOVER = "Crossover" + +const GRB_INT_PAR_CROSSOVERBASIS = "CrossoverBasis" + +const GRB_INT_PAR_BRANCHDIR = "BranchDir" + +const GRB_INT_PAR_DEGENMOVES = "DegenMoves" + +const GRB_INT_PAR_DISCONNECTED = "Disconnected" + +const GRB_DBL_PAR_HEURISTICS = "Heuristics" + +const GRB_DBL_PAR_IMPROVESTARTGAP = "ImproveStartGap" + +const GRB_DBL_PAR_IMPROVESTARTTIME = "ImproveStartTime" + +const GRB_DBL_PAR_IMPROVESTARTNODES = "ImproveStartNodes" + +const GRB_INT_PAR_INTEGRALITYFOCUS = "IntegralityFocus" + +const GRB_INT_PAR_MINRELNODES = "MinRelNodes" + +const GRB_INT_PAR_MIPFOCUS = "MIPFocus" + +const GRB_INT_PAR_NLPHEUR = "NLPHeur" + +const GRB_STR_PAR_NODEFILEDIR = "NodefileDir" + +const GRB_DBL_PAR_NODEFILESTART = "NodefileStart" + +const GRB_INT_PAR_NODEMETHOD = "NodeMethod" + +const GRB_DBL_PAR_NORELHEURTIME = "NoRelHeurTime" + +const GRB_DBL_PAR_NORELHEURWORK = "NoRelHeurWork" + +const GRB_INT_PAR_OBBT = "OBBT" + +const GRB_INT_PAR_PUMPPASSES = "PumpPasses" + +const GRB_INT_PAR_RINS = "RINS" + +const GRB_STR_PAR_SOLFILES = "SolFiles" + +const GRB_INT_PAR_STARTNODELIMIT = "StartNodeLimit" + +const GRB_INT_PAR_SUBMIPNODES = "SubMIPNodes" + +const GRB_INT_PAR_SYMMETRY = "Symmetry" + +const GRB_INT_PAR_VARBRANCH = "VarBranch" + +const GRB_INT_PAR_SOLUTIONNUMBER = "SolutionNumber" + +const GRB_INT_PAR_ZEROOBJNODES = "ZeroObjNodes" + +const GRB_INT_PAR_CUTS = "Cuts" + +const GRB_INT_PAR_CLIQUECUTS = "CliqueCuts" + +const GRB_INT_PAR_COVERCUTS = "CoverCuts" + +const GRB_INT_PAR_FLOWCOVERCUTS = "FlowCoverCuts" + +const GRB_INT_PAR_FLOWPATHCUTS = "FlowPathCuts" + +const GRB_INT_PAR_GUBCOVERCUTS = "GUBCoverCuts" + +const GRB_INT_PAR_IMPLIEDCUTS = "ImpliedCuts" + +const GRB_INT_PAR_PROJIMPLIEDCUTS = "ProjImpliedCuts" + +const GRB_INT_PAR_MIPSEPCUTS = "MIPSepCuts" + +const GRB_INT_PAR_MIRCUTS = "MIRCuts" + +const GRB_INT_PAR_STRONGCGCUTS = "StrongCGCuts" + +const GRB_INT_PAR_MODKCUTS = "ModKCuts" + +const GRB_INT_PAR_ZEROHALFCUTS = "ZeroHalfCuts" + +const GRB_INT_PAR_NETWORKCUTS = "NetworkCuts" + +const GRB_INT_PAR_SUBMIPCUTS = "SubMIPCuts" + +const GRB_INT_PAR_INFPROOFCUTS = "InfProofCuts" + +const GRB_INT_PAR_RLTCUTS = "RLTCuts" + +const GRB_INT_PAR_RELAXLIFTCUTS = "RelaxLiftCuts" + +const GRB_INT_PAR_BQPCUTS = "BQPCuts" + +const GRB_INT_PAR_PSDCUTS = "PSDCuts" + +const GRB_INT_PAR_LIFTPROJECTCUTS = "LiftProjectCuts" + +const GRB_INT_PAR_CUTAGGPASSES = "CutAggPasses" + +const GRB_INT_PAR_CUTPASSES = "CutPasses" + +const GRB_INT_PAR_GOMORYPASSES = "GomoryPasses" + +const GRB_STR_PAR_WORKERPOOL = "WorkerPool" + +const GRB_STR_PAR_WORKERPASSWORD = "WorkerPassword" + +const GRB_STR_PAR_COMPUTESERVER = "ComputeServer" + +const GRB_STR_PAR_TOKENSERVER = "TokenServer" + +const GRB_STR_PAR_SERVERPASSWORD = "ServerPassword" + +const GRB_INT_PAR_SERVERTIMEOUT = "ServerTimeout" + +const GRB_STR_PAR_CSROUTER = "CSRouter" + +const GRB_STR_PAR_CSGROUP = "CSGroup" + +const GRB_DBL_PAR_CSQUEUETIMEOUT = "CSQueueTimeout" + +const GRB_INT_PAR_CSPRIORITY = "CSPriority" + +const GRB_INT_PAR_CSIDLETIMEOUT = "CSIdleTimeout" + +const GRB_INT_PAR_CSTLSINSECURE = "CSTLSInsecure" + +const GRB_INT_PAR_TSPORT = "TSPort" + +const GRB_STR_PAR_CLOUDACCESSID = "CloudAccessID" + +const GRB_STR_PAR_CLOUDSECRETKEY = "CloudSecretKey" + +const GRB_STR_PAR_CLOUDPOOL = "CloudPool" + +const GRB_STR_PAR_CLOUDHOST = "CloudHost" + +const GRB_STR_PAR_CSMANAGER = "CSManager" + +const GRB_STR_PAR_CSAUTHTOKEN = "CSAuthToken" + +const GRB_STR_PAR_CSAPIACCESSID = "CSAPIAccessID" + +const GRB_STR_PAR_CSAPISECRET = "CSAPISecret" + +const GRB_INT_PAR_CSBATCHMODE = "CSBatchMode" + +const GRB_STR_PAR_USERNAME = "Username" + +const GRB_STR_PAR_CSAPPNAME = "CSAppName" + +const GRB_INT_PAR_CSCLIENTLOG = "CSClientLog" + +const GRB_STR_PAR_WLSACCESSID = "WLSAccessID" + +const GRB_STR_PAR_WLSSECRET = "WLSSecret" + +const GRB_INT_PAR_WLSTOKENDURATION = "WLSTokenDuration" + +const GRB_DBL_PAR_WLSTOKENREFRESH = "WLSTokenRefresh" + +const GRB_STR_PAR_WLSTOKEN = "WLSToken" + +const GRB_INT_PAR_LICENSEID = "LicenseID" + +const GRB_INT_PAR_AGGREGATE = "Aggregate" + +const GRB_INT_PAR_AGGFILL = "AggFill" + +const GRB_INT_PAR_CONCURRENTMIP = "ConcurrentMIP" + +const GRB_INT_PAR_CONCURRENTJOBS = "ConcurrentJobs" + +const GRB_INT_PAR_DISPLAYINTERVAL = "DisplayInterval" + +const GRB_INT_PAR_DISTRIBUTEDMIPJOBS = "DistributedMIPJobs" + +const GRB_INT_PAR_DUALREDUCTIONS = "DualReductions" + +const GRB_DBL_PAR_FEASRELAXBIGM = "FeasRelaxBigM" + +const GRB_INT_PAR_IISMETHOD = "IISMethod" + +const GRB_INT_PAR_INFUNBDINFO = "InfUnbdInfo" + +const GRB_INT_PAR_JSONSOLDETAIL = "JSONSolDetail" + +const GRB_INT_PAR_LAZYCONSTRAINTS = "LazyConstraints" + +const GRB_STR_PAR_LOGFILE = "LogFile" + +const GRB_INT_PAR_LOGTOCONSOLE = "LogToConsole" + +const GRB_INT_PAR_MIQCPMETHOD = "MIQCPMethod" + +const GRB_INT_PAR_NONCONVEX = "NonConvex" + +const GRB_INT_PAR_NUMERICFOCUS = "NumericFocus" + +const GRB_INT_PAR_OUTPUTFLAG = "OutputFlag" + +const GRB_INT_PAR_PRECRUSH = "PreCrush" + +const GRB_INT_PAR_PREDEPROW = "PreDepRow" + +const GRB_INT_PAR_PREDUAL = "PreDual" + +const GRB_INT_PAR_PREPASSES = "PrePasses" + +const GRB_INT_PAR_PREQLINEARIZE = "PreQLinearize" + +const GRB_INT_PAR_PRESOLVE = "Presolve" + +const GRB_DBL_PAR_PRESOS1BIGM = "PreSOS1BigM" + +const GRB_DBL_PAR_PRESOS2BIGM = "PreSOS2BigM" + +const GRB_INT_PAR_PRESOS1ENCODING = "PreSOS1Encoding" + +const GRB_INT_PAR_PRESOS2ENCODING = "PreSOS2Encoding" + +const GRB_INT_PAR_PRESPARSIFY = "PreSparsify" + +const GRB_INT_PAR_PREMIQCPFORM = "PreMIQCPForm" + +const GRB_INT_PAR_QCPDUAL = "QCPDual" + +const GRB_INT_PAR_RECORD = "Record" + +const GRB_STR_PAR_RESULTFILE = "ResultFile" + +const GRB_INT_PAR_SEED = "Seed" + +const GRB_INT_PAR_SOLUTIONTARGET = "SolutionTarget" + +const GRB_INT_PAR_THREADS = "Threads" + +const GRB_DBL_PAR_TUNETIMELIMIT = "TuneTimeLimit" + +const GRB_INT_PAR_TUNERESULTS = "TuneResults" + +const GRB_INT_PAR_TUNECRITERION = "TuneCriterion" + +const GRB_INT_PAR_TUNETRIALS = "TuneTrials" + +const GRB_INT_PAR_TUNEOUTPUT = "TuneOutput" + +const GRB_INT_PAR_TUNEJOBS = "TuneJobs" + +const GRB_DBL_PAR_TUNECLEANUP = "TuneCleanup" + +const GRB_DBL_PAR_TUNETARGETMIPGAP = "TuneTargetMIPGap" + +const GRB_DBL_PAR_TUNETARGETTIME = "TuneTargetTime" + +const GRB_INT_PAR_TUNEMETRIC = "TuneMetric" + +const GRB_INT_PAR_UPDATEMODE = "UpdateMode" + +const GRB_INT_PAR_OBJNUMBER = "ObjNumber" + +const GRB_INT_PAR_MULTIOBJMETHOD = "MultiObjMethod" + +const GRB_INT_PAR_MULTIOBJPRE = "MultiObjPre" + +const GRB_INT_PAR_SCENARIONUMBER = "ScenarioNumber" + +const GRB_INT_PAR_POOLSOLUTIONS = "PoolSolutions" + +const GRB_DBL_PAR_POOLGAP = "PoolGap" + +const GRB_DBL_PAR_POOLGAPABS = "PoolGapAbs" + +const GRB_INT_PAR_POOLSEARCHMODE = "PoolSearchMode" + +const GRB_INT_PAR_IGNORENAMES = "IgnoreNames" + +const GRB_INT_PAR_STARTNUMBER = "StartNumber" + +const GRB_INT_PAR_PARTITIONPLACE = "PartitionPlace" + +const GRB_INT_PAR_FUNCPIECES = "FuncPieces" + +const GRB_DBL_PAR_FUNCPIECELENGTH = "FuncPieceLength" + +const GRB_DBL_PAR_FUNCPIECEERROR = "FuncPieceError" + +const GRB_DBL_PAR_FUNCPIECERATIO = "FuncPieceRatio" + +const GRB_DBL_PAR_FUNCMAXVAL = "FuncMaxVal" + +const GRB_STR_PAR_DUMMY = "Dummy" + +const GRB_STR_PAR_JOBID = "JobID" + +const GRB_CUTS_AUTO = -1 + +const GRB_CUTS_OFF = 0 + +const GRB_CUTS_CONSERVATIVE = 1 + +const GRB_CUTS_AGGRESSIVE = 2 + +const GRB_CUTS_VERYAGGRESSIVE = 3 + +const GRB_PRESOLVE_AUTO = -1 + +const GRB_PRESOLVE_OFF = 0 + +const GRB_PRESOLVE_CONSERVATIVE = 1 + +const GRB_PRESOLVE_AGGRESSIVE = 2 + +const GRB_METHOD_NONE = -1 + +const GRB_METHOD_AUTO = -1 + +const GRB_METHOD_PRIMAL = 0 + +const GRB_METHOD_DUAL = 1 + +const GRB_METHOD_BARRIER = 2 + +const GRB_METHOD_CONCURRENT = 3 + +const GRB_METHOD_DETERMINISTIC_CONCURRENT = 4 + +const GRB_METHOD_DETERMINISTIC_CONCURRENT_SIMPLEX = 5 + +const GRB_BARHOMOGENEOUS_AUTO = -1 + +const GRB_BARHOMOGENEOUS_OFF = 0 + +const GRB_BARHOMOGENEOUS_ON = 1 + +const GRB_MIPFOCUS_BALANCED = 0 + +const GRB_MIPFOCUS_FEASIBILITY = 1 + +const GRB_MIPFOCUS_OPTIMALITY = 2 + +const GRB_MIPFOCUS_BESTBOUND = 3 + +const GRB_BARORDER_AUTOMATIC = -1 + +const GRB_BARORDER_AMD = 0 + +const GRB_BARORDER_NESTEDDISSECTION = 1 + +const GRB_SIMPLEXPRICING_AUTO = -1 + +const GRB_SIMPLEXPRICING_PARTIAL = 0 + +const GRB_SIMPLEXPRICING_STEEPEST_EDGE = 1 + +const GRB_SIMPLEXPRICING_DEVEX = 2 + +const GRB_SIMPLEXPRICING_STEEPEST_QUICK = 3 + +const GRB_VARBRANCH_AUTO = -1 + +const GRB_VARBRANCH_PSEUDO_REDUCED = 0 + +const GRB_VARBRANCH_PSEUDO_SHADOW = 1 + +const GRB_VARBRANCH_MAX_INFEAS = 2 + +const GRB_VARBRANCH_STRONG = 3 + +const GRB_PARTITION_EARLY = 16 + +const GRB_PARTITION_ROOTSTART = 8 + +const GRB_PARTITION_ROOTEND = 4 + +const GRB_PARTITION_NODES = 2 + +const GRB_PARTITION_CLEANUP = 1 + +const GRB_PHASE_MIP_NOREL = 0 + +const GRB_PHASE_MIP_SEARCH = 1 + +const GRB_PHASE_MIP_IMPROVE = 2 + +const GRB_BATCH_STATUS_UNKNOWN = 0 + +const GRB_BATCH_CREATED = 1 + +const GRB_BATCH_SUBMITTED = 2 + +const GRB_BATCH_ABORTED = 3 + +const GRB_BATCH_FAILED = 4 + +const GRB_BATCH_COMPLETED = 5 + diff --git a/src/gen100/libgrb_common.jl b/src/gen100/libgrb_common.jl deleted file mode 100644 index 8daba479..00000000 --- a/src/gen100/libgrb_common.jl +++ /dev/null @@ -1,623 +0,0 @@ -# Copyright (c) 2015 Dahua Lin, Miles Lubin, Joey Huchette, Iain Dunning, and -# contributors -# -# Use of this source code is governed by an MIT-style license that can be found -# in the LICENSE.md file or at https://opensource.org/licenses/MIT. - -# Automatically generated using Clang.jl - - -# Skipping MacroDefinition: GRB_DEPRECATED ( WHY , X ) X __attribute__ ( ( deprecated ) ) - -const GRB_VERSION_MAJOR = 10 -const GRB_VERSION_MINOR = 0 -const GRB_VERSION_TECHNICAL = 0 -const DEFAULT_CS_PRIORITY = 0 -const MAX_CS_PRIORITY = 100 -const DEFAULT_CS_PORT = 61000 -const DEFAULT_CS_HANGUP = 60 -const GRB_ERROR_OUT_OF_MEMORY = 10001 -const GRB_ERROR_NULL_ARGUMENT = 10002 -const GRB_ERROR_INVALID_ARGUMENT = 10003 -const GRB_ERROR_UNKNOWN_ATTRIBUTE = 10004 -const GRB_ERROR_DATA_NOT_AVAILABLE = 10005 -const GRB_ERROR_INDEX_OUT_OF_RANGE = 10006 -const GRB_ERROR_UNKNOWN_PARAMETER = 10007 -const GRB_ERROR_VALUE_OUT_OF_RANGE = 10008 -const GRB_ERROR_NO_LICENSE = 10009 -const GRB_ERROR_SIZE_LIMIT_EXCEEDED = 10010 -const GRB_ERROR_CALLBACK = 10011 -const GRB_ERROR_FILE_READ = 10012 -const GRB_ERROR_FILE_WRITE = 10013 -const GRB_ERROR_NUMERIC = 10014 -const GRB_ERROR_IIS_NOT_INFEASIBLE = 10015 -const GRB_ERROR_NOT_FOR_MIP = 10016 -const GRB_ERROR_OPTIMIZATION_IN_PROGRESS = 10017 -const GRB_ERROR_DUPLICATES = 10018 -const GRB_ERROR_NODEFILE = 10019 -const GRB_ERROR_Q_NOT_PSD = 10020 -const GRB_ERROR_QCP_EQUALITY_CONSTRAINT = 10021 -const GRB_ERROR_NETWORK = 10022 -const GRB_ERROR_JOB_REJECTED = 10023 -const GRB_ERROR_NOT_SUPPORTED = 10024 -const GRB_ERROR_EXCEED_2B_NONZEROS = 10025 -const GRB_ERROR_INVALID_PIECEWISE_OBJ = 10026 -const GRB_ERROR_UPDATEMODE_CHANGE = 10027 -const GRB_ERROR_CLOUD = 10028 -const GRB_ERROR_MODEL_MODIFICATION = 10029 -const GRB_ERROR_CSWORKER = 10030 -const GRB_ERROR_TUNE_MODEL_TYPES = 10031 -const GRB_ERROR_SECURITY = 10032 -const GRB_LESS_EQUAL = '<' -const GRB_GREATER_EQUAL = '>' -const GRB_EQUAL = '=' -const GRB_CONTINUOUS = 'C' -const GRB_BINARY = 'B' -const GRB_INTEGER = 'I' -const GRB_SEMICONT = 'S' -const GRB_SEMIINT = 'N' -const GRB_MINIMIZE = 1 -const GRB_MAXIMIZE = -1 -const GRB_SOS_TYPE1 = 1 -const GRB_SOS_TYPE2 = 2 -const GRB_INFINITY = 1.0e100 -const GRB_UNDEFINED = 1.0e101 -const GRB_MAXINT = 2000000000 -const GRB_MAX_NAMELEN = 255 -const GRB_MAX_STRLEN = 512 -const GRB_MAX_TAGLEN = 10240 -const GRB_MAX_CONCURRENT = 64 - -# Skipping MacroDefinition: CB_ARGS GRBmodel * model , void * cbdata , int where , void * usrdata -# Skipping MacroDefinition: LOGCB_ARGS char * msg , void * logdata - -const GRB_INT_ATTR_NUMCONSTRS = "NumConstrs" -const GRB_INT_ATTR_NUMVARS = "NumVars" -const GRB_INT_ATTR_NUMSOS = "NumSOS" -const GRB_INT_ATTR_NUMQCONSTRS = "NumQConstrs" -const GRB_INT_ATTR_NUMGENCONSTRS = "NumGenConstrs" -const GRB_INT_ATTR_NUMNZS = "NumNZs" -const GRB_DBL_ATTR_DNUMNZS = "DNumNZs" -const GRB_INT_ATTR_NUMQNZS = "NumQNZs" -const GRB_INT_ATTR_NUMQCNZS = "NumQCNZs" -const GRB_INT_ATTR_NUMINTVARS = "NumIntVars" -const GRB_INT_ATTR_NUMBINVARS = "NumBinVars" -const GRB_INT_ATTR_NUMPWLOBJVARS = "NumPWLObjVars" -const GRB_STR_ATTR_MODELNAME = "ModelName" -const GRB_INT_ATTR_MODELSENSE = "ModelSense" -const GRB_DBL_ATTR_OBJCON = "ObjCon" -const GRB_INT_ATTR_IS_MIP = "IsMIP" -const GRB_INT_ATTR_IS_QP = "IsQP" -const GRB_INT_ATTR_IS_QCP = "IsQCP" -const GRB_INT_ATTR_IS_MULTIOBJ = "IsMultiObj" -const GRB_INT_ATTR_LICENSE_EXPIRATION = "LicenseExpiration" -const GRB_INT_ATTR_NUMTAGGED = "NumTagged" -const GRB_INT_ATTR_FINGERPRINT = "Fingerprint" -const GRB_INT_ATTR_BATCHERRORCODE = "BatchErrorCode" -const GRB_STR_ATTR_BATCHERRORMESSAGE = "BatchErrorMessage" -const GRB_STR_ATTR_BATCHID = "BatchID" -const GRB_INT_ATTR_BATCHSTATUS = "BatchStatus" -const GRB_DBL_ATTR_LB = "LB" -const GRB_DBL_ATTR_UB = "UB" -const GRB_DBL_ATTR_OBJ = "Obj" -const GRB_CHAR_ATTR_VTYPE = "VType" -const GRB_DBL_ATTR_START = "Start" -const GRB_DBL_ATTR_PSTART = "PStart" -const GRB_INT_ATTR_BRANCHPRIORITY = "BranchPriority" -const GRB_STR_ATTR_VARNAME = "VarName" -const GRB_INT_ATTR_PWLOBJCVX = "PWLObjCvx" -const GRB_DBL_ATTR_VARHINTVAL = "VarHintVal" -const GRB_INT_ATTR_VARHINTPRI = "VarHintPri" -const GRB_INT_ATTR_PARTITION = "Partition" -const GRB_INT_ATTR_POOLIGNORE = "PoolIgnore" -const GRB_STR_ATTR_VTAG = "VTag" -const GRB_STR_ATTR_CTAG = "CTag" -const GRB_DBL_ATTR_RHS = "RHS" -const GRB_DBL_ATTR_DSTART = "DStart" -const GRB_CHAR_ATTR_SENSE = "Sense" -const GRB_STR_ATTR_CONSTRNAME = "ConstrName" -const GRB_INT_ATTR_LAZY = "Lazy" -const GRB_STR_ATTR_QCTAG = "QCTag" -const GRB_DBL_ATTR_QCRHS = "QCRHS" -const GRB_CHAR_ATTR_QCSENSE = "QCSense" -const GRB_STR_ATTR_QCNAME = "QCName" -const GRB_INT_ATTR_GENCONSTRTYPE = "GenConstrType" -const GRB_STR_ATTR_GENCONSTRNAME = "GenConstrName" -const GRB_INT_ATTR_FUNCPIECES = "FuncPieces" -const GRB_DBL_ATTR_FUNCPIECEERROR = "FuncPieceError" -const GRB_DBL_ATTR_FUNCPIECELENGTH = "FuncPieceLength" -const GRB_DBL_ATTR_FUNCPIECERATIO = "FuncPieceRatio" -const GRB_DBL_ATTR_MAX_COEFF = "MaxCoeff" -const GRB_DBL_ATTR_MIN_COEFF = "MinCoeff" -const GRB_DBL_ATTR_MAX_BOUND = "MaxBound" -const GRB_DBL_ATTR_MIN_BOUND = "MinBound" -const GRB_DBL_ATTR_MAX_OBJ_COEFF = "MaxObjCoeff" -const GRB_DBL_ATTR_MIN_OBJ_COEFF = "MinObjCoeff" -const GRB_DBL_ATTR_MAX_RHS = "MaxRHS" -const GRB_DBL_ATTR_MIN_RHS = "MinRHS" -const GRB_DBL_ATTR_MAX_QCCOEFF = "MaxQCCoeff" -const GRB_DBL_ATTR_MIN_QCCOEFF = "MinQCCoeff" -const GRB_DBL_ATTR_MAX_QOBJ_COEFF = "MaxQObjCoeff" -const GRB_DBL_ATTR_MIN_QOBJ_COEFF = "MinQObjCoeff" -const GRB_DBL_ATTR_MAX_QCLCOEFF = "MaxQCLCoeff" -const GRB_DBL_ATTR_MIN_QCLCOEFF = "MinQCLCoeff" -const GRB_DBL_ATTR_MAX_QCRHS = "MaxQCRHS" -const GRB_DBL_ATTR_MIN_QCRHS = "MinQCRHS" -const GRB_DBL_ATTR_RUNTIME = "Runtime" -const GRB_DBL_ATTR_WORK = "Work" -const GRB_INT_ATTR_STATUS = "Status" -const GRB_DBL_ATTR_OBJVAL = "ObjVal" -const GRB_DBL_ATTR_OBJBOUND = "ObjBound" -const GRB_DBL_ATTR_OBJBOUNDC = "ObjBoundC" -const GRB_DBL_ATTR_POOLOBJBOUND = "PoolObjBound" -const GRB_DBL_ATTR_POOLOBJVAL = "PoolObjVal" -const GRB_DBL_ATTR_MIPGAP = "MIPGap" -const GRB_INT_ATTR_SOLCOUNT = "SolCount" -const GRB_DBL_ATTR_ITERCOUNT = "IterCount" -const GRB_INT_ATTR_BARITERCOUNT = "BarIterCount" -const GRB_DBL_ATTR_NODECOUNT = "NodeCount" -const GRB_DBL_ATTR_OPENNODECOUNT = "OpenNodeCount" -const GRB_INT_ATTR_HASDUALNORM = "HasDualNorm" -const GRB_INT_ATTR_CONCURRENTWINMETHOD = "ConcurrentWinMethod" -const GRB_DBL_ATTR_X = "X" -const GRB_DBL_ATTR_XN = "Xn" -const GRB_DBL_ATTR_BARX = "BarX" -const GRB_DBL_ATTR_RC = "RC" -const GRB_DBL_ATTR_VDUALNORM = "VDualNorm" -const GRB_INT_ATTR_VBASIS = "VBasis" -const GRB_DBL_ATTR_PI = "Pi" -const GRB_DBL_ATTR_QCPI = "QCPi" -const GRB_DBL_ATTR_SLACK = "Slack" -const GRB_DBL_ATTR_QCSLACK = "QCSlack" -const GRB_DBL_ATTR_CDUALNORM = "CDualNorm" -const GRB_INT_ATTR_CBASIS = "CBasis" -const GRB_DBL_ATTR_MAX_VIO = "MaxVio" -const GRB_DBL_ATTR_BOUND_VIO = "BoundVio" -const GRB_DBL_ATTR_BOUND_SVIO = "BoundSVio" -const GRB_INT_ATTR_BOUND_VIO_INDEX = "BoundVioIndex" -const GRB_INT_ATTR_BOUND_SVIO_INDEX = "BoundSVioIndex" -const GRB_DBL_ATTR_BOUND_VIO_SUM = "BoundVioSum" -const GRB_DBL_ATTR_BOUND_SVIO_SUM = "BoundSVioSum" -const GRB_DBL_ATTR_CONSTR_VIO = "ConstrVio" -const GRB_DBL_ATTR_CONSTR_SVIO = "ConstrSVio" -const GRB_INT_ATTR_CONSTR_VIO_INDEX = "ConstrVioIndex" -const GRB_INT_ATTR_CONSTR_SVIO_INDEX = "ConstrSVioIndex" -const GRB_DBL_ATTR_CONSTR_VIO_SUM = "ConstrVioSum" -const GRB_DBL_ATTR_CONSTR_SVIO_SUM = "ConstrSVioSum" -const GRB_DBL_ATTR_CONSTR_RESIDUAL = "ConstrResidual" -const GRB_DBL_ATTR_CONSTR_SRESIDUAL = "ConstrSResidual" -const GRB_INT_ATTR_CONSTR_RESIDUAL_INDEX = "ConstrResidualIndex" -const GRB_INT_ATTR_CONSTR_SRESIDUAL_INDEX = "ConstrSResidualIndex" -const GRB_DBL_ATTR_CONSTR_RESIDUAL_SUM = "ConstrResidualSum" -const GRB_DBL_ATTR_CONSTR_SRESIDUAL_SUM = "ConstrSResidualSum" -const GRB_DBL_ATTR_DUAL_VIO = "DualVio" -const GRB_DBL_ATTR_DUAL_SVIO = "DualSVio" -const GRB_INT_ATTR_DUAL_VIO_INDEX = "DualVioIndex" -const GRB_INT_ATTR_DUAL_SVIO_INDEX = "DualSVioIndex" -const GRB_DBL_ATTR_DUAL_VIO_SUM = "DualVioSum" -const GRB_DBL_ATTR_DUAL_SVIO_SUM = "DualSVioSum" -const GRB_DBL_ATTR_DUAL_RESIDUAL = "DualResidual" -const GRB_DBL_ATTR_DUAL_SRESIDUAL = "DualSResidual" -const GRB_INT_ATTR_DUAL_RESIDUAL_INDEX = "DualResidualIndex" -const GRB_INT_ATTR_DUAL_SRESIDUAL_INDEX = "DualSResidualIndex" -const GRB_DBL_ATTR_DUAL_RESIDUAL_SUM = "DualResidualSum" -const GRB_DBL_ATTR_DUAL_SRESIDUAL_SUM = "DualSResidualSum" -const GRB_DBL_ATTR_INT_VIO = "IntVio" -const GRB_INT_ATTR_INT_VIO_INDEX = "IntVioIndex" -const GRB_DBL_ATTR_INT_VIO_SUM = "IntVioSum" -const GRB_DBL_ATTR_COMPL_VIO = "ComplVio" -const GRB_INT_ATTR_COMPL_VIO_INDEX = "ComplVioIndex" -const GRB_DBL_ATTR_COMPL_VIO_SUM = "ComplVioSum" -const GRB_DBL_ATTR_KAPPA = "Kappa" -const GRB_DBL_ATTR_KAPPA_EXACT = "KappaExact" -const GRB_DBL_ATTR_N2KAPPA = "N2Kappa" -const GRB_DBL_ATTR_SA_OBJLOW = "SAObjLow" -const GRB_DBL_ATTR_SA_OBJUP = "SAObjUp" -const GRB_DBL_ATTR_SA_LBLOW = "SALBLow" -const GRB_DBL_ATTR_SA_LBUP = "SALBUp" -const GRB_DBL_ATTR_SA_UBLOW = "SAUBLow" -const GRB_DBL_ATTR_SA_UBUP = "SAUBUp" -const GRB_DBL_ATTR_SA_RHSLOW = "SARHSLow" -const GRB_DBL_ATTR_SA_RHSUP = "SARHSUp" -const GRB_INT_ATTR_IIS_MINIMAL = "IISMinimal" -const GRB_INT_ATTR_IIS_LB = "IISLB" -const GRB_INT_ATTR_IIS_UB = "IISUB" -const GRB_INT_ATTR_IIS_CONSTR = "IISConstr" -const GRB_INT_ATTR_IIS_SOS = "IISSOS" -const GRB_INT_ATTR_IIS_QCONSTR = "IISQConstr" -const GRB_INT_ATTR_IIS_GENCONSTR = "IISGenConstr" -const GRB_INT_ATTR_IIS_LBFORCE = "IISLBForce" -const GRB_INT_ATTR_IIS_UBFORCE = "IISUBForce" -const GRB_INT_ATTR_IIS_CONSTRFORCE = "IISConstrForce" -const GRB_INT_ATTR_IIS_SOSFORCE = "IISSOSForce" -const GRB_INT_ATTR_IIS_QCONSTRFORCE = "IISQConstrForce" -const GRB_INT_ATTR_IIS_GENCONSTRFORCE = "IISGenConstrForce" -const GRB_INT_ATTR_TUNE_RESULTCOUNT = "TuneResultCount" -const GRB_DBL_ATTR_FARKASDUAL = "FarkasDual" -const GRB_DBL_ATTR_FARKASPROOF = "FarkasProof" -const GRB_DBL_ATTR_UNBDRAY = "UnbdRay" -const GRB_INT_ATTR_INFEASVAR = "InfeasVar" -const GRB_INT_ATTR_UNBDVAR = "UnbdVar" -const GRB_INT_ATTR_VARPRESTAT = "VarPreStat" -const GRB_DBL_ATTR_PREFIXVAL = "PreFixVal" -const GRB_DBL_ATTR_OBJN = "ObjN" -const GRB_DBL_ATTR_OBJNVAL = "ObjNVal" -const GRB_DBL_ATTR_OBJNCON = "ObjNCon" -const GRB_DBL_ATTR_OBJNWEIGHT = "ObjNWeight" -const GRB_INT_ATTR_OBJNPRIORITY = "ObjNPriority" -const GRB_DBL_ATTR_OBJNRELTOL = "ObjNRelTol" -const GRB_DBL_ATTR_OBJNABSTOL = "ObjNAbsTol" -const GRB_STR_ATTR_OBJNNAME = "ObjNName" -const GRB_DBL_ATTR_SCENNLB = "ScenNLB" -const GRB_DBL_ATTR_SCENNUB = "ScenNUB" -const GRB_DBL_ATTR_SCENNOBJ = "ScenNObj" -const GRB_DBL_ATTR_SCENNRHS = "ScenNRHS" -const GRB_STR_ATTR_SCENNNAME = "ScenNName" -const GRB_DBL_ATTR_SCENNX = "ScenNX" -const GRB_DBL_ATTR_SCENNOBJBOUND = "ScenNObjBound" -const GRB_DBL_ATTR_SCENNOBJVAL = "ScenNObjVal" -const GRB_INT_ATTR_NUMOBJ = "NumObj" -const GRB_INT_ATTR_NUMSCENARIOS = "NumScenarios" -const GRB_INT_ATTR_NUMSTART = "NumStart" -const GRB_DBL_ATTR_Xn = "Xn" -const GRB_GENCONSTR_MAX = 0 -const GRB_GENCONSTR_MIN = 1 -const GRB_GENCONSTR_ABS = 2 -const GRB_GENCONSTR_AND = 3 -const GRB_GENCONSTR_OR = 4 -const GRB_GENCONSTR_NORM = 5 -const GRB_GENCONSTR_INDICATOR = 6 -const GRB_GENCONSTR_PWL = 7 -const GRB_GENCONSTR_POLY = 8 -const GRB_GENCONSTR_EXP = 9 -const GRB_GENCONSTR_EXPA = 10 -const GRB_GENCONSTR_LOG = 11 -const GRB_GENCONSTR_LOGA = 12 -const GRB_GENCONSTR_POW = 13 -const GRB_GENCONSTR_SIN = 14 -const GRB_GENCONSTR_COS = 15 -const GRB_GENCONSTR_TAN = 16 -const GRB_GENCONSTR_LOGISTIC = 17 -const GRB_CB_POLLING = 0 -const GRB_CB_PRESOLVE = 1 -const GRB_CB_SIMPLEX = 2 -const GRB_CB_MIP = 3 -const GRB_CB_MIPSOL = 4 -const GRB_CB_MIPNODE = 5 -const GRB_CB_MESSAGE = 6 -const GRB_CB_BARRIER = 7 -const GRB_CB_MULTIOBJ = 8 -const GRB_CB_IIS = 9 -const GRB_CB_PRE_COLDEL = 1000 -const GRB_CB_PRE_ROWDEL = 1001 -const GRB_CB_PRE_SENCHG = 1002 -const GRB_CB_PRE_BNDCHG = 1003 -const GRB_CB_PRE_COECHG = 1004 -const GRB_CB_SPX_ITRCNT = 2000 -const GRB_CB_SPX_OBJVAL = 2001 -const GRB_CB_SPX_PRIMINF = 2002 -const GRB_CB_SPX_DUALINF = 2003 -const GRB_CB_SPX_ISPERT = 2004 -const GRB_CB_MIP_OBJBST = 3000 -const GRB_CB_MIP_OBJBND = 3001 -const GRB_CB_MIP_NODCNT = 3002 -const GRB_CB_MIP_SOLCNT = 3003 -const GRB_CB_MIP_CUTCNT = 3004 -const GRB_CB_MIP_NODLFT = 3005 -const GRB_CB_MIP_ITRCNT = 3006 -const GRB_CB_MIP_OPENSCENARIOS = 3007 -const GRB_CB_MIP_PHASE = 3008 -const GRB_CB_MIPSOL_SOL = 4001 -const GRB_CB_MIPSOL_OBJ = 4002 -const GRB_CB_MIPSOL_OBJBST = 4003 -const GRB_CB_MIPSOL_OBJBND = 4004 -const GRB_CB_MIPSOL_NODCNT = 4005 -const GRB_CB_MIPSOL_SOLCNT = 4006 -const GRB_CB_MIPSOL_OPENSCENARIOS = 4007 -const GRB_CB_MIPSOL_PHASE = 4008 -const GRB_CB_MIPNODE_STATUS = 5001 -const GRB_CB_MIPNODE_REL = 5002 -const GRB_CB_MIPNODE_OBJBST = 5003 -const GRB_CB_MIPNODE_OBJBND = 5004 -const GRB_CB_MIPNODE_NODCNT = 5005 -const GRB_CB_MIPNODE_SOLCNT = 5006 -const GRB_CB_MIPNODE_BRVAR = 5007 -const GRB_CB_MIPNODE_OPENSCENARIOS = 5008 -const GRB_CB_MIPNODE_PHASE = 5009 -const GRB_CB_MSG_STRING = 6001 -const GRB_CB_RUNTIME = 6002 -const GRB_CB_WORK = 6003 -const GRB_CB_BARRIER_ITRCNT = 7001 -const GRB_CB_BARRIER_PRIMOBJ = 7002 -const GRB_CB_BARRIER_DUALOBJ = 7003 -const GRB_CB_BARRIER_PRIMINF = 7004 -const GRB_CB_BARRIER_DUALINF = 7005 -const GRB_CB_BARRIER_COMPL = 7006 -const GRB_CB_MULTIOBJ_OBJCNT = 8001 -const GRB_CB_MULTIOBJ_SOLCNT = 8002 -const GRB_CB_MULTIOBJ_SOL = 8003 -const GRB_CB_IIS_CONSTRMIN = 9001 -const GRB_CB_IIS_CONSTRMAX = 9002 -const GRB_CB_IIS_CONSTRGUESS = 9003 -const GRB_CB_IIS_BOUNDMIN = 9004 -const GRB_CB_IIS_BOUNDMAX = 9005 -const GRB_CB_IIS_BOUNDGUESS = 9006 -const GRB_FEASRELAX_LINEAR = 0 -const GRB_FEASRELAX_QUADRATIC = 1 -const GRB_FEASRELAX_CARDINALITY = 2 - -# Skipping MacroDefinition: MALLOCCB_ARGS size_t size , void * syscbusrdata -# Skipping MacroDefinition: CALLOCCB_ARGS size_t nmemb , size_t size , void * syscbusrdata -# Skipping MacroDefinition: REALLOCCB_ARGS void * ptr , size_t size , void * syscbusrdata -# Skipping MacroDefinition: FREECB_ARGS void * ptr , void * syscbusrdata -# Skipping MacroDefinition: THREADCREATECB_ARGS void * * threadP , void ( * start_routine ) ( void * ) , void * arg , void * syscbusrdata -# Skipping MacroDefinition: THREADJOINCB_ARGS void * thread , void * syscbusrdata - -const GRB_LOADED = 1 -const GRB_OPTIMAL = 2 -const GRB_INFEASIBLE = 3 -const GRB_INF_OR_UNBD = 4 -const GRB_UNBOUNDED = 5 -const GRB_CUTOFF = 6 -const GRB_ITERATION_LIMIT = 7 -const GRB_NODE_LIMIT = 8 -const GRB_TIME_LIMIT = 9 -const GRB_SOLUTION_LIMIT = 10 -const GRB_INTERRUPTED = 11 -const GRB_NUMERIC = 12 -const GRB_SUBOPTIMAL = 13 -const GRB_INPROGRESS = 14 -const GRB_USER_OBJ_LIMIT = 15 -const GRB_WORK_LIMIT = 16 -const GRB_MEM_LIMIT = 17 -const GRB_BASIC = 0 -const GRB_NONBASIC_LOWER = -1 -const GRB_NONBASIC_UPPER = -2 -const GRB_SUPERBASIC = -3 -const GRB_INT_PAR_BARITERLIMIT = "BarIterLimit" -const GRB_DBL_PAR_CUTOFF = "Cutoff" -const GRB_DBL_PAR_ITERATIONLIMIT = "IterationLimit" -const GRB_DBL_PAR_NODELIMIT = "NodeLimit" -const GRB_INT_PAR_SOLUTIONLIMIT = "SolutionLimit" -const GRB_DBL_PAR_TIMELIMIT = "TimeLimit" -const GRB_DBL_PAR_WORKLIMIT = "WorkLimit" -const GRB_DBL_PAR_MEMLIMIT = "MemLimit" -const GRB_DBL_PAR_SOFTMEMLIMIT = "SoftMemLimit" -const GRB_DBL_PAR_BESTOBJSTOP = "BestObjStop" -const GRB_DBL_PAR_BESTBDSTOP = "BestBdStop" -const GRB_DBL_PAR_FEASIBILITYTOL = "FeasibilityTol" -const GRB_DBL_PAR_INTFEASTOL = "IntFeasTol" -const GRB_DBL_PAR_MARKOWITZTOL = "MarkowitzTol" -const GRB_DBL_PAR_MIPGAP = "MIPGap" -const GRB_DBL_PAR_MIPGAPABS = "MIPGapAbs" -const GRB_DBL_PAR_OPTIMALITYTOL = "OptimalityTol" -const GRB_DBL_PAR_PSDTOL = "PSDTol" -const GRB_INT_PAR_METHOD = "Method" -const GRB_DBL_PAR_PERTURBVALUE = "PerturbValue" -const GRB_DBL_PAR_OBJSCALE = "ObjScale" -const GRB_INT_PAR_SCALEFLAG = "ScaleFlag" -const GRB_INT_PAR_SIMPLEXPRICING = "SimplexPricing" -const GRB_INT_PAR_QUAD = "Quad" -const GRB_INT_PAR_NORMADJUST = "NormAdjust" -const GRB_INT_PAR_SIFTING = "Sifting" -const GRB_INT_PAR_SIFTMETHOD = "SiftMethod" -const GRB_INT_PAR_LPWARMSTART = "LPWarmStart" -const GRB_INT_PAR_NETWORKALG = "NetworkAlg" -const GRB_DBL_PAR_BARCONVTOL = "BarConvTol" -const GRB_INT_PAR_BARCORRECTORS = "BarCorrectors" -const GRB_INT_PAR_BARHOMOGENEOUS = "BarHomogeneous" -const GRB_INT_PAR_BARORDER = "BarOrder" -const GRB_DBL_PAR_BARQCPCONVTOL = "BarQCPConvTol" -const GRB_INT_PAR_CROSSOVER = "Crossover" -const GRB_INT_PAR_CROSSOVERBASIS = "CrossoverBasis" -const GRB_INT_PAR_BRANCHDIR = "BranchDir" -const GRB_INT_PAR_DEGENMOVES = "DegenMoves" -const GRB_INT_PAR_DISCONNECTED = "Disconnected" -const GRB_DBL_PAR_HEURISTICS = "Heuristics" -const GRB_DBL_PAR_IMPROVESTARTGAP = "ImproveStartGap" -const GRB_DBL_PAR_IMPROVESTARTTIME = "ImproveStartTime" -const GRB_DBL_PAR_IMPROVESTARTNODES = "ImproveStartNodes" -const GRB_INT_PAR_INTEGRALITYFOCUS = "IntegralityFocus" -const GRB_INT_PAR_MINRELNODES = "MinRelNodes" -const GRB_INT_PAR_MIPFOCUS = "MIPFocus" -const GRB_INT_PAR_NLPHEUR = "NLPHeur" -const GRB_STR_PAR_NODEFILEDIR = "NodefileDir" -const GRB_DBL_PAR_NODEFILESTART = "NodefileStart" -const GRB_INT_PAR_NODEMETHOD = "NodeMethod" -const GRB_DBL_PAR_NORELHEURTIME = "NoRelHeurTime" -const GRB_DBL_PAR_NORELHEURWORK = "NoRelHeurWork" -const GRB_INT_PAR_OBBT = "OBBT" -const GRB_INT_PAR_PUMPPASSES = "PumpPasses" -const GRB_INT_PAR_RINS = "RINS" -const GRB_STR_PAR_SOLFILES = "SolFiles" -const GRB_INT_PAR_STARTNODELIMIT = "StartNodeLimit" -const GRB_INT_PAR_SUBMIPNODES = "SubMIPNodes" -const GRB_INT_PAR_SYMMETRY = "Symmetry" -const GRB_INT_PAR_VARBRANCH = "VarBranch" -const GRB_INT_PAR_SOLUTIONNUMBER = "SolutionNumber" -const GRB_INT_PAR_ZEROOBJNODES = "ZeroObjNodes" -const GRB_INT_PAR_CUTS = "Cuts" -const GRB_INT_PAR_CLIQUECUTS = "CliqueCuts" -const GRB_INT_PAR_COVERCUTS = "CoverCuts" -const GRB_INT_PAR_FLOWCOVERCUTS = "FlowCoverCuts" -const GRB_INT_PAR_FLOWPATHCUTS = "FlowPathCuts" -const GRB_INT_PAR_GUBCOVERCUTS = "GUBCoverCuts" -const GRB_INT_PAR_IMPLIEDCUTS = "ImpliedCuts" -const GRB_INT_PAR_PROJIMPLIEDCUTS = "ProjImpliedCuts" -const GRB_INT_PAR_MIPSEPCUTS = "MIPSepCuts" -const GRB_INT_PAR_MIRCUTS = "MIRCuts" -const GRB_INT_PAR_STRONGCGCUTS = "StrongCGCuts" -const GRB_INT_PAR_MODKCUTS = "ModKCuts" -const GRB_INT_PAR_ZEROHALFCUTS = "ZeroHalfCuts" -const GRB_INT_PAR_NETWORKCUTS = "NetworkCuts" -const GRB_INT_PAR_SUBMIPCUTS = "SubMIPCuts" -const GRB_INT_PAR_INFPROOFCUTS = "InfProofCuts" -const GRB_INT_PAR_RLTCUTS = "RLTCuts" -const GRB_INT_PAR_RELAXLIFTCUTS = "RelaxLiftCuts" -const GRB_INT_PAR_BQPCUTS = "BQPCuts" -const GRB_INT_PAR_PSDCUTS = "PSDCuts" -const GRB_INT_PAR_LIFTPROJECTCUTS = "LiftProjectCuts" -const GRB_INT_PAR_CUTAGGPASSES = "CutAggPasses" -const GRB_INT_PAR_CUTPASSES = "CutPasses" -const GRB_INT_PAR_GOMORYPASSES = "GomoryPasses" -const GRB_STR_PAR_WORKERPOOL = "WorkerPool" -const GRB_STR_PAR_WORKERPASSWORD = "WorkerPassword" -const GRB_STR_PAR_COMPUTESERVER = "ComputeServer" -const GRB_STR_PAR_TOKENSERVER = "TokenServer" -const GRB_STR_PAR_SERVERPASSWORD = "ServerPassword" -const GRB_INT_PAR_SERVERTIMEOUT = "ServerTimeout" -const GRB_STR_PAR_CSROUTER = "CSRouter" -const GRB_STR_PAR_CSGROUP = "CSGroup" -const GRB_DBL_PAR_CSQUEUETIMEOUT = "CSQueueTimeout" -const GRB_INT_PAR_CSPRIORITY = "CSPriority" -const GRB_INT_PAR_CSIDLETIMEOUT = "CSIdleTimeout" -const GRB_INT_PAR_CSTLSINSECURE = "CSTLSInsecure" -const GRB_INT_PAR_TSPORT = "TSPort" -const GRB_STR_PAR_CLOUDACCESSID = "CloudAccessID" -const GRB_STR_PAR_CLOUDSECRETKEY = "CloudSecretKey" -const GRB_STR_PAR_CLOUDPOOL = "CloudPool" -const GRB_STR_PAR_CLOUDHOST = "CloudHost" -const GRB_STR_PAR_CSMANAGER = "CSManager" -const GRB_STR_PAR_CSAUTHTOKEN = "CSAuthToken" -const GRB_STR_PAR_CSAPIACCESSID = "CSAPIAccessID" -const GRB_STR_PAR_CSAPISECRET = "CSAPISecret" -const GRB_INT_PAR_CSBATCHMODE = "CSBatchMode" -const GRB_STR_PAR_USERNAME = "Username" -const GRB_STR_PAR_CSAPPNAME = "CSAppName" -const GRB_INT_PAR_CSCLIENTLOG = "CSClientLog" -const GRB_STR_PAR_WLSACCESSID = "WLSAccessID" -const GRB_STR_PAR_WLSSECRET = "WLSSecret" -const GRB_INT_PAR_WLSTOKENDURATION = "WLSTokenDuration" -const GRB_DBL_PAR_WLSTOKENREFRESH = "WLSTokenRefresh" -const GRB_STR_PAR_WLSTOKEN = "WLSToken" -const GRB_INT_PAR_LICENSEID = "LicenseID" -const GRB_INT_PAR_AGGREGATE = "Aggregate" -const GRB_INT_PAR_AGGFILL = "AggFill" -const GRB_INT_PAR_CONCURRENTMIP = "ConcurrentMIP" -const GRB_INT_PAR_CONCURRENTJOBS = "ConcurrentJobs" -const GRB_INT_PAR_DISPLAYINTERVAL = "DisplayInterval" -const GRB_INT_PAR_DISTRIBUTEDMIPJOBS = "DistributedMIPJobs" -const GRB_INT_PAR_DUALREDUCTIONS = "DualReductions" -const GRB_DBL_PAR_FEASRELAXBIGM = "FeasRelaxBigM" -const GRB_INT_PAR_IISMETHOD = "IISMethod" -const GRB_INT_PAR_INFUNBDINFO = "InfUnbdInfo" -const GRB_INT_PAR_JSONSOLDETAIL = "JSONSolDetail" -const GRB_INT_PAR_LAZYCONSTRAINTS = "LazyConstraints" -const GRB_STR_PAR_LOGFILE = "LogFile" -const GRB_INT_PAR_LOGTOCONSOLE = "LogToConsole" -const GRB_INT_PAR_MIQCPMETHOD = "MIQCPMethod" -const GRB_INT_PAR_NONCONVEX = "NonConvex" -const GRB_INT_PAR_NUMERICFOCUS = "NumericFocus" -const GRB_INT_PAR_OUTPUTFLAG = "OutputFlag" -const GRB_INT_PAR_PRECRUSH = "PreCrush" -const GRB_INT_PAR_PREDEPROW = "PreDepRow" -const GRB_INT_PAR_PREDUAL = "PreDual" -const GRB_INT_PAR_PREPASSES = "PrePasses" -const GRB_INT_PAR_PREQLINEARIZE = "PreQLinearize" -const GRB_INT_PAR_PRESOLVE = "Presolve" -const GRB_DBL_PAR_PRESOS1BIGM = "PreSOS1BigM" -const GRB_DBL_PAR_PRESOS2BIGM = "PreSOS2BigM" -const GRB_INT_PAR_PRESOS1ENCODING = "PreSOS1Encoding" -const GRB_INT_PAR_PRESOS2ENCODING = "PreSOS2Encoding" -const GRB_INT_PAR_PRESPARSIFY = "PreSparsify" -const GRB_INT_PAR_PREMIQCPFORM = "PreMIQCPForm" -const GRB_INT_PAR_QCPDUAL = "QCPDual" -const GRB_INT_PAR_RECORD = "Record" -const GRB_STR_PAR_RESULTFILE = "ResultFile" -const GRB_INT_PAR_SEED = "Seed" -const GRB_INT_PAR_SOLUTIONTARGET = "SolutionTarget" -const GRB_INT_PAR_THREADS = "Threads" -const GRB_DBL_PAR_TUNETIMELIMIT = "TuneTimeLimit" -const GRB_INT_PAR_TUNERESULTS = "TuneResults" -const GRB_INT_PAR_TUNECRITERION = "TuneCriterion" -const GRB_INT_PAR_TUNETRIALS = "TuneTrials" -const GRB_INT_PAR_TUNEOUTPUT = "TuneOutput" -const GRB_INT_PAR_TUNEJOBS = "TuneJobs" -const GRB_DBL_PAR_TUNECLEANUP = "TuneCleanup" -const GRB_DBL_PAR_TUNETARGETMIPGAP = "TuneTargetMIPGap" -const GRB_DBL_PAR_TUNETARGETTIME = "TuneTargetTime" -const GRB_INT_PAR_TUNEMETRIC = "TuneMetric" -const GRB_INT_PAR_UPDATEMODE = "UpdateMode" -const GRB_INT_PAR_OBJNUMBER = "ObjNumber" -const GRB_INT_PAR_MULTIOBJMETHOD = "MultiObjMethod" -const GRB_INT_PAR_MULTIOBJPRE = "MultiObjPre" -const GRB_INT_PAR_SCENARIONUMBER = "ScenarioNumber" -const GRB_INT_PAR_POOLSOLUTIONS = "PoolSolutions" -const GRB_DBL_PAR_POOLGAP = "PoolGap" -const GRB_DBL_PAR_POOLGAPABS = "PoolGapAbs" -const GRB_INT_PAR_POOLSEARCHMODE = "PoolSearchMode" -const GRB_INT_PAR_IGNORENAMES = "IgnoreNames" -const GRB_INT_PAR_STARTNUMBER = "StartNumber" -const GRB_INT_PAR_PARTITIONPLACE = "PartitionPlace" -const GRB_INT_PAR_FUNCPIECES = "FuncPieces" -const GRB_DBL_PAR_FUNCPIECELENGTH = "FuncPieceLength" -const GRB_DBL_PAR_FUNCPIECEERROR = "FuncPieceError" -const GRB_DBL_PAR_FUNCPIECERATIO = "FuncPieceRatio" -const GRB_DBL_PAR_FUNCMAXVAL = "FuncMaxVal" -const GRB_STR_PAR_DUMMY = "Dummy" -const GRB_STR_PAR_JOBID = "JobID" -const GRB_CUTS_AUTO = -1 -const GRB_CUTS_OFF = 0 -const GRB_CUTS_CONSERVATIVE = 1 -const GRB_CUTS_AGGRESSIVE = 2 -const GRB_CUTS_VERYAGGRESSIVE = 3 -const GRB_PRESOLVE_AUTO = -1 -const GRB_PRESOLVE_OFF = 0 -const GRB_PRESOLVE_CONSERVATIVE = 1 -const GRB_PRESOLVE_AGGRESSIVE = 2 -const GRB_METHOD_NONE = -1 -const GRB_METHOD_AUTO = -1 -const GRB_METHOD_PRIMAL = 0 -const GRB_METHOD_DUAL = 1 -const GRB_METHOD_BARRIER = 2 -const GRB_METHOD_CONCURRENT = 3 -const GRB_METHOD_DETERMINISTIC_CONCURRENT = 4 -const GRB_METHOD_DETERMINISTIC_CONCURRENT_SIMPLEX = 5 -const GRB_BARHOMOGENEOUS_AUTO = -1 -const GRB_BARHOMOGENEOUS_OFF = 0 -const GRB_BARHOMOGENEOUS_ON = 1 -const GRB_MIPFOCUS_BALANCED = 0 -const GRB_MIPFOCUS_FEASIBILITY = 1 -const GRB_MIPFOCUS_OPTIMALITY = 2 -const GRB_MIPFOCUS_BESTBOUND = 3 -const GRB_BARORDER_AUTOMATIC = -1 -const GRB_BARORDER_AMD = 0 -const GRB_BARORDER_NESTEDDISSECTION = 1 -const GRB_SIMPLEXPRICING_AUTO = -1 -const GRB_SIMPLEXPRICING_PARTIAL = 0 -const GRB_SIMPLEXPRICING_STEEPEST_EDGE = 1 -const GRB_SIMPLEXPRICING_DEVEX = 2 -const GRB_SIMPLEXPRICING_STEEPEST_QUICK = 3 -const GRB_VARBRANCH_AUTO = -1 -const GRB_VARBRANCH_PSEUDO_REDUCED = 0 -const GRB_VARBRANCH_PSEUDO_SHADOW = 1 -const GRB_VARBRANCH_MAX_INFEAS = 2 -const GRB_VARBRANCH_STRONG = 3 -const GRB_PARTITION_EARLY = 16 -const GRB_PARTITION_ROOTSTART = 8 -const GRB_PARTITION_ROOTEND = 4 -const GRB_PARTITION_NODES = 2 -const GRB_PARTITION_CLEANUP = 1 -const GRB_PHASE_MIP_NOREL = 0 -const GRB_PHASE_MIP_SEARCH = 1 -const GRB_PHASE_MIP_IMPROVE = 2 -const GRB_BATCH_STATUS_UNKNOWN = 0 -const GRB_BATCH_CREATED = 1 -const GRB_BATCH_SUBMITTED = 2 -const GRB_BATCH_ABORTED = 3 -const GRB_BATCH_FAILED = 4 -const GRB_BATCH_COMPLETED = 5 -const _GRBbatch = Cvoid -const GRBbatch = _GRBbatch -const _GRBmodel = Cvoid -const GRBmodel = _GRBmodel -const _GRBenv = Cvoid -const GRBenv = _GRBenv - -struct _GRBsvec - len::Cint - ind::Ptr{Cint} - val::Ptr{Cdouble} -end - -const GRBsvec = _GRBsvec