1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
// This file is automatically generated - do not edit it.  To add new Gurobi paramteters, edit the params.csv file instead.

use cstr_enum::*;

/// Float Gurobi parameters.
/// 
/// This enum contains the following Gurobi parameters:
///  - [`Cutoff`](https://www.gurobi.com/documentation/9.1/refman/cutoff.html)
///  - [`IterationLimit`](https://www.gurobi.com/documentation/9.1/refman/iterationlimit.html)
///  - [`NodeLimit`](https://www.gurobi.com/documentation/9.1/refman/nodelimit.html)
///  - [`TimeLimit`](https://www.gurobi.com/documentation/9.1/refman/timelimit.html)
///  - [`BestObjStop`](https://www.gurobi.com/documentation/9.1/refman/bestobjstop.html)
///  - [`BestBdStop`](https://www.gurobi.com/documentation/9.1/refman/bestbdstop.html)
///  - [`FeasibilityTol`](https://www.gurobi.com/documentation/9.1/refman/feasibilitytol.html)
///  - [`IntFeasTol`](https://www.gurobi.com/documentation/9.1/refman/intfeastol.html)
///  - [`MarkowitzTol`](https://www.gurobi.com/documentation/9.1/refman/markowitztol.html)
///  - [`MIPGap`](https://www.gurobi.com/documentation/9.1/refman/mipgap.html)
///  - [`MIPGapAbs`](https://www.gurobi.com/documentation/9.1/refman/mipgapabs.html)
///  - [`OptimalityTol`](https://www.gurobi.com/documentation/9.1/refman/optimalitytol.html)
///  - [`PSDTol`](https://www.gurobi.com/documentation/9.1/refman/psdtol.html)
///  - [`PerturbValue`](https://www.gurobi.com/documentation/9.1/refman/perturbvalue.html)
///  - [`ObjScale`](https://www.gurobi.com/documentation/9.1/refman/objscale.html)
///  - [`BarConvTol`](https://www.gurobi.com/documentation/9.1/refman/barconvtol.html)
///  - [`BarQCPConvTol`](https://www.gurobi.com/documentation/9.1/refman/barqcpconvtol.html)
///  - [`Heuristics`](https://www.gurobi.com/documentation/9.1/refman/heuristics.html)
///  - [`ImproveStartGap`](https://www.gurobi.com/documentation/9.1/refman/improvestartgap.html)
///  - [`ImproveStartTime`](https://www.gurobi.com/documentation/9.1/refman/improvestarttime.html)
///  - [`ImproveStartNodes`](https://www.gurobi.com/documentation/9.1/refman/improvestartnodes.html)
///  - [`NodefileStart`](https://www.gurobi.com/documentation/9.1/refman/nodefilestart.html)
///  - [`NoRelHeurTime`](https://www.gurobi.com/documentation/9.1/refman/norelheurtime.html)
///  - [`NoRelHeurWork`](https://www.gurobi.com/documentation/9.1/refman/norelheurwork.html)
///  - [`CSQueueTimeout`](https://www.gurobi.com/documentation/9.1/refman/csqueuetimeout.html)
///  - [`FeasRelaxBigM`](https://www.gurobi.com/documentation/9.1/refman/feasrelaxbigm.html)
///  - [`PreSOS1BigM`](https://www.gurobi.com/documentation/9.1/refman/presos1bigm.html)
///  - [`PreSOS2BigM`](https://www.gurobi.com/documentation/9.1/refman/presos2bigm.html)
///  - [`TuneTimeLimit`](https://www.gurobi.com/documentation/9.1/refman/tunetimelimit.html)
///  - [`TuneCleanup`](https://www.gurobi.com/documentation/9.1/refman/tunecleanup.html)
///  - [`PoolGap`](https://www.gurobi.com/documentation/9.1/refman/poolgap.html)
///  - [`PoolGapAbs`](https://www.gurobi.com/documentation/9.1/refman/poolgapabs.html)
///  - [`FuncPieceLength`](https://www.gurobi.com/documentation/9.1/refman/funcpiecelength.html)
///  - [`FuncPieceError`](https://www.gurobi.com/documentation/9.1/refman/funcpieceerror.html)
///  - [`FuncPieceRatio`](https://www.gurobi.com/documentation/9.1/refman/funcpieceratio.html)
///  - [`FuncMaxVal`](https://www.gurobi.com/documentation/9.1/refman/funcmaxval.html)
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, FromCStr, AsCStr)]
pub enum DoubleParam {
    Cutoff,
    IterationLimit,
    NodeLimit,
    TimeLimit,
    BestObjStop,
    BestBdStop,
    FeasibilityTol,
    IntFeasTol,
    MarkowitzTol,
    MIPGap,
    MIPGapAbs,
    OptimalityTol,
    PSDTol,
    PerturbValue,
    ObjScale,
    BarConvTol,
    BarQCPConvTol,
    Heuristics,
    ImproveStartGap,
    ImproveStartTime,
    ImproveStartNodes,
    NodefileStart,
    NoRelHeurTime,
    NoRelHeurWork,
    CSQueueTimeout,
    FeasRelaxBigM,
    PreSOS1BigM,
    PreSOS2BigM,
    TuneTimeLimit,
    TuneCleanup,
    PoolGap,
    PoolGapAbs,
    FuncPieceLength,
    FuncPieceError,
    FuncPieceRatio,
    FuncMaxVal,
}

