Google OR-Tools: ortools/third_party_solvers/xpress_environment.h Source File

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16#ifndef ORTOOLS_THIRD_PARTY_SOLVERS_XPRESS_ENVIRONMENT_H_

17#define ORTOOLS_THIRD_PARTY_SOLVERS_XPRESS_ENVIRONMENT_H_

18

19#include <functional>

20#include <string>

21

22#include "absl/status/status.h"

24

25extern "C" {

26typedef struct xo_prob_struct* XPRSprob;

27}

28

30

32

33bool initXpressEnv(bool verbose = true, int xpress_oem_license_key = 0);

34

36

37

38

39

40

41

43

44

45

46

47

48

49#if defined(_WIN32)

50#define XPRSint64 __int64

51#elif defined(__LP64__) || defined(_LP64) || defined(__ILP64__) || \

52 defined(_ILP64)

53#define XPRSint64 long

54#else

55#define XPRSint64 long long

56#endif

57

58

59#if defined(_MSC_VER)

60#define XPRS_CC __stdcall

61#else

62#define XPRS_CC

63#endif

64

65

66

67#define XPRS_STOP_NONE 0

68#define XPRS_STOP_TIMELIMIT 1

69#define XPRS_STOP_CTRLC 2

70#define XPRS_STOP_NODELIMIT 3

71#define XPRS_STOP_ITERLIMIT 4

72#define XPRS_STOP_MIPGAP 5

73#define XPRS_STOP_SOLLIMIT 6

74#define XPRS_STOP_GENERICERROR 7

75#define XPRS_STOP_MEMORYERROR 8

76#define XPRS_STOP_USER 9

77#define XPRS_STOP_SOLVECOMPLETE 10

78#define XPRS_STOP_LICENSELOST 11

79#define XPRS_STOP_NUMERICALERROR 13

80#define XPRS_STOP_WORKLIMIT 14

81

82

83

84#define XPRS_TYPE_NOTDEFINED 0

85#define XPRS_TYPE_INT 1

86#define XPRS_TYPE_INT64 2

87#define XPRS_TYPE_DOUBLE 3

88#define XPRS_TYPE_STRING 4

89

90

91

92#define XPRS_NAMES_ROW 1

93#define XPRS_NAMES_COLUMN 2

94#define XPRS_NAMES_SET 3

95

96

97

98#define XPRS_SOLAVAILABLE_NOTFOUND 0

99#define XPRS_SOLAVAILABLE_OPTIMAL 1

100#define XPRS_SOLAVAILABLE_FEASIBLE 2

101

102

103

104#define XPRS_SOLVESTATUS_UNSTARTED 0

105#define XPRS_SOLVESTATUS_STOPPED 1

106#define XPRS_SOLVESTATUS_FAILED 2

107#define XPRS_SOLVESTATUS_COMPLETED 3

108

109

110

111#define XPRS_ALG_DEFAULT 1

112#define XPRS_ALG_DUAL 2

113#define XPRS_ALG_PRIMAL 3

114#define XPRS_ALG_BARRIER 4

115#define XPRS_ALG_NETWORK 5

116

117#define XPRS_PLUSINFINITY 1.0e+20

118#define XPRS_MINUSINFINITY -1.0e+20

119#define XPRS_MAXBANNERLENGTH 512

120#define XPVERSION 45

121#define XPRS_PRESOLVESTATE 1026

122#define XPRS_MIPENTS 1032

123#define XPRS_ALGORITHM 1049

124#define XPRS_STOPSTATUS 1179

125#define XPRS_SOLVESTATUS 1394

126#define XPRS_OBJECTIVES 1397

127#define XPRS_SOLVEDOBJS 1399

128#define XPRS_ORIGINALCOLS 1214

129#define XPRS_ORIGINALROWS 1124

130#define XPRS_ORIGINALMIPENTS 1191

131#define XPRS_ORIGINALSETS 1194

132#define XPRS_ORIGINALINDICATORS 1255

133#define XPRS_OPTIMIZETYPEUSED 1268

134#define XPRS_OBJVAL 2118

135#define XPRS_BARPRIMALOBJ 4001

136#define XPRS_BARDUALOBJ 4002

137#define XPRS_MPSRHSNAME 6001

138#define XPRS_MPSOBJNAME 6002

139#define XPRS_MPSRANGENAME 6003

140#define XPRS_MPSBOUNDNAME 6004

141#define XPRS_OUTPUTMASK 6005

142#define XPRS_TUNERMETHODFILE 6017

143#define XPRS_TUNEROUTPUTPATH 6018

144#define XPRS_TUNERSESSIONNAME 6019

145#define XPRS_COMPUTEEXECSERVICE 6022

146#define XPRS_MAXCUTTIME 8149

147#define XPRS_MAXSTALLTIME 8443

148#define XPRS_TUNERMAXTIME 8364

149#define XPRS_MATRIXTOL 7001

150#define XPRS_PIVOTTOL 7002

151#define XPRS_FEASTOL 7003

152#define XPRS_OUTPUTTOL 7004

153#define XPRS_SOSREFTOL 7005

