mipper 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,587 @@
1
+ begin
2
+ if( ! defined?(GLPK_H) || GLPK_H.nil? ) # 25
3
+ GLPK_H = nil # 26
4
+ begin
5
+ if( defined?(__cplusplus) && ! __cplusplus.nil? ) # 31
6
+ end
7
+ rescue NameError => e
8
+ raise e if( $DEBUG )
9
+ end # 33
10
+ begin
11
+ GLP_MAJOR_VERSION = 4
12
+ rescue NameError => e
13
+ raise e if( $DEBUG )
14
+ end # 36
15
+ begin
16
+ GLP_MINOR_VERSION = 49
17
+ rescue NameError => e
18
+ raise e if( $DEBUG )
19
+ end # 37
20
+ begin
21
+ GLP_MIN = 1
22
+ rescue NameError => e
23
+ raise e if( $DEBUG )
24
+ end # 43
25
+ begin
26
+ GLP_MAX = 2
27
+ rescue NameError => e
28
+ raise e if( $DEBUG )
29
+ end # 44
30
+ begin
31
+ GLP_CV = 1
32
+ rescue NameError => e
33
+ raise e if( $DEBUG )
34
+ end # 47
35
+ begin
36
+ GLP_IV = 2
37
+ rescue NameError => e
38
+ raise e if( $DEBUG )
39
+ end # 48
40
+ begin
41
+ GLP_BV = 3
42
+ rescue NameError => e
43
+ raise e if( $DEBUG )
44
+ end # 49
45
+ begin
46
+ GLP_FR = 1
47
+ rescue NameError => e
48
+ raise e if( $DEBUG )
49
+ end # 52
50
+ begin
51
+ GLP_LO = 2
52
+ rescue NameError => e
53
+ raise e if( $DEBUG )
54
+ end # 53
55
+ begin
56
+ GLP_UP = 3
57
+ rescue NameError => e
58
+ raise e if( $DEBUG )
59
+ end # 54
60
+ begin
61
+ GLP_DB = 4
62
+ rescue NameError => e
63
+ raise e if( $DEBUG )
64
+ end # 55
65
+ begin
66
+ GLP_FX = 5
67
+ rescue NameError => e
68
+ raise e if( $DEBUG )
69
+ end # 56
70
+ begin
71
+ GLP_BS = 1
72
+ rescue NameError => e
73
+ raise e if( $DEBUG )
74
+ end # 59
75
+ begin
76
+ GLP_NL = 2
77
+ rescue NameError => e
78
+ raise e if( $DEBUG )
79
+ end # 60
80
+ begin
81
+ GLP_NU = 3
82
+ rescue NameError => e
83
+ raise e if( $DEBUG )
84
+ end # 61
85
+ begin
86
+ GLP_NF = 4
87
+ rescue NameError => e
88
+ raise e if( $DEBUG )
89
+ end # 62
90
+ begin
91
+ GLP_NS = 5
92
+ rescue NameError => e
93
+ raise e if( $DEBUG )
94
+ end # 63
95
+ begin
96
+ GLP_SF_GM = 0x01
97
+ rescue NameError => e
98
+ raise e if( $DEBUG )
99
+ end # 66
100
+ begin
101
+ GLP_SF_EQ = 0x10
102
+ rescue NameError => e
103
+ raise e if( $DEBUG )
104
+ end # 67
105
+ begin
106
+ GLP_SF_2N = 0x20
107
+ rescue NameError => e
108
+ raise e if( $DEBUG )
109
+ end # 68
110
+ begin
111
+ GLP_SF_SKIP = 0x40
112
+ rescue NameError => e
113
+ raise e if( $DEBUG )
114
+ end # 69
115
+ begin
116
+ GLP_SF_AUTO = 0x80
117
+ rescue NameError => e
118
+ raise e if( $DEBUG )
119
+ end # 70
120
+ begin
121
+ GLP_SOL = 1
122
+ rescue NameError => e
123
+ raise e if( $DEBUG )
124
+ end # 73
125
+ begin
126
+ GLP_IPT = 2
127
+ rescue NameError => e
128
+ raise e if( $DEBUG )
129
+ end # 74
130
+ begin
131
+ GLP_MIP = 3
132
+ rescue NameError => e
133
+ raise e if( $DEBUG )
134
+ end # 75
135
+ begin
136
+ GLP_UNDEF = 1
137
+ rescue NameError => e
138
+ raise e if( $DEBUG )
139
+ end # 78
140
+ begin
141
+ GLP_FEAS = 2
142
+ rescue NameError => e
143
+ raise e if( $DEBUG )
144
+ end # 79
145
+ begin
146
+ GLP_INFEAS = 3
147
+ rescue NameError => e
148
+ raise e if( $DEBUG )
149
+ end # 80
150
+ begin
151
+ GLP_NOFEAS = 4
152
+ rescue NameError => e
153
+ raise e if( $DEBUG )
154
+ end # 81
155
+ begin
156
+ GLP_OPT = 5
157
+ rescue NameError => e
158
+ raise e if( $DEBUG )
159
+ end # 82
160
+ begin
161
+ GLP_UNBND = 6
162
+ rescue NameError => e
163
+ raise e if( $DEBUG )
164
+ end # 83
165
+ begin
166
+ GLP_BF_FT = 1
167
+ rescue NameError => e
168
+ raise e if( $DEBUG )
169
+ end # 89
170
+ begin
171
+ GLP_BF_BG = 2
172
+ rescue NameError => e
173
+ raise e if( $DEBUG )
174
+ end # 90
175
+ begin
176
+ GLP_BF_GR = 3
177
+ rescue NameError => e
178
+ raise e if( $DEBUG )
179
+ end # 91
180
+ begin
181
+ GLP_MSG_OFF = 0
182
+ rescue NameError => e
183
+ raise e if( $DEBUG )
184
+ end # 108
185
+ begin
186
+ GLP_MSG_ERR = 1
187
+ rescue NameError => e
188
+ raise e if( $DEBUG )
189
+ end # 109
190
+ begin
191
+ GLP_MSG_ON = 2
192
+ rescue NameError => e
193
+ raise e if( $DEBUG )
194
+ end # 110
195
+ begin
196
+ GLP_MSG_ALL = 3
197
+ rescue NameError => e
198
+ raise e if( $DEBUG )
199
+ end # 111
200
+ begin
201
+ GLP_MSG_DBG = 4
202
+ rescue NameError => e
203
+ raise e if( $DEBUG )
204
+ end # 112
205
+ begin
206
+ GLP_PRIMAL = 1
207
+ rescue NameError => e
208
+ raise e if( $DEBUG )
209
+ end # 114
210
+ begin
211
+ GLP_DUALP = 2
212
+ rescue NameError => e
213
+ raise e if( $DEBUG )
214
+ end # 115
215
+ begin
216
+ GLP_DUAL = 3
217
+ rescue NameError => e
218
+ raise e if( $DEBUG )
219
+ end # 116
220
+ begin
221
+ GLP_PT_STD = 0x11
222
+ rescue NameError => e
223
+ raise e if( $DEBUG )
224
+ end # 118
225
+ begin
226
+ GLP_PT_PSE = 0x22
227
+ rescue NameError => e
228
+ raise e if( $DEBUG )
229
+ end # 119
230
+ begin
231
+ GLP_RT_STD = 0x11
232
+ rescue NameError => e
233
+ raise e if( $DEBUG )
234
+ end # 121
235
+ begin
236
+ GLP_RT_HAR = 0x22
237
+ rescue NameError => e
238
+ raise e if( $DEBUG )
239
+ end # 122
240
+ begin
241
+ GLP_ORD_NONE = 0
242
+ rescue NameError => e
243
+ raise e if( $DEBUG )
244
+ end # 140
245
+ begin
246
+ GLP_ORD_QMD = 1
247
+ rescue NameError => e
248
+ raise e if( $DEBUG )
249
+ end # 141
250
+ begin
251
+ GLP_ORD_AMD = 2
252
+ rescue NameError => e
253
+ raise e if( $DEBUG )
254
+ end # 142
255
+ begin
256
+ GLP_ORD_SYMAMD = 3
257
+ rescue NameError => e
258
+ raise e if( $DEBUG )
259
+ end # 143
260
+ begin
261
+ GLP_BR_FFV = 1
262
+ rescue NameError => e
263
+ raise e if( $DEBUG )
264
+ end # 154
265
+ begin
266
+ GLP_BR_LFV = 2
267
+ rescue NameError => e
268
+ raise e if( $DEBUG )
269
+ end # 155
270
+ begin
271
+ GLP_BR_MFV = 3
272
+ rescue NameError => e
273
+ raise e if( $DEBUG )
274
+ end # 156
275
+ begin
276
+ GLP_BR_DTH = 4
277
+ rescue NameError => e
278
+ raise e if( $DEBUG )
279
+ end # 157
280
+ begin
281
+ GLP_BR_PCH = 5
282
+ rescue NameError => e
283
+ raise e if( $DEBUG )
284
+ end # 158
285
+ begin
286
+ GLP_BT_DFS = 1
287
+ rescue NameError => e
288
+ raise e if( $DEBUG )
289
+ end # 160
290
+ begin
291
+ GLP_BT_BFS = 2
292
+ rescue NameError => e
293
+ raise e if( $DEBUG )
294
+ end # 161
295
+ begin
296
+ GLP_BT_BLB = 3
297
+ rescue NameError => e
298
+ raise e if( $DEBUG )
299
+ end # 162
300
+ begin
301
+ GLP_BT_BPH = 4
302
+ rescue NameError => e
303
+ raise e if( $DEBUG )
304
+ end # 163
305
+ begin
306
+ GLP_PP_NONE = 0
307
+ rescue NameError => e
308
+ raise e if( $DEBUG )
309
+ end # 174
310
+ begin
311
+ GLP_PP_ROOT = 1
312
+ rescue NameError => e
313
+ raise e if( $DEBUG )
314
+ end # 175
315
+ begin
316
+ GLP_PP_ALL = 2
317
+ rescue NameError => e
318
+ raise e if( $DEBUG )
319
+ end # 176
320
+ begin
321
+ if( 1 ) # 185
322
+ end
323
+ rescue NameError => e
324
+ raise e if( $DEBUG )
325
+ end # 187
326
+ begin
327
+ GLP_RF_REG = 0
328
+ rescue NameError => e
329
+ raise e if( $DEBUG )
330
+ end # 197
331
+ begin
332
+ GLP_RF_LAZY = 1
333
+ rescue NameError => e
334
+ raise e if( $DEBUG )
335
+ end # 198
336
+ begin
337
+ GLP_RF_CUT = 2
338
+ rescue NameError => e
339
+ raise e if( $DEBUG )
340
+ end # 199
341
+ begin
342
+ GLP_RF_GMI = 1
343
+ rescue NameError => e
344
+ raise e if( $DEBUG )
345
+ end # 202
346
+ begin
347
+ GLP_RF_MIR = 2
348
+ rescue NameError => e
349
+ raise e if( $DEBUG )
350
+ end # 203
351
+ begin
352
+ GLP_RF_COV = 3
353
+ rescue NameError => e
354
+ raise e if( $DEBUG )
355
+ end # 204
356
+ begin
357
+ GLP_RF_CLQ = 4
358
+ rescue NameError => e
359
+ raise e if( $DEBUG )
360
+ end # 205
361
+ begin
362
+ GLP_ON = 1
363
+ rescue NameError => e
364
+ raise e if( $DEBUG )
365
+ end # 211
366
+ begin
367
+ GLP_OFF = 0
368
+ rescue NameError => e
369
+ raise e if( $DEBUG )
370
+ end # 212
371
+ begin
372
+ GLP_IROWGEN = 0x01
373
+ rescue NameError => e
374
+ raise e if( $DEBUG )
375
+ end # 215
376
+ begin
377
+ GLP_IBINGO = 0x02
378
+ rescue NameError => e
379
+ raise e if( $DEBUG )
380
+ end # 216
381
+ begin
382
+ GLP_IHEUR = 0x03
383
+ rescue NameError => e
384
+ raise e if( $DEBUG )
385
+ end # 217
386
+ begin
387
+ GLP_ICUTGEN = 0x04
388
+ rescue NameError => e
389
+ raise e if( $DEBUG )
390
+ end # 218
391
+ begin
392
+ GLP_IBRANCH = 0x05
393
+ rescue NameError => e
394
+ raise e if( $DEBUG )
395
+ end # 219
396
+ begin
397
+ GLP_ISELECT = 0x06
398
+ rescue NameError => e
399
+ raise e if( $DEBUG )
400
+ end # 220
401
+ begin
402
+ GLP_IPREPRO = 0x07
403
+ rescue NameError => e
404
+ raise e if( $DEBUG )
405
+ end # 221
406
+ begin
407
+ GLP_NO_BRNCH = 0
408
+ rescue NameError => e
409
+ raise e if( $DEBUG )
410
+ end # 224
411
+ begin
412
+ GLP_DN_BRNCH = 1
413
+ rescue NameError => e
414
+ raise e if( $DEBUG )
415
+ end # 225
416
+ begin
417
+ GLP_UP_BRNCH = 2
418
+ rescue NameError => e
419
+ raise e if( $DEBUG )
420
+ end # 226
421
+ begin
422
+ GLP_EBADB = 0x01
423
+ rescue NameError => e
424
+ raise e if( $DEBUG )
425
+ end # 229
426
+ begin
427
+ GLP_ESING = 0x02
428
+ rescue NameError => e
429
+ raise e if( $DEBUG )
430
+ end # 230
431
+ begin
432
+ GLP_ECOND = 0x03
433
+ rescue NameError => e
434
+ raise e if( $DEBUG )
435
+ end # 231
436
+ begin
437
+ GLP_EBOUND = 0x04
438
+ rescue NameError => e
439
+ raise e if( $DEBUG )
440
+ end # 232
441
+ begin
442
+ GLP_EFAIL = 0x05
443
+ rescue NameError => e
444
+ raise e if( $DEBUG )
445
+ end # 233
446
+ begin
447
+ GLP_EOBJLL = 0x06
448
+ rescue NameError => e
449
+ raise e if( $DEBUG )
450
+ end # 234
451
+ begin
452
+ GLP_EOBJUL = 0x07
453
+ rescue NameError => e
454
+ raise e if( $DEBUG )
455
+ end # 235
456
+ begin
457
+ GLP_EITLIM = 0x08
458
+ rescue NameError => e
459
+ raise e if( $DEBUG )
460
+ end # 236
461
+ begin
462
+ GLP_ETMLIM = 0x09
463
+ rescue NameError => e
464
+ raise e if( $DEBUG )
465
+ end # 237
466
+ begin
467
+ GLP_ENOPFS = 0x0A
468
+ rescue NameError => e
469
+ raise e if( $DEBUG )
470
+ end # 238
471
+ begin
472
+ GLP_ENODFS = 0x0B
473
+ rescue NameError => e
474
+ raise e if( $DEBUG )
475
+ end # 239
476
+ begin
477
+ GLP_EROOT = 0x0C
478
+ rescue NameError => e
479
+ raise e if( $DEBUG )
480
+ end # 240
481
+ begin
482
+ GLP_ESTOP = 0x0D
483
+ rescue NameError => e
484
+ raise e if( $DEBUG )
485
+ end # 241
486
+ begin
487
+ GLP_EMIPGAP = 0x0E
488
+ rescue NameError => e
489
+ raise e if( $DEBUG )
490
+ end # 242
491
+ begin
492
+ GLP_ENOFEAS = 0x0F
493
+ rescue NameError => e
494
+ raise e if( $DEBUG )
495
+ end # 243
496
+ begin
497
+ GLP_ENOCVG = 0x10
498
+ rescue NameError => e
499
+ raise e if( $DEBUG )
500
+ end # 244
501
+ begin
502
+ GLP_EINSTAB = 0x11
503
+ rescue NameError => e
504
+ raise e if( $DEBUG )
505
+ end # 245
506
+ begin
507
+ GLP_EDATA = 0x12
508
+ rescue NameError => e
509
+ raise e if( $DEBUG )
510
+ end # 246
511
+ begin
512
+ GLP_ERANGE = 0x13
513
+ rescue NameError => e
514
+ raise e if( $DEBUG )
515
+ end # 247
516
+ begin
517
+ GLP_KKT_PE = 1
518
+ rescue NameError => e
519
+ raise e if( $DEBUG )
520
+ end # 250
521
+ begin
522
+ GLP_KKT_PB = 2
523
+ rescue NameError => e
524
+ raise e if( $DEBUG )
525
+ end # 251
526
+ begin
527
+ GLP_KKT_DE = 3
528
+ rescue NameError => e
529
+ raise e if( $DEBUG )
530
+ end # 252
531
+ begin
532
+ GLP_KKT_DB = 4
533
+ rescue NameError => e
534
+ raise e if( $DEBUG )
535
+ end # 253
536
+ begin
537
+ GLP_KKT_CS = 5
538
+ rescue NameError => e
539
+ raise e if( $DEBUG )
540
+ end # 254
541
+ begin
542
+ GLP_MPS_DECK = 1
543
+ rescue NameError => e
544
+ raise e if( $DEBUG )
545
+ end # 257
546
+ begin
547
+ GLP_MPS_FILE = 2
548
+ rescue NameError => e
549
+ raise e if( $DEBUG )
550
+ end # 258
551
+ begin
552
+ if( ! defined?(GLP_ERROR_DEFINED) || GLP_ERROR_DEFINED.nil? ) # 798
553
+ GLP_ERROR_DEFINED = nil # 799
554
+ end
555
+ rescue NameError => e
556
+ raise e if( $DEBUG )
557
+ end # 801
558
+ begin
559
+ glp_error = glp_error_(__FILE__, __LINE__)
560
+ rescue NameError => e
561
+ raise e if( $DEBUG )
562
+ end # 803
563
+ begin
564
+ GLP_ASN_MIN = 1
565
+ rescue NameError => e
566
+ raise e if( $DEBUG )
567
+ end # 966
568
+ begin
569
+ GLP_ASN_MAX = 2
570
+ rescue NameError => e
571
+ raise e if( $DEBUG )
572
+ end # 967
573
+ begin
574
+ GLP_ASN_MMP = 3
575
+ rescue NameError => e
576
+ raise e if( $DEBUG )
577
+ end # 968
578
+ begin
579
+ if( defined?(__cplusplus) && ! __cplusplus.nil? ) # 1041
580
+ end
581
+ rescue NameError => e
582
+ raise e if( $DEBUG )
583
+ end # 1043
584
+ end
585
+ rescue NameError => e
586
+ raise e if( $DEBUG )
587
+ end # 1045
@@ -0,0 +1,28 @@
1
+ module MIPPeR
2
+ module GLPK
3
+ class IOCP < FFI::Struct
4
+ layout :msg_lev, :int,
5
+ :br_tech, :int,
6
+ :bt_tech, :int,
7
+ :tol_int, :double,
8
+ :tol_obj, :double,
9
+ :tm_lim, :int,
10
+ :out_frq, :int,
11
+ :out_dly, :int,
12
+ :cb_func, callback([:pointer, :pointer], :void),
13
+ :cb_info, :pointer,
14
+ :cb_size, :int,
15
+ :pp_tech, :int,
16
+ :mip_gap, :double,
17
+ :mir_cuts, :int,
18
+ :gmi_cuts, :int,
19
+ :cov_cuts, :int,
20
+ :clq_cuts, :int,
21
+ :presolve, :int,
22
+ :binarize, :int,
23
+ :fp_heur, :int,
24
+ :alien, :int,
25
+ :foo_bar, [:double, 29]
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,43 @@
1
+ require 'ffi'
2
+
3
+ require_relative 'ext/structs'
4
+
5
+ module MIPPeR
6
+ module GLPK
7
+ # Hide the constants inside the MIPPeR::GLPK module
8
+ module_eval File.read(File.expand_path './ext/constants.rb',
9
+ File.dirname(__FILE__))
10
+
11
+ extend FFI::Library
12
+ ffi_lib 'glpk'
13
+
14
+ attach_function :glp_create_prob, [], :pointer
15
+ attach_function :glp_set_obj_dir, [:pointer, :int], :void
16
+ attach_function :glp_add_rows, [:pointer, :int], :int
17
+ attach_function :glp_add_cols, [:pointer, :int], :int
18
+ attach_function :glp_set_row_name, [:pointer, :int, :string], :void
19
+ attach_function :glp_set_col_name, [:pointer, :int, :string], :void
20
+ attach_function :glp_set_row_bnds, [:pointer, :int, :int,
21
+ :double, :double], :void
22
+ attach_function :glp_set_col_bnds, [:pointer, :int, :int,
23
+ :double, :double], :void
24
+ attach_function :glp_set_obj_coef, [:pointer, :int, :double], :void
25
+ attach_function :glp_set_mat_row, [:pointer, :int, :int,
26
+ :pointer, :pointer], :void
27
+ attach_function :glp_set_mat_col, [:pointer, :int, :int,
28
+ :pointer, :pointer], :void
29
+ attach_function :glp_load_matrix, [:pointer, :int, :pointer, :pointer,
30
+ :pointer], :void
31
+ attach_function :glp_delete_prob, [:pointer], :void
32
+ attach_function :glp_simplex, [:pointer, :pointer], :int
33
+ attach_function :glp_set_col_kind, [:pointer, :int, :int], :void
34
+ attach_function :glp_intopt, [:pointer, :pointer], :int
35
+ attach_function :glp_init_iocp, [:pointer], :void
36
+ attach_function :glp_mip_status, [:pointer], :int
37
+ attach_function :glp_mip_obj_val, [:pointer], :double
38
+ attach_function :glp_mip_row_val, [:pointer, :int], :double
39
+ attach_function :glp_mip_col_val, [:pointer, :int], :double
40
+ attach_function :glp_write_lp, [:pointer, :int, :string], :int
41
+ attach_function :glp_term_out, [:int], :int
42
+ end
43
+ end