/// Integer Gurobi parameters.
/// 
/// This enum contains the following Gurobi parameters:
///  - [`BarIterLimit`](https://www.gurobi.com/documentation/9.1/refman/bariterlimit.html)
///  - [`SolutionLimit`](https://www.gurobi.com/documentation/9.1/refman/solutionlimit.html)
///  - [`Method`](https://www.gurobi.com/documentation/9.1/refman/method.html)
///  - [`ScaleFlag`](https://www.gurobi.com/documentation/9.1/refman/scaleflag.html)
///  - [`SimplexPricing`](https://www.gurobi.com/documentation/9.1/refman/simplexpricing.html)
///  - [`Quad`](https://www.gurobi.com/documentation/9.1/refman/quad.html)
///  - [`NormAdjust`](https://www.gurobi.com/documentation/9.1/refman/normadjust.html)
///  - [`Sifting`](https://www.gurobi.com/documentation/9.1/refman/sifting.html)
///  - [`SiftMethod`](https://www.gurobi.com/documentation/9.1/refman/siftmethod.html)
///  - [`BarCorrectors`](https://www.gurobi.com/documentation/9.1/refman/barcorrectors.html)
///  - [`BarHomogeneous`](https://www.gurobi.com/documentation/9.1/refman/barhomogeneous.html)
///  - [`BarOrder`](https://www.gurobi.com/documentation/9.1/refman/barorder.html)
///  - [`Crossover`](https://www.gurobi.com/documentation/9.1/refman/crossover.html)
///  - [`CrossoverBasis`](https://www.gurobi.com/documentation/9.1/refman/crossoverbasis.html)
///  - [`BranchDir`](https://www.gurobi.com/documentation/9.1/refman/branchdir.html)
///  - [`DegenMoves`](https://www.gurobi.com/documentation/9.1/refman/degenmoves.html)
///  - [`Disconnected`](https://www.gurobi.com/documentation/9.1/refman/disconnected.html)
///  - [`IntegralityFocus`](https://www.gurobi.com/documentation/9.1/refman/integralityfocus.html)
///  - [`MinRelNodes`](https://www.gurobi.com/documentation/9.1/refman/minrelnodes.html)
///  - [`MIPFocus`](https://www.gurobi.com/documentation/9.1/refman/mipfocus.html)
///  - [`NodeMethod`](https://www.gurobi.com/documentation/9.1/refman/nodemethod.html)
///  - [`PumpPasses`](https://www.gurobi.com/documentation/9.1/refman/pumppasses.html)
///  - [`RINS`](https://www.gurobi.com/documentation/9.1/refman/rins.html)
///  - [`StartNodeLimit`](https://www.gurobi.com/documentation/9.1/refman/startnodelimit.html)
///  - [`SubMIPNodes`](https://www.gurobi.com/documentation/9.1/refman/submipnodes.html)
///  - [`Symmetry`](https://www.gurobi.com/documentation/9.1/refman/symmetry.html)
///  - [`VarBranch`](https://www.gurobi.com/documentation/9.1/refman/varbranch.html)
///  - [`SolutionNumber`](https://www.gurobi.com/documentation/9.1/refman/solutionnumber.html)
///  - [`ZeroObjNodes`](https://www.gurobi.com/documentation/9.1/refman/zeroobjnodes.html)
///  - [`Cuts`](https://www.gurobi.com/documentation/9.1/refman/cuts.html)
///  - [`CliqueCuts`](https://www.gurobi.com/documentation/9.1/refman/cliquecuts.html)
///  - [`CoverCuts`](https://www.gurobi.com/documentation/9.1/refman/covercuts.html)
///  - [`FlowCoverCuts`](https://www.gurobi.com/documentation/9.1/refman/flowcovercuts.html)
///  - [`FlowPathCuts`](https://www.gurobi.com/documentation/9.1/refman/flowpathcuts.html)
///  - [`GUBCoverCuts`](https://www.gurobi.com/documentation/9.1/refman/gubcovercuts.html)
///  - [`ImpliedCuts`](https://www.gurobi.com/documentation/9.1/refman/impliedcuts.html)
///  - [`ProjImpliedCuts`](https://www.gurobi.com/documentation/9.1/refman/projimpliedcuts.html)
///  - [`MIPSepCuts`](https://www.gurobi.com/documentation/9.1/refman/mipsepcuts.html)
///  - [`MIRCuts`](https://www.gurobi.com/documentation/9.1/refman/mircuts.html)
///  - [`StrongCGCuts`](https://www.gurobi.com/documentation/9.1/refman/strongcgcuts.html)
///  - [`ModKCuts`](https://www.gurobi.com/documentation/9.1/refman/modkcuts.html)
///  - [`ZeroHalfCuts`](https://www.gurobi.com/documentation/9.1/refman/zerohalfcuts.html)
///  - [`NetworkCuts`](https://www.gurobi.com/documentation/9.1/refman/networkcuts.html)
///  - [`SubMIPCuts`](https://www.gurobi.com/documentation/9.1/refman/submipcuts.html)
///  - [`InfProofCuts`](https://www.gurobi.com/documentation/9.1/refman/infproofcuts.html)
///  - [`RLTCuts`](https://www.gurobi.com/documentation/9.1/refman/rltcuts.html)
///  - [`RelaxLiftCuts`](https://www.gurobi.com/documentation/9.1/refman/relaxliftcuts.html)
///  - [`BQPCuts`](https://www.gurobi.com/documentation/9.1/refman/bqpcuts.html)
///  - [`PSDCuts`](https://www.gurobi.com/documentation/9.1/refman/psdcuts.html)
///  - [`CutAggPasses`](https://www.gurobi.com/documentation/9.1/refman/cutaggpasses.html)
///  - [`CutPasses`](https://www.gurobi.com/documentation/9.1/refman/cutpasses.html)
///  - [`GomoryPasses`](https://www.gurobi.com/documentation/9.1/refman/gomorypasses.html)
///  - [`ServerTimeout`](https://www.gurobi.com/documentation/9.1/refman/servertimeout.html)
///  - [`CSPriority`](https://www.gurobi.com/documentation/9.1/refman/cspriority.html)
///  - [`CSIdleTimeout`](https://www.gurobi.com/documentation/9.1/refman/csidletimeout.html)
///  - [`CSTLSInsecure`](https://www.gurobi.com/documentation/9.1/refman/cstlsinsecure.html)
///  - [`TSPort`](https://www.gurobi.com/documentation/9.1/refman/tsport.html)
///  - [`CSBatchMode`](https://www.gurobi.com/documentation/9.1/refman/csbatchmode.html)
///  - [`CSClientLog`](https://www.gurobi.com/documentation/9.1/refman/csclientlog.html)
///  - [`Aggregate`](https://www.gurobi.com/documentation/9.1/refman/aggregate.html)
///  - [`AggFill`](https://www.gurobi.com/documentation/9.1/refman/aggfill.html)
///  - [`ConcurrentMIP`](https://www.gurobi.com/documentation/9.1/refman/concurrentmip.html)
///  - [`ConcurrentJobs`](https://www.gurobi.com/documentation/9.1/refman/concurrentjobs.html)
///  - [`DisplayInterval`](https://www.gurobi.com/documentation/9.1/refman/displayinterval.html)
///  - [`DistributedMIPJobs`](https://www.gurobi.com/documentation/9.1/refman/distributedmipjobs.html)
///  - [`DualReductions`](https://www.gurobi.com/documentation/9.1/refman/dualreductions.html)
///  - [`IISMethod`](https://www.gurobi.com/documentation/9.1/refman/iismethod.html)
///  - [`InfUnbdInfo`](https://www.gurobi.com/documentation/9.1/refman/infunbdinfo.html)
///  - [`JSONSolDetail`](https://www.gurobi.com/documentation/9.1/refman/jsonsoldetail.html)
///  - [`LazyConstraints`](https://www.gurobi.com/documentation/9.1/refman/lazyconstraints.html)
///  - [`LogToConsole`](https://www.gurobi.com/documentation/9.1/refman/logtoconsole.html)
///  - [`MIQCPMethod`](https://www.gurobi.com/documentation/9.1/refman/miqcpmethod.html)
///  - [`NonConvex`](https://www.gurobi.com/documentation/9.1/refman/nonconvex.html)
///  - [`NumericFocus`](https://www.gurobi.com/documentation/9.1/refman/numericfocus.html)
///  - [`OutputFlag`](https://www.gurobi.com/documentation/9.1/refman/outputflag.html)
///  - [`PreCrush`](https://www.gurobi.com/documentation/9.1/refman/precrush.html)
///  - [`PreDepRow`](https://www.gurobi.com/documentation/9.1/refman/predeprow.html)
///  - [`PreDual`](https://www.gurobi.com/documentation/9.1/refman/predual.html)
///  - [`PrePasses`](https://www.gurobi.com/documentation/9.1/refman/prepasses.html)
///  - [`PreQLinearize`](https://www.gurobi.com/documentation/9.1/refman/preqlinearize.html)
///  - [`Presolve`](https://www.gurobi.com/documentation/9.1/refman/presolve.html)
///  - [`PreSparsify`](https://www.gurobi.com/documentation/9.1/refman/presparsify.html)
///  - [`PreMIQCPForm`](https://www.gurobi.com/documentation/9.1/refman/premiqcpform.html)
///  - [`QCPDual`](https://www.gurobi.com/documentation/9.1/refman/qcpdual.html)
///  - [`Record`](https://www.gurobi.com/documentation/9.1/refman/record.html)
///  - [`Seed`](https://www.gurobi.com/documentation/9.1/refman/seed.html)
///  - [`Threads`](https://www.gurobi.com/documentation/9.1/refman/threads.html)
///  - [`TuneResults`](https://www.gurobi.com/documentation/9.1/refman/tuneresults.html)
///  - [`TuneCriterion`](https://www.gurobi.com/documentation/9.1/refman/tunecriterion.html)
///  - [`TuneTrials`](https://www.gurobi.com/documentation/9.1/refman/tunetrials.html)
///  - [`TuneOutput`](https://www.gurobi.com/documentation/9.1/refman/tuneoutput.html)
///  - [`TuneJobs`](https://www.gurobi.com/documentation/9.1/refman/tunejobs.html)
///  - [`UpdateMode`](https://www.gurobi.com/documentation/9.1/refman/updatemode.html)
///  - [`ObjNumber`](https://www.gurobi.com/documentation/9.1/refman/objnumber.html)
///  - [`MultiObjMethod`](https://www.gurobi.com/documentation/9.1/refman/multiobjmethod.html)
///  - [`MultiObjPre`](https://www.gurobi.com/documentation/9.1/refman/multiobjpre.html)
///  - [`ScenarioNumber`](https://www.gurobi.com/documentation/9.1/refman/scenarionumber.html)
///  - [`PoolSolutions`](https://www.gurobi.com/documentation/9.1/refman/poolsolutions.html)
///  - [`PoolSearchMode`](https://www.gurobi.com/documentation/9.1/refman/poolsearchmode.html)
///  - [`IgnoreNames`](https://www.gurobi.com/documentation/9.1/refman/ignorenames.html)
///  - [`StartNumber`](https://www.gurobi.com/documentation/9.1/refman/startnumber.html)
///  - [`PartitionPlace`](https://www.gurobi.com/documentation/9.1/refman/partitionplace.html)
///  - [`FuncPieces`](https://www.gurobi.com/documentation/9.1/refman/funcpieces.html)
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, FromCStr, AsCStr)]
pub enum IntParam {
    BarIterLimit,
    SolutionLimit,
    Method,
    ScaleFlag,
    SimplexPricing,
    Quad,
    NormAdjust,
    Sifting,
    SiftMethod,
    BarCorrectors,
    BarHomogeneous,
    BarOrder,
    Crossover,
    CrossoverBasis,
    BranchDir,
    DegenMoves,
    Disconnected,
    IntegralityFocus,
    MinRelNodes,
    MIPFocus,
    NodeMethod,
    PumpPasses,
    RINS,
    StartNodeLimit,
    SubMIPNodes,
    Symmetry,
    VarBranch,
    SolutionNumber,
    ZeroObjNodes,
    Cuts,
    CliqueCuts,
    CoverCuts,
    FlowCoverCuts,
    FlowPathCuts,
    GUBCoverCuts,
    ImpliedCuts,
    ProjImpliedCuts,
    MIPSepCuts,
    MIRCuts,
    StrongCGCuts,
    ModKCuts,
    ZeroHalfCuts,
    NetworkCuts,
    SubMIPCuts,
    InfProofCuts,
    RLTCuts,
    RelaxLiftCuts,
    BQPCuts,
    PSDCuts,
    CutAggPasses,
    CutPasses,
    GomoryPasses,
    ServerTimeout,
    CSPriority,
    CSIdleTimeout,
    CSTLSInsecure,
    TSPort,
    CSBatchMode,
    CSClientLog,
    Aggregate,
    AggFill,
    ConcurrentMIP,
    ConcurrentJobs,
    DisplayInterval,
    DistributedMIPJobs,
    DualReductions,
    IISMethod,
    InfUnbdInfo,
    JSONSolDetail,
    LazyConstraints,
    LogToConsole,
    MIQCPMethod,
    NonConvex,
    NumericFocus,
    OutputFlag,
    PreCrush,
    PreDepRow,
    PreDual,
    PrePasses,
    PreQLinearize,
    Presolve,
    PreSparsify,
    PreMIQCPForm,
    QCPDual,
    Record,
    Seed,
    Threads,
    TuneResults,
    TuneCriterion,
    TuneTrials,
    TuneOutput,
    TuneJobs,
    UpdateMode,
    ObjNumber,
    MultiObjMethod,
    MultiObjPre,
    ScenarioNumber,
    PoolSolutions,
    PoolSearchMode,
    IgnoreNames,
    StartNumber,
    PartitionPlace,
    FuncPieces,
}