154#define XPRS_OPTIMALITYTOL 7006

155#define XPRS_ETATOL 7007

156#define XPRS_RELPIVOTTOL 7008

157#define XPRS_MIPTOL 7009

158#define XPRS_MIPTOLTARGET 7010

159#define XPRS_BARPERTURB 7011

160#define XPRS_MIPADDCUTOFF 7012

161#define XPRS_MIPABSCUTOFF 7013

162#define XPRS_MIPRELCUTOFF 7014

163#define XPRS_PSEUDOCOST 7015

164#define XPRS_PENALTY 7016

165#define XPRS_BIGM 7018

166#define XPRS_MIPABSSTOP 7019

167#define XPRS_MIPRELSTOP 7020

168#define XPRS_CROSSOVERACCURACYTOL 7023

169#define XPRS_PRIMALPERTURB 7024

170#define XPRS_DUALPERTURB 7025

171#define XPRS_BAROBJSCALE 7026

172#define XPRS_BARRHSSCALE 7027

173#define XPRS_CHOLESKYTOL 7032

174#define XPRS_BARGAPSTOP 7033

175#define XPRS_BARDUALSTOP 7034

176#define XPRS_BARPRIMALSTOP 7035

177#define XPRS_BARSTEPSTOP 7036

178#define XPRS_ELIMTOL 7042

179#define XPRS_MARKOWITZTOL 7047

180#define XPRS_MIPABSGAPNOTIFY 7064

181#define XPRS_MIPRELGAPNOTIFY 7065

182#define XPRS_BARLARGEBOUND 7067

183#define XPRS_PPFACTOR 7069

184#define XPRS_REPAIRINDEFINITEQMAX 7071

185#define XPRS_BARGAPTARGET 7073

186#define XPRS_DUMMYCONTROL 7075

187#define XPRS_BARSTARTWEIGHT 7076

188#define XPRS_BARFREESCALE 7077

189#define XPRS_SBEFFORT 7086

190#define XPRS_HEURDIVERANDOMIZE 7089

191#define XPRS_HEURSEARCHEFFORT 7090

192#define XPRS_CUTFACTOR 7091

193#define XPRS_EIGENVALUETOL 7097

194#define XPRS_INDLINBIGM 7099

195#define XPRS_TREEMEMORYSAVINGTARGET 7100

196#define XPRS_INDPRELINBIGM 7102

197#define XPRS_RELAXTREEMEMORYLIMIT 7105

198#define XPRS_MIPABSGAPNOTIFYOBJ 7108

199#define XPRS_MIPABSGAPNOTIFYBOUND 7109

200#define XPRS_PRESOLVEMAXGROW 7110

201#define XPRS_HEURSEARCHTARGETSIZE 7112

202#define XPRS_CROSSOVERRELPIVOTTOL 7113

203#define XPRS_CROSSOVERRELPIVOTTOLSAFE 7114

204#define XPRS_DETLOGFREQ 7116

205#define XPRS_MAXIMPLIEDBOUND 7120

206#define XPRS_FEASTOLTARGET 7121

207#define XPRS_OPTIMALITYTOLTARGET 7122

208#define XPRS_PRECOMPONENTSEFFORT 7124

209#define XPRS_LPLOGDELAY 7127

210#define XPRS_HEURDIVEITERLIMIT 7128

211#define XPRS_BARKERNEL 7130

212#define XPRS_FEASTOLPERTURB 7132

213#define XPRS_CROSSOVERFEASWEIGHT 7133

214#define XPRS_LUPIVOTTOL 7139

215#define XPRS_MIPRESTARTGAPTHRESHOLD 7140

216#define XPRS_NODEPROBINGEFFORT 7141

217#define XPRS_INPUTTOL 7143

218#define XPRS_MIPRESTARTFACTOR 7145

219#define XPRS_BAROBJPERTURB 7146

220#define XPRS_CPIALPHA 7149

221#define XPRS_GLOBALBOUNDINGBOX 7154

222#define XPRS_TIMELIMIT 7158

223#define XPRS_SOLTIMELIMIT 7159

224#define XPRS_REPAIRINFEASTIMELIMIT 7160

225#define XPRS_EXTRAROWS 8004

226#define XPRS_EXTRACOLS 8005

227#define XPRS_LPITERLIMIT 8007

228#define XPRS_LPLOG 8009

229#define XPRS_SCALING 8010

230#define XPRS_PRESOLVE 8011

231#define XPRS_CRASH 8012

232#define XPRS_PRICINGALG 8013

233#define XPRS_INVERTFREQ 8014

234#define XPRS_INVERTMIN 8015

235#define XPRS_MAXNODE 8018

236#define XPRS_MAXTIME 8020

237#define XPRS_MAXMIPSOL 8021

238#define XPRS_SIFTPASSES 8022

239#define XPRS_DEFAULTALG 8023

240#define XPRS_VARSELECTION 8025

241#define XPRS_NODESELECTION 8026

242#define XPRS_BACKTRACK 8027

243#define XPRS_MIPLOG 8028

244#define XPRS_KEEPNROWS 8030

245#define XPRS_MPSECHO 8032

246#define XPRS_MAXPAGELINES 8034

247#define XPRS_OUTPUTLOG 8035

248#define XPRS_BARSOLUTION 8038

249#define XPRS_CACHESIZE 8043

250#define XPRS_CROSSOVER 8044

251#define XPRS_BARITERLIMIT 8045

252#define XPRS_CHOLESKYALG 8046

253#define XPRS_BAROUTPUT 8047

254#define XPRS_EXTRAMIPENTS 8051

255#define XPRS_REFACTOR 8052

256#define XPRS_BARTHREADS 8053

257#define XPRS_KEEPBASIS 8054

258#define XPRS_CROSSOVEROPS 8060

259#define XPRS_VERSION 8061

260#define XPRS_CROSSOVERTHREADS 8065

261#define XPRS_BIGMMETHOD 8068

262#define XPRS_MPSNAMELENGTH 8071

263#define XPRS_ELIMFILLIN 8073

264#define XPRS_PRESOLVEOPS 8077

265#define XPRS_MIPPRESOLVE 8078

266#define XPRS_MIPTHREADS 8079

267#define XPRS_BARORDER 8080

268#define XPRS_BREADTHFIRST 8082

269#define XPRS_AUTOPERTURB 8084

270#define XPRS_DENSECOLLIMIT 8086

271#define XPRS_CALLBACKFROMMASTERTHREAD 8090

272#define XPRS_MAXMCOEFFBUFFERELEMS 8091

273#define XPRS_REFINEOPS 8093

274#define XPRS_LPREFINEITERLIMIT 8094

275#define XPRS_MIPREFINEITERLIMIT 8095

276#define XPRS_DUALIZEOPS 8097

277#define XPRS_CROSSOVERITERLIMIT 8104

278#define XPRS_PREBASISRED 8106

279#define XPRS_PRESORT 8107

280#define XPRS_PREPERMUTE 8108

281#define XPRS_PREPERMUTESEED 8109

282#define XPRS_MAXMEMORYSOFT 8112

283#define XPRS_CUTFREQ 8116

284#define XPRS_SYMSELECT 8117

285#define XPRS_SYMMETRY 8118

286#define XPRS_MAXMEMORYHARD 8119

287#define XPRS_MIQCPALG 8125

288#define XPRS_QCCUTS 8126

289#define XPRS_QCROOTALG 8127

290#define XPRS_PRECONVERTSEPARABLE 8128

291#define XPRS_ALGAFTERNETWORK 8129

292#define XPRS_TRACE 8130

293#define XPRS_MAXIIS 8131

294#define XPRS_CPUTIME 8133

295#define XPRS_COVERCUTS 8134

296#define XPRS_GOMCUTS 8135

297#define XPRS_LPFOLDING 8136

298#define XPRS_MPSFORMAT 8137

299#define XPRS_CUTSTRATEGY 8138

300#define XPRS_CUTDEPTH 8139

301#define XPRS_TREECOVERCUTS 8140

302#define XPRS_TREEGOMCUTS 8141

303#define XPRS_CUTSELECT 8142

304#define XPRS_TREECUTSELECT 8143

305#define XPRS_DUALIZE 8144

306#define XPRS_DUALGRADIENT 8145

307#define XPRS_SBITERLIMIT 8146

308#define XPRS_SBBEST 8147

309#define XPRS_BARINDEFLIMIT 8153

310#define XPRS_HEURFREQ 8155

311#define XPRS_HEURDEPTH 8156

312#define XPRS_HEURMAXSOL 8157

313#define XPRS_HEURNODES 8158

314#define XPRS_LNPBEST 8160

315#define XPRS_LNPITERLIMIT 8161

316#define XPRS_BRANCHCHOICE 8162

317#define XPRS_BARREGULARIZE 8163

318#define XPRS_SBSELECT 8164

319#define XPRS_LOCALCHOICE 8170

320#define XPRS_LOCALBACKTRACK 8171

321#define XPRS_DUALSTRATEGY 8174

322#define XPRS_L1CACHE 8175

323#define XPRS_HEURDIVESTRATEGY 8177

324#define XPRS_HEURSELECT 8178

325#define XPRS_BARSTART 8180

326#define XPRS_PRESOLVEPASSES 8183

327#define XPRS_BARNUMSTABILITY 8186

328#define XPRS_BARORDERTHREADS 8187

329#define XPRS_EXTRASETS 8190

330#define XPRS_FEASIBILITYPUMP 8193

331#define XPRS_PRECOEFELIM 8194

332#define XPRS_PREDOMCOL 8195

333#define XPRS_HEURSEARCHFREQ 8196

334#define XPRS_HEURDIVESPEEDUP 8197

335#define XPRS_SBESTIMATE 8198

336#define XPRS_BARCORES 8202

337#define XPRS_MAXCHECKSONMAXTIME 8203

338#define XPRS_MAXCHECKSONMAXCUTTIME 8204

339#define XPRS_HISTORYCOSTS 8206

340#define XPRS_ALGAFTERCROSSOVER 8208