/// String Gurobi parameters.
/// 
/// This enum contains the following Gurobi parameters:
///  - [`NodefileDir`](https://www.gurobi.com/documentation/9.1/refman/nodefiledir.html)
///  - [`SolFiles`](https://www.gurobi.com/documentation/9.1/refman/solfiles.html)
///  - [`WorkerPool`](https://www.gurobi.com/documentation/9.1/refman/workerpool.html)
///  - [`WorkerPassword`](https://www.gurobi.com/documentation/9.1/refman/workerpassword.html)
///  - [`ComputeServer`](https://www.gurobi.com/documentation/9.1/refman/computeserver.html)
///  - [`TokenServer`](https://www.gurobi.com/documentation/9.1/refman/tokenserver.html)
///  - [`ServerPassword`](https://www.gurobi.com/documentation/9.1/refman/serverpassword.html)
///  - [`CSRouter`](https://www.gurobi.com/documentation/9.1/refman/csrouter.html)
///  - [`CSGroup`](https://www.gurobi.com/documentation/9.1/refman/csgroup.html)
///  - [`CloudAccessID`](https://www.gurobi.com/documentation/9.1/refman/cloudaccessid.html)
///  - [`CloudSecretKey`](https://www.gurobi.com/documentation/9.1/refman/cloudsecretkey.html)
///  - [`CloudPool`](https://www.gurobi.com/documentation/9.1/refman/cloudpool.html)
///  - [`CloudHost`](https://www.gurobi.com/documentation/9.1/refman/cloudhost.html)
///  - [`CSManager`](https://www.gurobi.com/documentation/9.1/refman/csmanager.html)
///  - [`CSAuthToken`](https://www.gurobi.com/documentation/9.1/refman/csauthtoken.html)
///  - [`CSAPIAccessID`](https://www.gurobi.com/documentation/9.1/refman/csapiaccessid.html)
///  - [`CSAPISecret`](https://www.gurobi.com/documentation/9.1/refman/csapisecret.html)
///  - [`Username`](https://www.gurobi.com/documentation/9.1/refman/username.html)
///  - [`CSAppName`](https://www.gurobi.com/documentation/9.1/refman/csappname.html)
///  - [`LogFile`](https://www.gurobi.com/documentation/9.1/refman/logfile.html)
///  - [`ResultFile`](https://www.gurobi.com/documentation/9.1/refman/resultfile.html)
///  - [`Dummy`](https://www.gurobi.com/documentation/9.1/refman/dummy.html)
///  - [`JobID`](https://www.gurobi.com/documentation/9.1/refman/jobid.html)
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, FromCStr, AsCStr)]
pub enum StrParam {
    NodefileDir,
    SolFiles,
    WorkerPool,
    WorkerPassword,
    ComputeServer,
    TokenServer,
    ServerPassword,
    CSRouter,
    CSGroup,
    CloudAccessID,
    CloudSecretKey,
    CloudPool,
    CloudHost,
    CSManager,
    CSAuthToken,
    CSAPIAccessID,
    CSAPISecret,
    Username,
    CSAppName,
    LogFile,
    ResultFile,
    Dummy,
    JobID,
}

pub(super) mod enum_exports {
    pub use super::{DoubleParam, IntParam, StrParam};

}

pub mod variant_exports {
    pub use super::DoubleParam::*;
    pub use super::IntParam::*;
    pub use super::StrParam::*;

}