341#define XPRS_MUTEXCALLBACKS 8210

342#define XPRS_BARCRASH 8211

343#define XPRS_HEURDIVESOFTROUNDING 8215

344#define XPRS_HEURSEARCHROOTSELECT 8216

345#define XPRS_HEURSEARCHTREESELECT 8217

346#define XPRS_MPS18COMPATIBLE 8223

347#define XPRS_ROOTPRESOLVE 8224

348#define XPRS_CROSSOVERDRP 8227

349#define XPRS_FORCEOUTPUT 8229

350#define XPRS_PRIMALOPS 8231

351#define XPRS_DETERMINISTIC 8232

352#define XPRS_PREPROBING 8238

353#define XPRS_TREEMEMORYLIMIT 8242

354#define XPRS_TREECOMPRESSION 8243

355#define XPRS_TREEDIAGNOSTICS 8244

356#define XPRS_MAXTREEFILESIZE 8245

357#define XPRS_PRECLIQUESTRATEGY 8247

358#define XPRS_REPAIRINFEASMAXTIME 8250

359#define XPRS_IFCHECKCONVEXITY 8251

360#define XPRS_PRIMALUNSHIFT 8252

361#define XPRS_REPAIRINDEFINITEQ 8254

362#define XPRS_MIPRAMPUP 8255

363#define XPRS_MAXLOCALBACKTRACK 8257

364#define XPRS_USERSOLHEURISTIC 8258

365#define XPRS_FORCEPARALLELDUAL 8265

366#define XPRS_BACKTRACKTIE 8266

367#define XPRS_BRANCHDISJ 8267

368#define XPRS_MIPFRACREDUCE 8270

369#define XPRS_CONCURRENTTHREADS 8274

370#define XPRS_MAXSCALEFACTOR 8275

371#define XPRS_HEURTHREADS 8276

372#define XPRS_THREADS 8278

373#define XPRS_HEURBEFORELP 8280

374#define XPRS_PREDOMROW 8281

375#define XPRS_BRANCHSTRUCTURAL 8282

376#define XPRS_QUADRATICUNSHIFT 8284

377#define XPRS_BARPRESOLVEOPS 8286

378#define XPRS_QSIMPLEXOPS 8288

379#define XPRS_MIPRESTART 8290

380#define XPRS_CONFLICTCUTS 8292

381#define XPRS_PREPROTECTDUAL 8293

382#define XPRS_CORESPERCPU 8296

383#define XPRS_RESOURCESTRATEGY 8297

384#define XPRS_CLAMPING 8301

385#define XPRS_SLEEPONTHREADWAIT 8302

386#define XPRS_PREDUPROW 8307

387#define XPRS_CPUPLATFORM 8312

388#define XPRS_BARALG 8315

389#define XPRS_SIFTING 8319

390#define XPRS_LPLOGSTYLE 8326

391#define XPRS_RANDOMSEED 8328

392#define XPRS_TREEQCCUTS 8331

393#define XPRS_PRELINDEP 8333

394#define XPRS_DUALTHREADS 8334

395#define XPRS_PREOBJCUTDETECT 8336

396#define XPRS_PREBNDREDQUAD 8337

397#define XPRS_PREBNDREDCONE 8338

398#define XPRS_PRECOMPONENTS 8339

399#define XPRS_MAXMIPTASKS 8347

400#define XPRS_MIPTERMINATIONMETHOD 8348

401#define XPRS_PRECONEDECOMP 8349

402#define XPRS_HEURFORCESPECIALOBJ 8350

403#define XPRS_HEURSEARCHROOTCUTFREQ 8351

404#define XPRS_PREELIMQUAD 8353

405#define XPRS_PREIMPLICATIONS 8356

406#define XPRS_TUNERMODE 8359

407#define XPRS_TUNERMETHOD 8360

408#define XPRS_TUNERTARGET 8362

409#define XPRS_TUNERTHREADS 8363

410#define XPRS_TUNERHISTORY 8365

411#define XPRS_TUNERPERMUTE 8366

412#define XPRS_TUNERVERBOSE 8370

413#define XPRS_TUNEROUTPUT 8372

414#define XPRS_PREANALYTICCENTER 8374

415#define XPRS_NETCUTS 8382

416#define XPRS_LPFLAGS 8385

417#define XPRS_MIPKAPPAFREQ 8386

418#define XPRS_OBJSCALEFACTOR 8387

419#define XPRS_TREEFILELOGINTERVAL 8389

420#define XPRS_IGNORECONTAINERCPULIMIT 8390

421#define XPRS_IGNORECONTAINERMEMORYLIMIT 8391

422#define XPRS_MIPDUALREDUCTIONS 8392

423#define XPRS_GENCONSDUALREDUCTIONS 8395

424#define XPRS_PWLDUALREDUCTIONS 8396

425#define XPRS_BARFAILITERLIMIT 8398

426#define XPRS_AUTOSCALING 8406

427#define XPRS_GENCONSABSTRANSFORMATION 8408

428#define XPRS_COMPUTEJOBPRIORITY 8409

429#define XPRS_PREFOLDING 8410

430#define XPRS_NETSTALLLIMIT 8412

431#define XPRS_SERIALIZEPREINTSOL 8413

432#define XPRS_NUMERICALEMPHASIS 8416

433#define XPRS_PWLNONCONVEXTRANSFORMATION 8420

434#define XPRS_MIPCOMPONENTS 8421

435#define XPRS_MIPCONCURRENTNODES 8422

436#define XPRS_MIPCONCURRENTSOLVES 8423

437#define XPRS_OUTPUTCONTROLS 8424

438#define XPRS_SIFTSWITCH 8425

439#define XPRS_HEUREMPHASIS 8427

440#define XPRS_COMPUTEMATX 8428

441#define XPRS_COMPUTEMATX_IIS 8429

442#define XPRS_COMPUTEMATX_IISMAXTIME 8430

443#define XPRS_BARREFITER 8431

444#define XPRS_COMPUTELOG 8434

445#define XPRS_SIFTPRESOLVEOPS 8435

446#define XPRS_CHECKINPUTDATA 8436

447#define XPRS_ESCAPENAMES 8440

448#define XPRS_IOTIMEOUT 8442

449#define XPRS_AUTOCUTTING 8446

450#define XPRS_CALLBACKCHECKTIMEDELAY 8451

451#define XPRS_MULTIOBJOPS 8457

452#define XPRS_MULTIOBJLOG 8458

453#define XPRS_GLOBALSPATIALBRANCHIFPREFERORIG 8465

454#define XPRS_PRECONFIGURATION 8470

455#define XPRS_FEASIBILITYJUMP 8471

456#define XPRS_BARHGMAXRESTARTS 8484

457#define XPRS_EXTRAELEMS 8006

458#define XPRS_EXTRASETELEMS 8191

459#define XPRS_LPOBJVAL 2001

460#define XPRS_MIPOBJVAL 2003

461#define XPRS_BESTBOUND 2004

462#define XPRS_OBJRHS 2005

463#define XPRS_OBJSENSE 2008

464#define XPRS_ROWS 1001

465#define XPRS_SIMPLEXITER 1009

466#define XPRS_BARITER 5001

467#define XPRS_SOLSTATUS_NOTFOUND 0

468#define XPRS_SOLSTATUS_OPTIMAL 1

469#define XPRS_SOLSTATUS_FEASIBLE 2

470#define XPRS_SOLSTATUS_INFEASIBLE 3

471#define XPRS_SOLSTATUS_UNBOUNDED 4

472#define XPRS_SOLSTATUS 1053

473#define XPRS_LPSTATUS 1010

474#define XPRS_MIPSTATUS 1011

475#define XPRS_NODES 1013

476#define XPRS_COLS 1018

477#define XPRS_MAXPROBNAMELENGTH 1158

478#define XPRS_LP_UNSTARTED 0

479#define XPRS_LP_OPTIMAL 1

480#define XPRS_LP_INFEAS 2

481#define XPRS_LP_CUTOFF 3

482#define XPRS_LP_UNFINISHED 4

483#define XPRS_LP_UNBOUNDED 5

484#define XPRS_LP_CUTOFF_IN_DUAL 6

485#define XPRS_LP_UNSOLVED 7

486#define XPRS_LP_NONCONVEX 8

487#define XPRS_MIP_SOLUTION 4

488#define XPRS_MIP_INFEAS 5

489#define XPRS_MIP_OPTIMAL 6

490#define XPRS_MIP_UNBOUNDED 7

491#define XPRS_ALG_DUAL 2

492#define XPRS_ALG_PRIMAL 3

493#define XPRS_ALG_BARRIER 4

494#define XPRS_OBJ_MINIMIZE 1

495#define XPRS_OBJ_MAXIMIZE -1

496#define XPRS_UUID 3011

497

498

499

500#define XPRS_BINARY 'B'

501#define XPRS_INTEGER 'I'

502#define XPRS_CONTINUOUS 'C'

503

504

505

506#define XPRS_LESS_EQUAL 'L'

507#define XPRS_GREATER_EQUAL 'G'

508#define XPRS_EQUAL 'E'

509#define XPRS_RANGE 'R'

510#define XPRS_NONBINDING 'N'

511

512

513

514#define XPRS_AT_LOWER 0

515#define XPRS_BASIC 1

516#define XPRS_AT_UPPER 2

517#define XPRS_FREE_SUPER 3

518

519

520

521

522#define XPRS_OBJECTIVE_PRIORITY 20001

523#define XPRS_OBJECTIVE_WEIGHT 20002

524#define XPRS_OBJECTIVE_ABSTOL 20003

525#define XPRS_OBJECTIVE_RELTOL 20004

526#define XPRS_OBJECTIVE_RHS 20005

527

528

529

530

533extern std::function<int(const char* path)> XPRSinit;

534extern std::function<int(void)> XPRSfree;

535extern std::function<int(char* buffer, int maxbytes)> XPRSgetlicerrmsg;

536extern std::function<int(int* p_i, char* p_c)> XPRSlicense;

537extern std::function<int(char* banner)> XPRSgetbanner;

538extern std::function<int(char* version)> XPRSgetversion;

539extern std::function<int(int *p_major, int *p_minor, int *p_build)> XPRSgetversionnumbers;

558extern std::function<int(XPRSprob prob, const char* name, int* p_id, int* p_type)> XPRSgetcontrolinfo;

559OR_DLL extern std::function<int(XPRSprob prob, double objcoef[], int first, int last)> XPRSgetobj;

560OR_DLL extern std::function<int(XPRSprob prob, double rhs[], int first, int last)> XPRSgetrhs;

562OR_DLL extern std::function<int(XPRSprob prob, double lb[], int first, int last)> XPRSgetlb;

563OR_DLL extern std::function<int(XPRSprob prob, double ub[], int first, int last)> XPRSgetub;

565extern std::function<int(XPRSprob prob, int* status, double x[], int first, int last)> XPRSgetsolution;

566extern std::function<int(XPRSprob prob, int* status, double duals[], int first, int last)> XPRSgetduals;

567extern std::function<int(XPRSprob prob, int* status, double djs[], int first, int last)> XPRSgetredcosts;

568extern std::function<int(XPRSprob prob, int nrows, int ncoefs, const char rowtype[], const double rhs[], const double rng[], const int start[], const int colind[], const double rowcoef[])> XPRSaddrows;

569extern std::function<int(XPRSprob prob, int nrows, int ncoefs, const char rowtype[], const double rhs[], const double rng[], const XPRSint64 start[], const int colind[], const double rowcoef[])> XPRSaddrows64;

570extern std::function<int(XPRSprob prob, int nrows, const int rowind[])> XPRSdelrows;

571extern std::function<int(XPRSprob prob, int ncols, int ncoefs, const double objcoef[], const int start[], const int rowind[], const double rowcoef[], const double lb[], const double ub[])> XPRSaddcols;

572extern std::function<int(XPRSprob prob, int ncols, const int colind[], const double objcoef[], int priority, double weight)> XPRSaddobj;

573extern std::function<int(XPRSprob prob, int row, int ncoefs, const int rowqcol1[], int const rowqcol2[], const double rowqcoef[])> XPRSaddqmatrix64;

574extern std::function<int(XPRSprob prob, int type, const char names[], int first, int last)> XPRSaddnames;

575extern std::function<int(XPRSprob prob, int type, char names[], int first, int last)> XPRSgetnames;

576extern std::function<int(XPRSprob prob, int ncols, const int colind[])> XPRSdelcols;

577extern std::function<int(XPRSprob prob, int nsets, XPRSint64 nelems, const char settype[], const XPRSint64 start[], const int colind[], const double refval[])> XPRSaddsets64;

578extern std::function<int(XPRSprob prob, int ncols, const int colind[], const char coltype[])> XPRSchgcoltype;

579extern std::function<int(XPRSprob prob, const int rowstat[], const int colstat[])> XPRSloadbasis;

583extern std::function<int(XPRSprob prob, int rowstat[], int colstat[])> XPRSgetbasis;

584extern std::function<int(XPRSprob prob, const char* filename, const char* flags)> XPRSwriteprob;

585extern std::function<int(XPRSprob prob, const char* filename)> XPRSsaveas;

588extern std::function<int(XPRSprob prob, int nbounds, const int colind[], const char bndtype[], const double bndval[])> XPRSchgbounds;

589extern std::function<int(XPRSprob prob, int length, const double solval[], const int colind[], const char* name)> XPRSaddmipsol;

591extern std::function<int(XPRSprob prob, int nrows, const int rowind[], const int colind[], const int complement[])> XPRSsetindicators;

592extern std::function<int(XPRSprob prob, int ndirs, const int colind[], const int priority[], const char dir[], const double uppseudo[], const double downpseudo[])> XPRSloaddirs;

593extern std::function<int(XPRSprob prob, double x[], double slack[], double duals[], double djs[])> XPRSgetlpsol;

594extern std::function<int(XPRSprob prob, double x[], double slack[])> XPRSgetmipsol;

595extern std::function<int(XPRSprob prob, int ncols, const int colind[], const double objcoef[])> XPRSchgobj;

596extern std::function<int(XPRSprob prob, int row, int col, double coef)> XPRSchgcoef;

597extern std::function<int(XPRSprob prob, int ncoefs, const int rowind[], const int colind[], const double rowcoef[])> XPRSchgmcoef;

598extern std::function<int(XPRSprob prob, XPRSint64 ncoefs, const int rowind[], const int colind[], const double rowcoef[])> XPRSchgmcoef64;

599extern std::function<int(XPRSprob prob, int ncoefs, const int objqcol1[], const int objqcol2[], const double objqcoef[])> XPRSchgmqobj;

600extern std::function<int(XPRSprob prob, int nrows, const int rowind[], const double rhs[])> XPRSchgrhs;

601extern std::function<int(XPRSprob prob, int nrows, const int rowind[], const double rng[])> XPRSchgrhsrange;

602extern std::function<int(XPRSprob prob, int nrows, const int rowind[], const char rowtype[])> XPRSchgrowtype;

606extern std::function<int(XPRSprob prob, void (XPRS_CC *f_message)(XPRSprob cbprob, void* cbdata, const char* msg, int msglen, int msgtype), void* p, int priority)> XPRSaddcbmessage;

607extern std::function<int(XPRSprob prob, void (XPRS_CC *f_message)(XPRSprob cbprob, void* cbdata, const char* msg, int msglen, int msgtype), void* p)> XPRSremovecbmessage;

612extern std::function<int(XPRSprob prob, const char* flags, int* solvestatus, int* solstatus)> XPRSoptimize;

613

614

615

616}

617

618#endif

std::function< int(XPRSprob prob, int objidx)> XPRSdelobj

std::function< int(XPRSprob prob, void(XPRS_CC *f_intsol)(XPRSprob cbprob, void *cbdata), void *p, int priority)> XPRSaddcbintsol

std::function< int(XPRSprob prob, int(XPRS_CC *f_checktime)(XPRSprob cbprob, void *cbdata), void *p)> XPRSremovecbchecktime

std::function< int(XPRSprob prob, int control)> XPRSsetdefaultcontrol

std::function< int(XPRSprob prob, int nrows, const int rowind[], const char rowtype[])> XPRSchgrowtype

std::function< int(XPRSprob prob, int objidx, const double solution[], double *p_objval)> XPRScalcobjn

std::function< int(char *banner)> XPRSgetbanner

absl::Status LoadXpressDynamicLibrary(std::string &xpresspath)

std::function< int(XPRSprob prob, int(XPRS_CC *f_checktime)(XPRSprob cbprob, void *cbdata), void *p, int priority)> XPRSaddcbchecktime

std::function< int(XPRSprob prob, int nrows, const int rowind[])> XPRSloaddelayedrows

std::function< int(XPRSprob prob, char rowtype[], int first, int last)> XPRSgetrowtype

std::function< int(XPRSprob prob, int attrib, int *p_value)> XPRSgetintattrib

std::function< int(XPRSprob prob, int ndirs, const int colind[], const int priority[], const char dir[], const double uppseudo[], const double downpseudo[])> XPRSloaddirs

std::function< int(XPRSprob prob, int ncoefs, const int objqcol1[], const int objqcol2[], const double objqcoef[])> XPRSchgmqobj

std::function< int(XPRSprob prob, void(XPRS_CC *f_message)(XPRSprob cbprob, void *cbdata, const char *msg, int msglen, int msgtype), void *p)> XPRSremovecbmessage

std::function< int(XPRSprob prob, char coltype[], int first, int last)> XPRSgetcoltype

std::function< int(XPRSprob prob, int attrib, double *p_value)> XPRSgetdblattrib

std::function< int(XPRSprob prob, int *status, double djs[], int first, int last)> XPRSgetredcosts

std::function< int(XPRSprob prob, const char *filename, const char *flags)> XPRSwriteprob

std::function< int(XPRSprob prob, void(XPRS_CC *f_message)(XPRSprob cbprob, void *cbdata, const char *msg, int msglen, int msgtype), void *p, int priority)> XPRSaddcbmessage

std::function< int(XPRSprob prob, double rhs[], int first, int last)> XPRSgetrhs

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

bool initXpressEnv(bool verbose, int xpress_oem_license_key)

init XPRESS environment.

std::function< int(XPRSprob prob, int length, const double solval[], const int colind[], const char *name)> XPRSaddmipsol

std::function< int(XPRSprob prob, double x[], double slack[])> XPRSgetmipsol

std::function< int(XPRSprob prob, int nbounds, const int colind[], const char bndtype[], const double bndval[])> XPRSchgbounds

std::function< int(XPRSprob prob, int row, int col, double *p_coef)> XPRSgetcoef

std::function< int(XPRSprob prob, const int rowstat[], const int colstat[])> XPRSloadbasis

std::function< int(XPRSprob prob, int row, int col, double coef)> XPRSchgcoef

std::function< int(XPRSprob prob, int nrows, const int rowind[])> XPRSdelrows

std::function< int(XPRSprob prob, int type, char names[], int first, int last)> XPRSgetnames

std::function< int(XPRSprob prob, int ncols, const int colind[])> XPRSdelcols

std::function< int(XPRSprob prob, int control, double *p_value)> XPRSgetdblcontrol

std::function< int(XPRSprob prob, int objidx, int control, int value)> XPRSsetobjintcontrol

std::function< int(XPRSprob prob, double lb[], int first, int last)> XPRSgetlb

std::function< int(XPRSprob prob, const char *flags, int *solvestatus, int *solstatus)> XPRSoptimize

std::function< int(XPRSprob prob, int control, int *p_value)> XPRSgetintcontrol

std::function< int(XPRSprob prob, void(XPRS_CC *f_intsol)(XPRSprob cbprob, void *cbdata), void *p)> XPRSremovecbintsol

std::function< int(XPRSprob prob, int ncols, const int colind[], const char coltype[])> XPRSchgcoltype

std::function< int(XPRSprob prob, int nrows, const int rowind[], const int colind[], const int complement[])> XPRSsetindicators

std::function< int(char *version)> XPRSgetversion

std::function< int(XPRSprob prob, const char *name, int *p_id, int *p_type)> XPRSgetcontrolinfo

std::function< int(XPRSprob prob, double x[], double slack[], double duals[], double djs[])> XPRSgetlpsol

std::function< int(XPRSprob prob, int control, XPRSint64 *p_value)> XPRSgetintcontrol64

std::function< int(XPRSprob prob)> XPRSpostsolve

std::function< int(XPRSprob prob, double objcoef[], int first, int last)> XPRSgetobj

std::function< int(XPRSprob prob, int nrows, const int rowind[], const double rng[])> XPRSchgrhsrange

std::function< int(XPRSprob prob, int type, const char names[], int first, int last)> XPRSaddnames

std::function< int(XPRSprob prob, int ncoefs, const int rowind[], const int colind[], const double rowcoef[])> XPRSchgmcoef

std::function< int(void)> XPRSfree

std::function< int(XPRSprob prob, int reason)> XPRSinterrupt

bool XpressIsCorrectlyInstalled()

std::function< int(char *buffer, int maxbytes)> XPRSgetlicerrmsg

std::function< int(XPRSprob prob, const char *filename)> XPRSsaveas

std::function< int(XPRSprob prob, int nsets, XPRSint64 nelems, const char settype[], const XPRSint64 start[], const int colind[], const double refval[])> XPRSaddsets64

std::function< int(XPRSprob prob, int control, int value)> XPRSsetintcontrol

std::function< int(XPRSprob prob, int nrows, int ncoefs, const char rowtype[], const double rhs[], const double rng[], const int start[], const int colind[], const double rowcoef[])> XPRSaddrows

std::function< int(XPRSprob prob, char *errmsg)> XPRSgetlasterror

std::function< int(XPRSprob prob, int attrib, char *value, int maxbytes, int *p_nbytes)> XPRSgetstringattrib

std::function< int(XPRSprob prob)> XPRSdestroyprob

std::function< int(XPRSprob prob, int control, double value)> XPRSsetdblcontrol

std::function< int(XPRSprob prob, XPRSint64 ncoefs, const int rowind[], const int colind[], const double rowcoef[])> XPRSchgmcoef64

std::function< int(XPRSprob prob, int *status, double x[], int first, int last)> XPRSgetsolution

std::function< int(XPRSprob prob, double rng[], int first, int last)> XPRSgetrhsrange

std::function< int(XPRSprob prob, double ub[], int first, int last)> XPRSgetub

void printXpressBanner(bool error)

std::function< int(int *p_major, int *p_minor, int *p_build)> XPRSgetversionnumbers

std::function< int(int *p_i, char *p_c)> XPRSlicense

std::function< int(XPRSprob prob, int control, const char *value)> XPRSsetstrcontrol

std::function< int(XPRSprob prob, int ncols, int ncoefs, const double objcoef[], const int start[], const int rowind[], const double rowcoef[], const double lb[], const double ub[])> XPRSaddcols

std::function< int(XPRSprob prob, int control, char *value, int maxbytes, int *p_nbytes)> XPRSgetstringcontrol

std::function< int(XPRSprob prob, int row, int ncoefs, const int rowqcol1[], int const rowqcol2[], const double rowqcoef[])> XPRSaddqmatrix64

std::function< int(XPRSprob prob, int ncols, const int colind[], const double objcoef[], int priority, double weight)> XPRSaddobj

std::function< int(XPRSprob prob, const char *flags)> XPRSmipoptimize

std::function< int(XPRSprob prob, int nrows, int ncoefs, const char rowtype[], const double rhs[], const double rng[], const XPRSint64 start[], const int colind[], const double rowcoef[])> XPRSaddrows64

std::function< int(XPRSprob prob, int nrows, const int rowind[], const double rhs[])> XPRSchgrhs

std::function< int(XPRSprob prob, int objidx, int attrib, double *p_value)> XPRSgetobjdblattrib

std::function< int(XPRSprob prob, int objidx, int control, double value)> XPRSsetobjdblcontrol

std::function< int(XPRSprob prob, int ncols, const int colind[], const double objcoef[])> XPRSchgobj

std::function< int(XPRSprob prob, int *status, double duals[], int first, int last)> XPRSgetduals

std::function< int(XPRSprob *p_prob)> XPRScreateprob

std::function< int(XPRSprob prob, const char *flags)> XPRSlpoptimize

std::function< int(XPRSprob prob, int control, XPRSint64 value)> XPRSsetintcontrol64

std::function< int(XPRSprob prob, int objsense)> XPRSchgobjsense

std::function< int(const char *path)> XPRSinit

std::function< int(XPRSprob prob, const char *probname)> XPRSsetprobname

std::function< int(XPRSprob prob, int rowstat[], int colstat[])> XPRSgetbasis

#define XPRSint64

Definition xpress_environment.h:55

struct xo_prob_struct * XPRSprob

Definition xpress_environment.h:26

#define XPRS_CC

Definition xpress_environment.h:62