1#![no_std]
3#![allow(bad_style)]
4
5extern crate libc;
6
7pub type lprec = Struct__lprec;
8pub enum Struct__INVrec { }
9pub type INVrec = Struct__INVrec;
10pub enum Union_QSORTrec { }
11#[repr(C)]
12#[derive(Copy)]
13pub struct Struct__B4rec {
14 pub B4_var: *mut libc::c_int,
15 pub var_B4: *mut libc::c_int,
16 pub B4_row: *mut libc::c_int,
17 pub row_B4: *mut libc::c_int,
18 pub wcol: *mut libc::c_double,
19 pub nzwcol: *mut libc::c_int,
20}
21impl ::core::clone::Clone for Struct__B4rec {
22 fn clone(&self) -> Self { *self }
23}
24impl ::core::default::Default for Struct__B4rec {
25 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
26}
27pub type B4rec = Struct__B4rec;
28#[repr(C)]
29#[derive(Copy)]
30pub struct Struct__OBJmonrec {
31 pub lp: *mut lprec,
32 pub oldpivstrategy: libc::c_int,
33 pub oldpivrule: libc::c_int,
34 pub pivrule: libc::c_int,
35 pub ruleswitches: libc::c_int,
36 pub limitstall: [libc::c_int; 2usize],
37 pub limitruleswitches: libc::c_int,
38 pub idxstep: [libc::c_int; 5usize],
39 pub countstep: libc::c_int,
40 pub startstep: libc::c_int,
41 pub currentstep: libc::c_int,
42 pub Rcycle: libc::c_int,
43 pub Ccycle: libc::c_int,
44 pub Ncycle: libc::c_int,
45 pub Mcycle: libc::c_int,
46 pub Icount: libc::c_int,
47 pub thisobj: libc::c_double,
48 pub prevobj: libc::c_double,
49 pub objstep: [libc::c_double; 5usize],
50 pub thisinfeas: libc::c_double,
51 pub previnfeas: libc::c_double,
52 pub epsvalue: libc::c_double,
53 pub spxfunc: [libc::c_char; 10usize],
54 pub pivdynamic: libc::c_uchar,
55 pub isdual: libc::c_uchar,
56 pub active: libc::c_uchar,
57}
58impl ::core::clone::Clone for Struct__OBJmonrec {
59 fn clone(&self) -> Self { *self }
60}
61impl ::core::default::Default for Struct__OBJmonrec {
62 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
63}
64pub type OBJmonrec = Struct__OBJmonrec;
65#[repr(C)]
66#[derive(Copy)]
67pub struct Struct__edgerec {
68 pub edgeVector: *mut libc::c_double,
69}
70impl ::core::clone::Clone for Struct__edgerec {
71 fn clone(&self) -> Self { *self }
72}
73impl ::core::default::Default for Struct__edgerec {
74 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
75}
76pub type edgerec = Struct__edgerec;
77#[repr(C)]
78#[derive(Copy)]
79pub struct Struct__pricerec {
80 pub theta: libc::c_double,
81 pub pivot: libc::c_double,
82 pub epspivot: libc::c_double,
83 pub varno: libc::c_int,
84 pub lp: *mut lprec,
85 pub isdual: libc::c_uchar,
86}
87impl ::core::clone::Clone for Struct__pricerec {
88 fn clone(&self) -> Self { *self }
89}
90impl ::core::default::Default for Struct__pricerec {
91 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
92}
93pub type pricerec = Struct__pricerec;
94#[repr(C)]
95#[derive(Copy)]
96pub struct Struct__multirec {
97 pub lp: *mut lprec,
98 pub size: libc::c_int,
99 pub used: libc::c_int,
100 pub limit: libc::c_int,
101 pub items: *mut pricerec,
102 pub freeList: *mut libc::c_int,
103 pub sortedList: *mut Union_QSORTrec,
104 pub stepList: *mut libc::c_double,
105 pub valueList: *mut libc::c_double,
106 pub indexSet: *mut libc::c_int,
107 pub active: libc::c_int,
108 pub retries: libc::c_int,
109 pub step_base: libc::c_double,
110 pub step_last: libc::c_double,
111 pub obj_base: libc::c_double,
112 pub obj_last: libc::c_double,
113 pub epszero: libc::c_double,
114 pub maxpivot: libc::c_double,
115 pub maxbound: libc::c_double,
116 pub sorted: libc::c_uchar,
117 pub truncinf: libc::c_uchar,
118 pub objcheck: libc::c_uchar,
119 pub dirty: libc::c_uchar,
120}
121impl ::core::clone::Clone for Struct__multirec {
122 fn clone(&self) -> Self { *self }
123}
124impl ::core::default::Default for Struct__multirec {
125 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
126}
127pub type multirec = Struct__multirec;
128#[repr(C)]
129#[derive(Copy)]
130pub struct Struct__workarraysrec {
131 pub lp: *mut lprec,
132 pub size: libc::c_int,
133 pub count: libc::c_int,
134 pub vectorarray: *mut *mut libc::c_char,
135 pub vectorsize: *mut libc::c_int,
136}
137impl ::core::clone::Clone for Struct__workarraysrec {
138 fn clone(&self) -> Self { *self }
139}
140impl ::core::default::Default for Struct__workarraysrec {
141 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
142}
143pub type workarraysrec = Struct__workarraysrec;
144#[repr(C)]
145#[derive(Copy)]
146pub struct Struct__LLrec {
147 pub size: libc::c_int,
148 pub count: libc::c_int,
149 pub firstitem: libc::c_int,
150 pub lastitem: libc::c_int,
151 pub map: *mut libc::c_int,
152}
153impl ::core::clone::Clone for Struct__LLrec {
154 fn clone(&self) -> Self { *self }
155}
156impl ::core::default::Default for Struct__LLrec {
157 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
158}
159pub type LLrec = Struct__LLrec;
160#[repr(C)]
161#[derive(Copy)]
162pub struct Struct__PVrec {
163 pub count: libc::c_int,
164 pub startpos: *mut libc::c_int,
165 pub value: *mut libc::c_double,
166 pub parent: *mut Struct__PVrec,
167}
168impl ::core::clone::Clone for Struct__PVrec {
169 fn clone(&self) -> Self { *self }
170}
171impl ::core::default::Default for Struct__PVrec {
172 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
173}
174pub type PVrec = Struct__PVrec;
175#[repr(C)]
176#[derive(Copy)]
177pub struct Struct__hashelem {
178 pub name: *mut libc::c_char,
179 pub index: libc::c_int,
180 pub next: *mut Struct__hashelem,
181 pub nextelem: *mut Struct__hashelem,
182}
183impl ::core::clone::Clone for Struct__hashelem {
184 fn clone(&self) -> Self { *self }
185}
186impl ::core::default::Default for Struct__hashelem {
187 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
188}
189pub type hashelem = Struct__hashelem;
190#[repr(C)]
191#[derive(Copy)]
192pub struct Struct_Unnamed1 {
193 pub table: *mut *mut hashelem,
194 pub size: libc::c_int,
195 pub base: libc::c_int,
196 pub count: libc::c_int,
197 pub first: *mut Struct__hashelem,
198 pub last: *mut Struct__hashelem,
199}
200impl ::core::clone::Clone for Struct_Unnamed1 {
201 fn clone(&self) -> Self { *self }
202}
203impl ::core::default::Default for Struct_Unnamed1 {
204 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
205}
206pub type hashtable = Struct_Unnamed1;
207#[repr(C)]
208#[derive(Copy)]
209pub struct Struct__MATitem {
210 pub rownr: libc::c_int,
211 pub colnr: libc::c_int,
212 pub value: libc::c_double,
213}
214impl ::core::clone::Clone for Struct__MATitem {
215 fn clone(&self) -> Self { *self }
216}
217impl ::core::default::Default for Struct__MATitem {
218 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
219}
220pub type MATitem = Struct__MATitem;
221#[repr(C)]
222#[derive(Copy)]
223pub struct Struct__MATrec {
224 pub lp: *mut lprec,
225 pub rows: libc::c_int,
226 pub columns: libc::c_int,
227 pub rows_alloc: libc::c_int,
228 pub columns_alloc: libc::c_int,
229 pub mat_alloc: libc::c_int,
230 pub col_mat_colnr: *mut libc::c_int,
231 pub col_mat_rownr: *mut libc::c_int,
232 pub col_mat_value: *mut libc::c_double,
233 pub col_end: *mut libc::c_int,
234 pub col_tag: *mut libc::c_int,
235 pub row_mat: *mut libc::c_int,
236 pub row_end: *mut libc::c_int,
237 pub row_tag: *mut libc::c_int,
238 pub colmax: *mut libc::c_double,
239 pub rowmax: *mut libc::c_double,
240 pub epsvalue: libc::c_double,
241 pub infnorm: libc::c_double,
242 pub dynrange: libc::c_double,
243 pub row_end_valid: libc::c_uchar,
244 pub is_roworder: libc::c_uchar,
245}
246impl ::core::clone::Clone for Struct__MATrec {
247 fn clone(&self) -> Self { *self }
248}
249impl ::core::default::Default for Struct__MATrec {
250 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
251}
252pub type MATrec = Struct__MATrec;
253#[repr(C)]
254#[derive(Copy)]
255pub struct Struct__DeltaVrec {
256 pub lp: *mut lprec,
257 pub activelevel: libc::c_int,
258 pub tracker: *mut MATrec,
259}
260impl ::core::clone::Clone for Struct__DeltaVrec {
261 fn clone(&self) -> Self { *self }
262}
263impl ::core::default::Default for Struct__DeltaVrec {
264 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
265}
266pub type DeltaVrec = Struct__DeltaVrec;
267#[repr(C)]
268#[derive(Copy)]
269pub struct Struct__basisrec {
270 pub level: libc::c_int,
271 pub var_basic: *mut libc::c_int,
272 pub is_basic: *mut libc::c_uchar,
273 pub is_lower: *mut libc::c_uchar,
274 pub pivots: libc::c_int,
275 pub previous: *mut Struct__basisrec,
276}
277impl ::core::clone::Clone for Struct__basisrec {
278 fn clone(&self) -> Self { *self }
279}
280impl ::core::default::Default for Struct__basisrec {
281 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
282}
283pub type basisrec = Struct__basisrec;
284#[repr(C)]
285#[derive(Copy)]
286pub struct Struct__presolveundorec {
287 pub lp: *mut lprec,
288 pub orig_rows: libc::c_int,
289 pub orig_columns: libc::c_int,
290 pub orig_sum: libc::c_int,
291 pub var_to_orig: *mut libc::c_int,
292 pub orig_to_var: *mut libc::c_int,
293 pub fixed_rhs: *mut libc::c_double,
294 pub fixed_obj: *mut libc::c_double,
295 pub deletedA: *mut DeltaVrec,
296 pub primalundo: *mut DeltaVrec,
297 pub dualundo: *mut DeltaVrec,
298 pub OFcolsdeleted: libc::c_uchar,
299}
300impl ::core::clone::Clone for Struct__presolveundorec {
301 fn clone(&self) -> Self { *self }
302}
303impl ::core::default::Default for Struct__presolveundorec {
304 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
305}
306pub type presolveundorec = Struct__presolveundorec;
307#[repr(C)]
308#[derive(Copy)]
309pub struct Struct__BBPSrec {
310 pub lp: *mut lprec,
311 pub pseodotype: libc::c_int,
312 pub updatelimit: libc::c_int,
313 pub updatesfinished: libc::c_int,
314 pub restartlimit: libc::c_double,
315 pub UPcost: *mut MATitem,
316 pub LOcost: *mut MATitem,
317 pub secondary: *mut Struct__BBPSrec,
318}
319impl ::core::clone::Clone for Struct__BBPSrec {
320 fn clone(&self) -> Self { *self }
321}
322impl ::core::default::Default for Struct__BBPSrec {
323 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
324}
325pub type BBPSrec = Struct__BBPSrec;
326#[repr(C)]
327#[derive(Copy)]
328pub struct Struct__BBrec {
329 pub parent: *mut Struct__BBrec,
330 pub child: *mut Struct__BBrec,
331 pub lp: *mut lprec,
332 pub varno: libc::c_int,
333 pub vartype: libc::c_int,
334 pub lastvarcus: libc::c_int,
335 pub lastrcf: libc::c_int,
336 pub nodesleft: libc::c_int,
337 pub nodessolved: libc::c_int,
338 pub nodestatus: libc::c_int,
339 pub noderesult: libc::c_double,
340 pub lastsolution: libc::c_double,
341 pub sc_bound: libc::c_double,
342 pub upbo: *mut libc::c_double,
343 pub lowbo: *mut libc::c_double,
344 pub UPbound: libc::c_double,
345 pub LObound: libc::c_double,
346 pub UBtrack: libc::c_int,
347 pub LBtrack: libc::c_int,
348 pub contentmode: libc::c_uchar,
349 pub sc_canset: libc::c_uchar,
350 pub isSOS: libc::c_uchar,
351 pub isGUB: libc::c_uchar,
352 pub varmanaged: *mut libc::c_int,
353 pub isfloor: libc::c_uchar,
354 pub UBzerobased: libc::c_uchar,
355}
356impl ::core::clone::Clone for Struct__BBrec {
357 fn clone(&self) -> Self { *self }
358}
359impl ::core::default::Default for Struct__BBrec {
360 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
361}
362pub type BBrec = Struct__BBrec;
363#[repr(C)]
364#[derive(Copy)]
365pub struct Struct__partialrec {
366 pub lp: *mut lprec,
367 pub blockcount: libc::c_int,
368 pub blocknow: libc::c_int,
369 pub blockend: *mut libc::c_int,
370 pub blockpos: *mut libc::c_int,
371 pub isrow: libc::c_uchar,
372}
373impl ::core::clone::Clone for Struct__partialrec {
374 fn clone(&self) -> Self { *self }
375}
376impl ::core::default::Default for Struct__partialrec {
377 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
378}
379pub type partialrec = Struct__partialrec;
380pub type SOSgroup = Struct__SOSgroup;
381#[repr(C)]
382#[derive(Copy)]
383pub struct Struct__SOSrec {
384 pub parent: *mut SOSgroup,
385 pub tagorder: libc::c_int,
386 pub name: *mut libc::c_char,
387 pub _type: libc::c_int,
388 pub isGUB: libc::c_uchar,
389 pub size: libc::c_int,
390 pub priority: libc::c_int,
391 pub members: *mut libc::c_int,
392 pub weights: *mut libc::c_double,
393 pub membersSorted: *mut libc::c_int,
394 pub membersMapped: *mut libc::c_int,
395}
396impl ::core::clone::Clone for Struct__SOSrec {
397 fn clone(&self) -> Self { *self }
398}
399impl ::core::default::Default for Struct__SOSrec {
400 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
401}
402pub type SOSrec = Struct__SOSrec;
403#[repr(C)]
404#[derive(Copy)]
405pub struct Struct__SOSgroup {
406 pub lp: *mut lprec,
407 pub sos_list: *mut *mut SOSrec,
408 pub sos_alloc: libc::c_int,
409 pub sos_count: libc::c_int,
410 pub maxorder: libc::c_int,
411 pub sos1_count: libc::c_int,
412 pub membership: *mut libc::c_int,
413 pub memberpos: *mut libc::c_int,
414}
415impl ::core::clone::Clone for Struct__SOSgroup {
416 fn clone(&self) -> Self { *self }
417}
418impl ::core::default::Default for Struct__SOSgroup {
419 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
420}
421pub type lphandle_intfunc =
422 unsafe extern "C" fn(lp: *mut lprec,
423 userhandle: *mut libc::c_void)
424 -> libc::c_int;
425pub type lphandlestr_func =
426 unsafe extern "C" fn(lp: *mut lprec,
427 userhandle: *mut libc::c_void,
428 buf: *mut libc::c_char);
429pub type lphandleint_func =
430 unsafe extern "C" fn(lp: *mut lprec,
431 userhandle: *mut libc::c_void,
432 message: libc::c_int);
433pub type lphandleint_intfunc =
434 unsafe extern "C" fn(lp: *mut lprec,
435 userhandle: *mut libc::c_void,
436 message: libc::c_int)
437 -> libc::c_int;
438pub type add_column_func =
439 unsafe extern "C" fn(lp: *mut lprec,
440 column: *mut libc::c_double)
441 -> libc::c_uchar;
442pub type add_columnex_func =
443 unsafe extern "C" fn(lp: *mut lprec, count: libc::c_int,
444 column: *mut libc::c_double,
445 rowno: *mut libc::c_int)
446 -> libc::c_uchar;
447pub type add_constraint_func =
448 unsafe extern "C" fn(lp: *mut lprec, row: *mut libc::c_double,
449 constr_type: libc::c_int,
450 rh: libc::c_double)
451 -> libc::c_uchar;
452pub type add_constraintex_func =
453 unsafe extern "C" fn(lp: *mut lprec, count: libc::c_int,
454 row: *mut libc::c_double,
455 colno: *mut libc::c_int,
456 constr_type: libc::c_int,
457 rh: libc::c_double)
458 -> libc::c_uchar;
459pub type add_lag_con_func =
460 unsafe extern "C" fn(lp: *mut lprec, row: *mut libc::c_double,
461 con_type: libc::c_int,
462 rhs: libc::c_double)
463 -> libc::c_uchar;
464pub type add_SOS_func =
465 unsafe extern "C" fn(lp: *mut lprec, name: *mut libc::c_char,
466 sostype: libc::c_int,
467 priority: libc::c_int,
468 count: libc::c_int,
469 sosvars: *mut libc::c_int,
470 weights: *mut libc::c_double)
471 -> libc::c_int;
472pub type column_in_lp_func =
473 unsafe extern "C" fn(lp: *mut lprec,
474 column: *mut libc::c_double)
475 -> libc::c_int;
476pub type copy_lp_func =
477 unsafe extern "C" fn(lp: *mut lprec) -> *mut Struct__lprec;
478pub type default_basis_func = unsafe extern "C" fn(lp: *mut lprec);
479pub type del_column_func =
480 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
481 -> libc::c_uchar;
482pub type del_constraint_func =
483 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
484 -> libc::c_uchar;
485pub type delete_lp_func = unsafe extern "C" fn(lp: *mut lprec);
486pub type dualize_lp_func =
487 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
488pub type free_lp_func = unsafe extern "C" fn(plp: *mut *mut lprec);
489pub type get_anti_degen_func =
490 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
491pub type get_basis_func =
492 unsafe extern "C" fn(lp: *mut lprec,
493 bascolumn: *mut libc::c_int,
494 nonbasic: libc::c_uchar)
495 -> libc::c_uchar;
496pub type get_basiscrash_func =
497 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
498pub type get_bb_depthlimit_func =
499 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
500pub type get_bb_floorfirst_func =
501 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
502pub type get_bb_rule_func =
503 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
504pub type get_bounds_tighter_func =
505 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
506pub type get_break_at_value_func =
507 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
508pub type get_col_name_func =
509 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
510 -> *mut libc::c_char;
511pub type get_column_func =
512 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
513 column: *mut libc::c_double)
514 -> libc::c_uchar;
515pub type get_columnex_func =
516 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
517 column: *mut libc::c_double,
518 nzrow: *mut libc::c_int)
519 -> libc::c_int;
520pub type get_constr_type_func =
521 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
522 -> libc::c_int;
523pub type get_constr_value_func =
524 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
525 count: libc::c_int,
526 primsolution: *mut libc::c_double,
527 nzindex: *mut libc::c_int)
528 -> libc::c_double;
529pub type get_constraints_func =
530 unsafe extern "C" fn(lp: *mut lprec,
531 constr: *mut libc::c_double)
532 -> libc::c_uchar;
533pub type get_dual_solution_func =
534 unsafe extern "C" fn(lp: *mut lprec, rc: *mut libc::c_double)
535 -> libc::c_uchar;
536pub type get_epsb_func =
537 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
538pub type get_epsd_func =
539 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
540pub type get_epsel_func =
541 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
542pub type get_epsint_func =
543 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
544pub type get_epsperturb_func =
545 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
546pub type get_epspivot_func =
547 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
548pub type get_improve_func =
549 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
550pub type get_infinite_func =
551 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
552pub type get_lambda_func =
553 unsafe extern "C" fn(lp: *mut lprec,
554 lambda: *mut libc::c_double)
555 -> libc::c_uchar;
556pub type get_lowbo_func =
557 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
558 -> libc::c_double;
559pub type get_lp_index_func =
560 unsafe extern "C" fn(lp: *mut lprec, orig_index: libc::c_int)
561 -> libc::c_int;
562pub type get_lp_name_func =
563 unsafe extern "C" fn(lp: *mut lprec) -> *mut libc::c_char;
564pub type get_Lrows_func =
565 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
566pub type get_mat_func =
567 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
568 colnr: libc::c_int)
569 -> libc::c_double;
570pub type get_mat_byindex_func =
571 unsafe extern "C" fn(lp: *mut lprec, matindex: libc::c_int,
572 isrow: libc::c_uchar,
573 adjustsign: libc::c_uchar)
574 -> libc::c_double;
575pub type get_max_level_func =
576 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
577pub type get_maxpivot_func =
578 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
579pub type get_mip_gap_func =
580 unsafe extern "C" fn(lp: *mut lprec, absolute: libc::c_uchar)
581 -> libc::c_double;
582pub type get_multiprice_func =
583 unsafe extern "C" fn(lp: *mut lprec, getabssize: libc::c_uchar)
584 -> libc::c_int;
585pub type is_use_names_func =
586 unsafe extern "C" fn(lp: *mut lprec, isrow: libc::c_uchar)
587 -> libc::c_uchar;
588pub type set_use_names_func =
589 unsafe extern "C" fn(lp: *mut lprec, isrow: libc::c_uchar,
590 use_names: libc::c_uchar);
591pub type get_nameindex_func =
592 unsafe extern "C" fn(lp: *mut lprec, varname: *mut libc::c_char,
593 isrow: libc::c_uchar)
594 -> libc::c_int;
595pub type get_Ncolumns_func =
596 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
597pub type get_negrange_func =
598 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
599pub type get_nz_func =
600 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
601pub type get_Norig_columns_func =
602 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
603pub type get_Norig_rows_func =
604 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
605pub type get_Nrows_func =
606 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
607pub type get_obj_bound_func =
608 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
609pub type get_objective_func =
610 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
611pub type get_orig_index_func =
612 unsafe extern "C" fn(lp: *mut lprec, lp_index: libc::c_int)
613 -> libc::c_int;
614pub type get_origcol_name_func =
615 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
616 -> *mut libc::c_char;
617pub type get_origrow_name_func =
618 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
619 -> *mut libc::c_char;
620pub type get_partialprice_func =
621 unsafe extern "C" fn(lp: *mut lprec,
622 blockcount: *mut libc::c_int,
623 blockstart: *mut libc::c_int,
624 isrow: libc::c_uchar);
625pub type get_pivoting_func =
626 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
627pub type get_presolve_func =
628 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
629pub type get_presolveloops_func =
630 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
631pub type get_primal_solution_func =
632 unsafe extern "C" fn(lp: *mut lprec, pv: *mut libc::c_double)
633 -> libc::c_uchar;
634pub type get_print_sol_func =
635 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
636pub type get_pseudocosts_func =
637 unsafe extern "C" fn(lp: *mut lprec,
638 clower: *mut libc::c_double,
639 cupper: *mut libc::c_double,
640 updatelimit: *mut libc::c_int)
641 -> libc::c_uchar;
642pub type get_ptr_constraints_func =
643 unsafe extern "C" fn(lp: *mut lprec,
644 constr: *mut *mut libc::c_double)
645 -> libc::c_uchar;
646pub type get_ptr_dual_solution_func =
647 unsafe extern "C" fn(lp: *mut lprec,
648 rc: *mut *mut libc::c_double)
649 -> libc::c_uchar;
650pub type get_ptr_lambda_func =
651 unsafe extern "C" fn(lp: *mut lprec,
652 lambda: *mut *mut libc::c_double)
653 -> libc::c_uchar;
654pub type get_ptr_primal_solution_func =
655 unsafe extern "C" fn(lp: *mut lprec,
656 pv: *mut *mut libc::c_double)
657 -> libc::c_uchar;
658pub type get_ptr_sensitivity_obj_func =
659 unsafe extern "C" fn(lp: *mut lprec,
660 objfrom: *mut *mut libc::c_double,
661 objtill: *mut *mut libc::c_double)
662 -> libc::c_uchar;
663pub type get_ptr_sensitivity_objex_func =
664 unsafe extern "C" fn(lp: *mut lprec,
665 objfrom: *mut *mut libc::c_double,
666 objtill: *mut *mut libc::c_double,
667 objfromvalue: *mut *mut libc::c_double,
668 objtillvalue: *mut *mut libc::c_double)
669 -> libc::c_uchar;
670pub type get_ptr_sensitivity_rhs_func =
671 unsafe extern "C" fn(lp: *mut lprec,
672 duals: *mut *mut libc::c_double,
673 dualsfrom: *mut *mut libc::c_double,
674 dualstill: *mut *mut libc::c_double)
675 -> libc::c_uchar;
676pub type get_ptr_variables_func =
677 unsafe extern "C" fn(lp: *mut lprec,
678 var: *mut *mut libc::c_double)
679 -> libc::c_uchar;
680pub type get_rh_func =
681 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
682 -> libc::c_double;
683pub type get_rh_range_func =
684 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
685 -> libc::c_double;
686pub type get_rowex_func =
687 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
688 row: *mut libc::c_double,
689 colno: *mut libc::c_int)
690 -> libc::c_int;
691pub type get_row_func =
692 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
693 row: *mut libc::c_double)
694 -> libc::c_uchar;
695pub type get_row_name_func =
696 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
697 -> *mut libc::c_char;
698pub type get_scalelimit_func =
699 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
700pub type get_scaling_func =
701 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
702pub type get_sensitivity_obj_func =
703 unsafe extern "C" fn(lp: *mut lprec,
704 objfrom: *mut libc::c_double,
705 objtill: *mut libc::c_double)
706 -> libc::c_uchar;
707pub type get_sensitivity_objex_func =
708 unsafe extern "C" fn(lp: *mut lprec,
709 objfrom: *mut libc::c_double,
710 objtill: *mut libc::c_double,
711 objfromvalue: *mut libc::c_double,
712 objtillvalue: *mut libc::c_double)
713 -> libc::c_uchar;
714pub type get_sensitivity_rhs_func =
715 unsafe extern "C" fn(lp: *mut lprec, duals: *mut libc::c_double,
716 dualsfrom: *mut libc::c_double,
717 dualstill: *mut libc::c_double)
718 -> libc::c_uchar;
719pub type get_simplextype_func =
720 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
721pub type get_solutioncount_func =
722 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
723pub type get_solutionlimit_func =
724 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
725pub type get_status_func =
726 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
727pub type get_statustext_func =
728 unsafe extern "C" fn(lp: *mut lprec, statuscode: libc::c_int)
729 -> *mut libc::c_char;
730pub type get_timeout_func =
731 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_long;
732pub type get_total_iter_func =
733 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_longlong;
734pub type get_total_nodes_func =
735 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_longlong;
736pub type get_upbo_func =
737 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
738 -> libc::c_double;
739pub type get_var_branch_func =
740 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
741 -> libc::c_int;
742pub type get_var_dualresult_func =
743 unsafe extern "C" fn(lp: *mut lprec, index: libc::c_int)
744 -> libc::c_double;
745pub type get_var_primalresult_func =
746 unsafe extern "C" fn(lp: *mut lprec, index: libc::c_int)
747 -> libc::c_double;
748pub type get_var_priority_func =
749 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
750 -> libc::c_int;
751pub type get_variables_func =
752 unsafe extern "C" fn(lp: *mut lprec, var: *mut libc::c_double)
753 -> libc::c_uchar;
754pub type get_verbose_func =
755 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
756pub type guess_basis_func =
757 unsafe extern "C" fn(lp: *mut lprec,
758 guessvector: *mut libc::c_double,
759 basisvector: *mut libc::c_int)
760 -> libc::c_uchar;
761pub type get_working_objective_func =
762 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
763pub type has_BFP_func =
764 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
765pub type has_XLI_func =
766 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
767pub type is_add_rowmode_func =
768 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
769pub type is_anti_degen_func =
770 unsafe extern "C" fn(lp: *mut lprec, testmask: libc::c_int)
771 -> libc::c_uchar;
772pub type is_binary_func =
773 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
774 -> libc::c_uchar;
775pub type is_break_at_first_func =
776 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
777pub type is_constr_type_func =
778 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
779 mask: libc::c_int)
780 -> libc::c_uchar;
781pub type is_debug_func =
782 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
783pub type is_feasible_func =
784 unsafe extern "C" fn(lp: *mut lprec,
785 values: *mut libc::c_double,
786 threshold: libc::c_double)
787 -> libc::c_uchar;
788pub type is_unbounded_func =
789 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
790 -> libc::c_uchar;
791pub type is_infinite_func =
792 unsafe extern "C" fn(lp: *mut lprec, value: libc::c_double)
793 -> libc::c_uchar;
794pub type is_int_func =
795 unsafe extern "C" fn(lp: *mut lprec, column: libc::c_int)
796 -> libc::c_uchar;
797pub type is_integerscaling_func =
798 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
799pub type is_lag_trace_func =
800 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
801pub type is_maxim_func =
802 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
803pub type is_nativeBFP_func =
804 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
805pub type is_nativeXLI_func =
806 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
807pub type is_negative_func =
808 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
809 -> libc::c_uchar;
810pub type is_obj_in_basis_func =
811 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
812pub type is_piv_mode_func =
813 unsafe extern "C" fn(lp: *mut lprec, testmask: libc::c_int)
814 -> libc::c_uchar;
815pub type is_piv_rule_func =
816 unsafe extern "C" fn(lp: *mut lprec, rule: libc::c_int)
817 -> libc::c_uchar;
818pub type is_presolve_func =
819 unsafe extern "C" fn(lp: *mut lprec, testmask: libc::c_int)
820 -> libc::c_uchar;
821pub type is_scalemode_func =
822 unsafe extern "C" fn(lp: *mut lprec, testmask: libc::c_int)
823 -> libc::c_uchar;
824pub type is_scaletype_func =
825 unsafe extern "C" fn(lp: *mut lprec, scaletype: libc::c_int)
826 -> libc::c_uchar;
827pub type is_semicont_func =
828 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
829 -> libc::c_uchar;
830pub type is_SOS_var_func =
831 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
832 -> libc::c_uchar;
833pub type is_trace_func =
834 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
835pub type lp_solve_version_func =
836 unsafe extern "C" fn(majorversion: *mut libc::c_int,
837 minorversion: *mut libc::c_int,
838 release: *mut libc::c_int,
839 build: *mut libc::c_int);
840pub type make_lp_func =
841 extern "C" fn(rows: libc::c_int, columns: libc::c_int)
842 -> *mut Struct__lprec;
843pub type print_constraints_func =
844 unsafe extern "C" fn(lp: *mut lprec, columns: libc::c_int);
845pub type print_debugdump_func =
846 unsafe extern "C" fn(lp: *mut lprec,
847 filename: *mut libc::c_char)
848 -> libc::c_uchar;
849pub type print_duals_func = unsafe extern "C" fn(lp: *mut lprec);
850pub type print_lp_func = unsafe extern "C" fn(lp: *mut lprec);
851pub type print_objective_func = unsafe extern "C" fn(lp: *mut lprec);
852pub type print_scales_func = unsafe extern "C" fn(lp: *mut lprec);
853pub type print_solution_func =
854 unsafe extern "C" fn(lp: *mut lprec, columns: libc::c_int);
855pub type print_str_func =
856 unsafe extern "C" fn(lp: *mut lprec, str: *mut libc::c_char);
857pub type print_tableau_func = unsafe extern "C" fn(lp: *mut lprec);
858pub type put_abortfunc_func =
859 unsafe extern "C" fn(lp: *mut lprec, newctrlc: lphandle_intfunc,
860 ctrlchandle: *mut libc::c_void);
861pub type put_bb_nodefunc_func =
862 unsafe extern "C" fn(lp: *mut lprec, newnode: lphandleint_intfunc,
863 bbnodehandle: *mut libc::c_void);
864pub type put_bb_branchfunc_func =
865 unsafe extern "C" fn(lp: *mut lprec, newbranch: lphandleint_intfunc,
866 bbbranchhandle: *mut libc::c_void);
867pub type put_logfunc_func =
868 unsafe extern "C" fn(lp: *mut lprec, newlog: lphandlestr_func,
869 loghandle: *mut libc::c_void);
870pub type put_msgfunc_func =
871 unsafe extern "C" fn(lp: *mut lprec, newmsg: lphandleint_func,
872 msghandle: *mut libc::c_void,
873 mask: libc::c_int);
874pub type read_LP_func =
875 unsafe extern "C" fn(filename: *mut libc::c_char,
876 verbose: libc::c_int,
877 lp_name: *mut libc::c_char)
878 -> *mut Struct__lprec;
879pub type read_MPS_func =
880 unsafe extern "C" fn(filename: *mut libc::c_char,
881 options: libc::c_int)
882 -> *mut Struct__lprec;
883pub type read_XLI_func =
884 unsafe extern "C" fn(xliname: *mut libc::c_char,
885 modelname: *mut libc::c_char,
886 dataname: *mut libc::c_char,
887 options: *mut libc::c_char,
888 verbose: libc::c_int)
889 -> *mut Struct__lprec;
890pub type read_basis_func =
891 unsafe extern "C" fn(lp: *mut lprec,
892 filename: *mut libc::c_char,
893 info: *mut libc::c_char)
894 -> libc::c_uchar;
895pub type reset_basis_func = unsafe extern "C" fn(lp: *mut lprec);
896pub type read_params_func =
897 unsafe extern "C" fn(lp: *mut lprec,
898 filename: *mut libc::c_char,
899 options: *mut libc::c_char)
900 -> libc::c_uchar;
901pub type reset_params_func = unsafe extern "C" fn(lp: *mut lprec);
902pub type resize_lp_func =
903 unsafe extern "C" fn(lp: *mut lprec, rows: libc::c_int,
904 columns: libc::c_int)
905 -> libc::c_uchar;
906pub type set_add_rowmode_func =
907 unsafe extern "C" fn(lp: *mut lprec, turnon: libc::c_uchar)
908 -> libc::c_uchar;
909pub type set_anti_degen_func =
910 unsafe extern "C" fn(lp: *mut lprec, anti_degen: libc::c_int);
911pub type set_basisvar_func =
912 unsafe extern "C" fn(lp: *mut lprec, basisPos: libc::c_int,
913 enteringCol: libc::c_int)
914 -> libc::c_int;
915pub type set_basis_func =
916 unsafe extern "C" fn(lp: *mut lprec,
917 bascolumn: *mut libc::c_int,
918 nonbasic: libc::c_uchar)
919 -> libc::c_uchar;
920pub type set_basiscrash_func =
921 unsafe extern "C" fn(lp: *mut lprec, mode: libc::c_int);
922pub type set_bb_depthlimit_func =
923 unsafe extern "C" fn(lp: *mut lprec, bb_maxlevel: libc::c_int);
924pub type set_bb_floorfirst_func =
925 unsafe extern "C" fn(lp: *mut lprec,
926 bb_floorfirst: libc::c_int);
927pub type set_bb_rule_func =
928 unsafe extern "C" fn(lp: *mut lprec, bb_rule: libc::c_int);
929pub type set_BFP_func =
930 unsafe extern "C" fn(lp: *mut lprec,
931 filename: *mut libc::c_char)
932 -> libc::c_uchar;
933pub type set_binary_func =
934 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
935 must_be_bin: libc::c_uchar)
936 -> libc::c_uchar;
937pub type set_bounds_func =
938 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
939 lower: libc::c_double,
940 upper: libc::c_double)
941 -> libc::c_uchar;
942pub type set_bounds_tighter_func =
943 unsafe extern "C" fn(lp: *mut lprec, tighten: libc::c_uchar);
944pub type set_break_at_first_func =
945 unsafe extern "C" fn(lp: *mut lprec,
946 break_at_first: libc::c_uchar);
947pub type set_break_at_value_func =
948 unsafe extern "C" fn(lp: *mut lprec,
949 break_at_value: libc::c_double);
950pub type set_column_func =
951 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
952 column: *mut libc::c_double)
953 -> libc::c_uchar;
954pub type set_columnex_func =
955 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
956 count: libc::c_int,
957 column: *mut libc::c_double,
958 rowno: *mut libc::c_int)
959 -> libc::c_uchar;
960pub type set_col_name_func =
961 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
962 new_name: *mut libc::c_char)
963 -> libc::c_uchar;
964pub type set_constr_type_func =
965 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
966 con_type: libc::c_int)
967 -> libc::c_uchar;
968pub type set_debug_func =
969 unsafe extern "C" fn(lp: *mut lprec, debug: libc::c_uchar);
970pub type set_epsb_func =
971 unsafe extern "C" fn(lp: *mut lprec, epsb: libc::c_double);
972pub type set_epsd_func =
973 unsafe extern "C" fn(lp: *mut lprec, epsd: libc::c_double);
974pub type set_epsel_func =
975 unsafe extern "C" fn(lp: *mut lprec, epsel: libc::c_double);
976pub type set_epsint_func =
977 unsafe extern "C" fn(lp: *mut lprec, epsint: libc::c_double);
978pub type set_epslevel_func =
979 unsafe extern "C" fn(lp: *mut lprec, epslevel: libc::c_int)
980 -> libc::c_uchar;
981pub type set_epsperturb_func =
982 unsafe extern "C" fn(lp: *mut lprec,
983 epsperturb: libc::c_double);
984pub type set_epspivot_func =
985 unsafe extern "C" fn(lp: *mut lprec, epspivot: libc::c_double);
986pub type set_unbounded_func =
987 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
988 -> libc::c_uchar;
989pub type set_improve_func =
990 unsafe extern "C" fn(lp: *mut lprec, improve: libc::c_int);
991pub type set_infinite_func =
992 unsafe extern "C" fn(lp: *mut lprec, infinite: libc::c_double);
993pub type set_int_func =
994 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
995 must_be_int: libc::c_uchar)
996 -> libc::c_uchar;
997pub type set_lag_trace_func =
998 unsafe extern "C" fn(lp: *mut lprec, lag_trace: libc::c_uchar);
999pub type set_lowbo_func =
1000 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
1001 value: libc::c_double)
1002 -> libc::c_uchar;
1003pub type set_lp_name_func =
1004 unsafe extern "C" fn(lp: *mut lprec, lpname: *mut libc::c_char)
1005 -> libc::c_uchar;
1006pub type set_mat_func =
1007 unsafe extern "C" fn(lp: *mut lprec, row: libc::c_int,
1008 column: libc::c_int,
1009 value: libc::c_double)
1010 -> libc::c_uchar;
1011pub type set_maxim_func = unsafe extern "C" fn(lp: *mut lprec);
1012pub type set_maxpivot_func =
1013 unsafe extern "C" fn(lp: *mut lprec, max_num_inv: libc::c_int);
1014pub type set_minim_func = unsafe extern "C" fn(lp: *mut lprec);
1015pub type set_mip_gap_func =
1016 unsafe extern "C" fn(lp: *mut lprec, absolute: libc::c_uchar,
1017 mip_gap: libc::c_double);
1018pub type set_multiprice_func =
1019 unsafe extern "C" fn(lp: *mut lprec, multiblockdiv: libc::c_int)
1020 -> libc::c_uchar;
1021pub type set_negrange_func =
1022 unsafe extern "C" fn(lp: *mut lprec, negrange: libc::c_double);
1023pub type set_obj_func =
1024 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
1025 value: libc::c_double)
1026 -> libc::c_uchar;
1027pub type set_obj_bound_func =
1028 unsafe extern "C" fn(lp: *mut lprec, obj_bound: libc::c_double);
1029pub type set_obj_fn_func =
1030 unsafe extern "C" fn(lp: *mut lprec, row: *mut libc::c_double)
1031 -> libc::c_uchar;
1032pub type set_obj_fnex_func =
1033 unsafe extern "C" fn(lp: *mut lprec, count: libc::c_int,
1034 row: *mut libc::c_double,
1035 colno: *mut libc::c_int)
1036 -> libc::c_uchar;
1037pub type set_obj_in_basis_func =
1038 unsafe extern "C" fn(lp: *mut lprec,
1039 obj_in_basis: libc::c_uchar);
1040pub type set_outputfile_func =
1041 unsafe extern "C" fn(lp: *mut lprec,
1042 filename: *mut libc::c_char)
1043 -> libc::c_uchar;
1044pub type set_outputstream_func =
1045 unsafe extern "C" fn(lp: *mut lprec, stream: *mut libc::FILE);
1046pub type set_partialprice_func =
1047 unsafe extern "C" fn(lp: *mut lprec, blockcount: libc::c_int,
1048 blockstart: *mut libc::c_int,
1049 isrow: libc::c_uchar)
1050 -> libc::c_uchar;
1051pub type set_pivoting_func =
1052 unsafe extern "C" fn(lp: *mut lprec, piv_rule: libc::c_int);
1053pub type set_preferdual_func =
1054 unsafe extern "C" fn(lp: *mut lprec, dodual: libc::c_uchar);
1055pub type set_presolve_func =
1056 unsafe extern "C" fn(lp: *mut lprec, presolvemode: libc::c_int,
1057 maxloops: libc::c_int);
1058pub type set_print_sol_func =
1059 unsafe extern "C" fn(lp: *mut lprec, print_sol: libc::c_int);
1060pub type set_pseudocosts_func =
1061 unsafe extern "C" fn(lp: *mut lprec,
1062 clower: *mut libc::c_double,
1063 cupper: *mut libc::c_double,
1064 updatelimit: *mut libc::c_int)
1065 -> libc::c_uchar;
1066pub type set_rh_func =
1067 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
1068 value: libc::c_double)
1069 -> libc::c_uchar;
1070pub type set_rh_range_func =
1071 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
1072 deltavalue: libc::c_double)
1073 -> libc::c_uchar;
1074pub type set_rh_vec_func =
1075 unsafe extern "C" fn(lp: *mut lprec, rh: *mut libc::c_double);
1076pub type set_row_func =
1077 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
1078 row: *mut libc::c_double)
1079 -> libc::c_uchar;
1080pub type set_rowex_func =
1081 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
1082 count: libc::c_int,
1083 row: *mut libc::c_double,
1084 colno: *mut libc::c_int)
1085 -> libc::c_uchar;
1086pub type set_row_name_func =
1087 unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
1088 new_name: *mut libc::c_char)
1089 -> libc::c_uchar;
1090pub type set_scalelimit_func =
1091 unsafe extern "C" fn(lp: *mut lprec,
1092 scalelimit: libc::c_double);
1093pub type set_scaling_func =
1094 unsafe extern "C" fn(lp: *mut lprec, scalemode: libc::c_int);
1095pub type set_semicont_func =
1096 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
1097 must_be_sc: libc::c_uchar)
1098 -> libc::c_uchar;
1099pub type set_sense_func =
1100 unsafe extern "C" fn(lp: *mut lprec, maximize: libc::c_uchar);
1101pub type set_simplextype_func =
1102 unsafe extern "C" fn(lp: *mut lprec, simplextype: libc::c_int);
1103pub type set_solutionlimit_func =
1104 unsafe extern "C" fn(lp: *mut lprec, limit: libc::c_int);
1105pub type set_timeout_func =
1106 unsafe extern "C" fn(lp: *mut lprec, sectimeout: libc::c_long);
1107pub type set_trace_func =
1108 unsafe extern "C" fn(lp: *mut lprec, trace: libc::c_uchar);
1109pub type set_upbo_func =
1110 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
1111 value: libc::c_double)
1112 -> libc::c_uchar;
1113pub type set_var_branch_func =
1114 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
1115 branch_mode: libc::c_int)
1116 -> libc::c_uchar;
1117pub type set_var_weights_func =
1118 unsafe extern "C" fn(lp: *mut lprec,
1119 weights: *mut libc::c_double)
1120 -> libc::c_uchar;
1121pub type set_verbose_func =
1122 unsafe extern "C" fn(lp: *mut lprec, verbose: libc::c_int);
1123pub type set_XLI_func =
1124 unsafe extern "C" fn(lp: *mut lprec,
1125 filename: *mut libc::c_char)
1126 -> libc::c_uchar;
1127pub type solve_func =
1128 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
1129pub type str_add_column_func =
1130 unsafe extern "C" fn(lp: *mut lprec,
1131 col_string: *mut libc::c_char)
1132 -> libc::c_uchar;
1133pub type str_add_constraint_func =
1134 unsafe extern "C" fn(lp: *mut lprec,
1135 row_string: *mut libc::c_char,
1136 constr_type: libc::c_int,
1137 rh: libc::c_double)
1138 -> libc::c_uchar;
1139pub type str_add_lag_con_func =
1140 unsafe extern "C" fn(lp: *mut lprec,
1141 row_string: *mut libc::c_char,
1142 con_type: libc::c_int,
1143 rhs: libc::c_double)
1144 -> libc::c_uchar;
1145pub type str_set_obj_fn_func =
1146 unsafe extern "C" fn(lp: *mut lprec,
1147 row_string: *mut libc::c_char)
1148 -> libc::c_uchar;
1149pub type str_set_rh_vec_func =
1150 unsafe extern "C" fn(lp: *mut lprec,
1151 rh_string: *mut libc::c_char)
1152 -> libc::c_uchar;
1153pub type time_elapsed_func =
1154 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
1155pub type unscale_func = unsafe extern "C" fn(lp: *mut lprec);
1156pub type write_lp_func =
1157 unsafe extern "C" fn(lp: *mut lprec,
1158 filename: *mut libc::c_char)
1159 -> libc::c_uchar;
1160pub type write_LP_func =
1161 unsafe extern "C" fn(lp: *mut lprec, output: *mut libc::FILE)
1162 -> libc::c_uchar;
1163pub type write_mps_func =
1164 unsafe extern "C" fn(lp: *mut lprec,
1165 filename: *mut libc::c_char)
1166 -> libc::c_uchar;
1167pub type write_MPS_func =
1168 unsafe extern "C" fn(lp: *mut lprec, output: *mut libc::FILE)
1169 -> libc::c_uchar;
1170pub type write_freemps_func =
1171 unsafe extern "C" fn(lp: *mut lprec,
1172 filename: *mut libc::c_char)
1173 -> libc::c_uchar;
1174pub type write_freeMPS_func =
1175 unsafe extern "C" fn(lp: *mut lprec, output: *mut libc::FILE)
1176 -> libc::c_uchar;
1177pub type write_XLI_func =
1178 unsafe extern "C" fn(lp: *mut lprec,
1179 filename: *mut libc::c_char,
1180 options: *mut libc::c_char,
1181 results: libc::c_uchar)
1182 -> libc::c_uchar;
1183pub type write_basis_func =
1184 unsafe extern "C" fn(lp: *mut lprec,
1185 filename: *mut libc::c_char)
1186 -> libc::c_uchar;
1187pub type write_params_func =
1188 unsafe extern "C" fn(lp: *mut lprec,
1189 filename: *mut libc::c_char,
1190 options: *mut libc::c_char)
1191 -> libc::c_uchar;
1192pub type userabortfunc =
1193 unsafe extern "C" fn(lp: *mut lprec, level: libc::c_int)
1194 -> libc::c_uchar;
1195pub type reportfunc =
1196 unsafe extern "C" fn(lp: *mut lprec, level: libc::c_int,
1197 format: *mut libc::c_char, ...);
1198pub type explainfunc =
1199 unsafe extern "C" fn(lp: *mut lprec,
1200 format: *mut libc::c_char, ...)
1201 -> *mut libc::c_char;
1202pub type getvectorfunc =
1203 unsafe extern "C" fn(lp: *mut lprec, varin: libc::c_int,
1204 pcol: *mut libc::c_double,
1205 nzlist: *mut libc::c_int,
1206 maxabs: *mut libc::c_int)
1207 -> libc::c_int;
1208pub type getpackedfunc =
1209 unsafe extern "C" fn(lp: *mut lprec, j: libc::c_int,
1210 rn: *mut libc::c_int,
1211 bj: *mut libc::c_double)
1212 -> libc::c_int;
1213pub type get_OF_activefunc =
1214 unsafe extern "C" fn(lp: *mut lprec, varnr: libc::c_int,
1215 mult: libc::c_double)
1216 -> libc::c_double;
1217pub type getMDOfunc =
1218 unsafe extern "C" fn(lp: *mut lprec,
1219 usedpos: *mut libc::c_uchar,
1220 colorder: *mut libc::c_int,
1221 size: *mut libc::c_int,
1222 symmetric: libc::c_uchar)
1223 -> libc::c_int;
1224pub type invertfunc =
1225 unsafe extern "C" fn(lp: *mut lprec, shiftbounds: libc::c_uchar,
1226 _final: libc::c_uchar)
1227 -> libc::c_uchar;
1228pub type set_actionfunc =
1229 unsafe extern "C" fn(actionvar: *mut libc::c_int,
1230 actionmask: libc::c_int);
1231pub type is_actionfunc =
1232 extern "C" fn(actionvar: libc::c_int,
1233 testmask: libc::c_int) -> libc::c_uchar;
1234pub type clear_actionfunc =
1235 unsafe extern "C" fn(actionvar: *mut libc::c_int,
1236 actionmask: libc::c_int);
1237pub type BFPchar = extern "C" fn() -> *mut libc::c_char;
1238pub type BFP_lp = unsafe extern "C" fn(lp: *mut lprec);
1239pub type BFP_lpint =
1240 unsafe extern "C" fn(lp: *mut lprec, newsize: libc::c_int);
1241pub type BFPint_lp =
1242 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
1243pub type BFPint_lpint =
1244 unsafe extern "C" fn(lp: *mut lprec, kind: libc::c_int)
1245 -> libc::c_int;
1246pub type BFPreal_lp =
1247 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
1248pub type BFPrealp_lp =
1249 unsafe extern "C" fn(lp: *mut lprec) -> *mut libc::c_double;
1250pub type BFP_lpbool =
1251 unsafe extern "C" fn(lp: *mut lprec, maximum: libc::c_uchar);
1252pub type BFPint_lpbool =
1253 unsafe extern "C" fn(lp: *mut lprec, maximum: libc::c_uchar)
1254 -> libc::c_int;
1255pub type BFPint_lpintintboolbool =
1256 unsafe extern "C" fn(lp: *mut lprec, uservars: libc::c_int,
1257 Bsize: libc::c_int,
1258 usedpos: *mut libc::c_uchar,
1259 _final: libc::c_uchar)
1260 -> libc::c_int;
1261pub type BFP_lprealint =
1262 unsafe extern "C" fn(lp: *mut lprec, pcol: *mut libc::c_double,
1263 nzidx: *mut libc::c_int);
1264pub type BFP_lprealintrealint =
1265 unsafe extern "C" fn(lp: *mut lprec, prow: *mut libc::c_double,
1266 pnzidx: *mut libc::c_int,
1267 drow: *mut libc::c_double,
1268 dnzidx: *mut libc::c_int);
1269pub type BFPbool_lp =
1270 unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
1271pub type BFPbool_lpbool =
1272 unsafe extern "C" fn(lp: *mut lprec, changesign: libc::c_uchar)
1273 -> libc::c_uchar;
1274pub type BFPbool_lpint =
1275 unsafe extern "C" fn(lp: *mut lprec, size: libc::c_int)
1276 -> libc::c_uchar;
1277pub type BFPbool_lpintintchar =
1278 unsafe extern "C" fn(lp: *mut lprec, size: libc::c_int,
1279 deltasize: libc::c_int,
1280 options: *mut libc::c_char)
1281 -> libc::c_uchar;
1282pub type BFPbool_lpintintint =
1283 unsafe extern "C" fn(lp: *mut lprec, size: libc::c_int,
1284 deltasize: libc::c_int,
1285 sizeofvar: libc::c_int)
1286 -> libc::c_uchar;
1287pub type BFPlreal_lpintintreal =
1288 unsafe extern "C" fn(lp: *mut lprec, row_nr: libc::c_int,
1289 col_nr: libc::c_int,
1290 pcol: *mut libc::c_double)
1291 -> libc::c_double;
1292pub type BFPreal_lplrealreal =
1293 unsafe extern "C" fn(lp: *mut lprec, theta: libc::c_double,
1294 pcol: *mut libc::c_double)
1295 -> libc::c_double;
1296pub type getcolumnex_func =
1297 unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
1298 nzvalues: *mut libc::c_double,
1299 nzrows: *mut libc::c_int,
1300 mapin: *mut libc::c_int)
1301 -> libc::c_int;
1302pub type BFPint_lpintrealcbintint =
1303 unsafe extern "C" fn(lp: *mut lprec, items: libc::c_int,
1304 cb: getcolumnex_func,
1305 maprow: *mut libc::c_int,
1306 mapcol: *mut libc::c_int)
1307 -> libc::c_int;
1308pub type XLIchar = extern "C" fn() -> *mut libc::c_char;
1309pub type XLIbool_lpintintint =
1310 unsafe extern "C" fn(lp: *mut lprec, size: libc::c_int,
1311 deltasize: libc::c_int,
1312 sizevar: libc::c_int)
1313 -> libc::c_uchar;
1314pub type XLIbool_lpcharcharcharint =
1315 unsafe extern "C" fn(lp: *mut lprec,
1316 modelname: *mut libc::c_char,
1317 dataname: *mut libc::c_char,
1318 options: *mut libc::c_char,
1319 verbose: libc::c_int)
1320 -> libc::c_uchar;
1321pub type XLIbool_lpcharcharbool =
1322 unsafe extern "C" fn(lp: *mut lprec,
1323 filename: *mut libc::c_char,
1324 options: *mut libc::c_char,
1325 results: libc::c_uchar)
1326 -> libc::c_uchar;
1327#[repr(C)]
1328#[derive(Copy)]
1329pub struct Struct__lprec {
1330 pub add_column: *mut add_column_func,
1331 pub add_columnex: *mut add_columnex_func,
1332 pub add_constraint: *mut add_constraint_func,
1333 pub add_constraintex: *mut add_constraintex_func,
1334 pub add_lag_con: *mut add_lag_con_func,
1335 pub add_SOS: *mut add_SOS_func,
1336 pub column_in_lp: *mut column_in_lp_func,
1337 pub copy_lp: *mut copy_lp_func,
1338 pub default_basis: *mut default_basis_func,
1339 pub del_column: *mut del_column_func,
1340 pub del_constraint: *mut del_constraint_func,
1341 pub delete_lp: *mut delete_lp_func,
1342 pub dualize_lp: *mut dualize_lp_func,
1343 pub free_lp: *mut free_lp_func,
1344 pub get_anti_degen: *mut get_anti_degen_func,
1345 pub get_basis: *mut get_basis_func,
1346 pub get_basiscrash: *mut get_basiscrash_func,
1347 pub get_bb_depthlimit: *mut get_bb_depthlimit_func,
1348 pub get_bb_floorfirst: *mut get_bb_floorfirst_func,
1349 pub get_bb_rule: *mut get_bb_rule_func,
1350 pub get_bounds_tighter: *mut get_bounds_tighter_func,
1351 pub get_break_at_value: *mut get_break_at_value_func,
1352 pub get_col_name: *mut get_col_name_func,
1353 pub get_columnex: *mut get_columnex_func,
1354 pub get_constr_type: *mut get_constr_type_func,
1355 pub get_constr_value: *mut get_constr_value_func,
1356 pub get_constraints: *mut get_constraints_func,
1357 pub get_dual_solution: *mut get_dual_solution_func,
1358 pub get_epsb: *mut get_epsb_func,
1359 pub get_epsd: *mut get_epsd_func,
1360 pub get_epsel: *mut get_epsel_func,
1361 pub get_epsint: *mut get_epsint_func,
1362 pub get_epsperturb: *mut get_epsperturb_func,
1363 pub get_epspivot: *mut get_epspivot_func,
1364 pub get_improve: *mut get_improve_func,
1365 pub get_infinite: *mut get_infinite_func,
1366 pub get_lambda: *mut get_lambda_func,
1367 pub get_lowbo: *mut get_lowbo_func,
1368 pub get_lp_index: *mut get_lp_index_func,
1369 pub get_lp_name: *mut get_lp_name_func,
1370 pub get_Lrows: *mut get_Lrows_func,
1371 pub get_mat: *mut get_mat_func,
1372 pub get_mat_byindex: *mut get_mat_byindex_func,
1373 pub get_max_level: *mut get_max_level_func,
1374 pub get_maxpivot: *mut get_maxpivot_func,
1375 pub get_mip_gap: *mut get_mip_gap_func,
1376 pub get_multiprice: *mut get_multiprice_func,
1377 pub get_nameindex: *mut get_nameindex_func,
1378 pub get_Ncolumns: *mut get_Ncolumns_func,
1379 pub get_negrange: *mut get_negrange_func,
1380 pub get_nonzeros: *mut get_nz_func,
1381 pub get_Norig_columns: *mut get_Norig_columns_func,
1382 pub get_Norig_rows: *mut get_Norig_rows_func,
1383 pub get_Nrows: *mut get_Nrows_func,
1384 pub get_obj_bound: *mut get_obj_bound_func,
1385 pub get_objective: *mut get_objective_func,
1386 pub get_orig_index: *mut get_orig_index_func,
1387 pub get_origcol_name: *mut get_origcol_name_func,
1388 pub get_origrow_name: *mut get_origrow_name_func,
1389 pub get_partialprice: *mut get_partialprice_func,
1390 pub get_pivoting: *mut get_pivoting_func,
1391 pub get_presolve: *mut get_presolve_func,
1392 pub get_presolveloops: *mut get_presolveloops_func,
1393 pub get_primal_solution: *mut get_primal_solution_func,
1394 pub get_print_sol: *mut get_print_sol_func,
1395 pub get_pseudocosts: *mut get_pseudocosts_func,
1396 pub get_ptr_constraints: *mut get_ptr_constraints_func,
1397 pub get_ptr_dual_solution: *mut get_ptr_dual_solution_func,
1398 pub get_ptr_lambda: *mut get_ptr_lambda_func,
1399 pub get_ptr_primal_solution: *mut get_ptr_primal_solution_func,
1400 pub get_ptr_sensitivity_obj: *mut get_ptr_sensitivity_obj_func,
1401 pub get_ptr_sensitivity_objex: *mut get_ptr_sensitivity_objex_func,
1402 pub get_ptr_sensitivity_rhs: *mut get_ptr_sensitivity_rhs_func,
1403 pub get_ptr_variables: *mut get_ptr_variables_func,
1404 pub get_rh: *mut get_rh_func,
1405 pub get_rh_range: *mut get_rh_range_func,
1406 pub get_row: *mut get_row_func,
1407 pub get_rowex: *mut get_rowex_func,
1408 pub get_row_name: *mut get_row_name_func,
1409 pub get_scalelimit: *mut get_scalelimit_func,
1410 pub get_scaling: *mut get_scaling_func,
1411 pub get_sensitivity_obj: *mut get_sensitivity_obj_func,
1412 pub get_sensitivity_objex: *mut get_sensitivity_objex_func,
1413 pub get_sensitivity_rhs: *mut get_sensitivity_rhs_func,
1414 pub get_simplextype: *mut get_simplextype_func,
1415 pub get_solutioncount: *mut get_solutioncount_func,
1416 pub get_solutionlimit: *mut get_solutionlimit_func,
1417 pub get_status: *mut get_status_func,
1418 pub get_statustext: *mut get_statustext_func,
1419 pub get_timeout: *mut get_timeout_func,
1420 pub get_total_iter: *mut get_total_iter_func,
1421 pub get_total_nodes: *mut get_total_nodes_func,
1422 pub get_upbo: *mut get_upbo_func,
1423 pub get_var_branch: *mut get_var_branch_func,
1424 pub get_var_dualresult: *mut get_var_dualresult_func,
1425 pub get_var_primalresult: *mut get_var_primalresult_func,
1426 pub get_var_priority: *mut get_var_priority_func,
1427 pub get_variables: *mut get_variables_func,
1428 pub get_verbose: *mut get_verbose_func,
1429 pub get_working_objective: *mut get_working_objective_func,
1430 pub has_BFP: *mut has_BFP_func,
1431 pub has_XLI: *mut has_XLI_func,
1432 pub is_add_rowmode: *mut is_add_rowmode_func,
1433 pub is_anti_degen: *mut is_anti_degen_func,
1434 pub is_binary: *mut is_binary_func,
1435 pub is_break_at_first: *mut is_break_at_first_func,
1436 pub is_constr_type: *mut is_constr_type_func,
1437 pub is_debug: *mut is_debug_func,
1438 pub is_feasible: *mut is_feasible_func,
1439 pub is_infinite: *mut is_infinite_func,
1440 pub is_int: *mut is_int_func,
1441 pub is_integerscaling: *mut is_integerscaling_func,
1442 pub is_lag_trace: *mut is_lag_trace_func,
1443 pub is_maxim: *mut is_maxim_func,
1444 pub is_nativeBFP: *mut is_nativeBFP_func,
1445 pub is_nativeXLI: *mut is_nativeXLI_func,
1446 pub is_negative: *mut is_negative_func,
1447 pub is_obj_in_basis: *mut is_obj_in_basis_func,
1448 pub is_piv_mode: *mut is_piv_mode_func,
1449 pub is_piv_rule: *mut is_piv_rule_func,
1450 pub is_presolve: *mut is_presolve_func,
1451 pub is_scalemode: *mut is_scalemode_func,
1452 pub is_scaletype: *mut is_scaletype_func,
1453 pub is_semicont: *mut is_semicont_func,
1454 pub is_SOS_var: *mut is_SOS_var_func,
1455 pub is_trace: *mut is_trace_func,
1456 pub is_unbounded: *mut is_unbounded_func,
1457 pub is_use_names: *mut is_use_names_func,
1458 pub lp_solve_version: *mut lp_solve_version_func,
1459 pub make_lp: *mut make_lp_func,
1460 pub print_constraints: *mut print_constraints_func,
1461 pub print_debugdump: *mut print_debugdump_func,
1462 pub print_duals: *mut print_duals_func,
1463 pub print_lp: *mut print_lp_func,
1464 pub print_objective: *mut print_objective_func,
1465 pub print_scales: *mut print_scales_func,
1466 pub print_solution: *mut print_solution_func,
1467 pub print_str: *mut print_str_func,
1468 pub print_tableau: *mut print_tableau_func,
1469 pub put_abortfunc: *mut put_abortfunc_func,
1470 pub put_bb_nodefunc: *mut put_bb_nodefunc_func,
1471 pub put_bb_branchfunc: *mut put_bb_branchfunc_func,
1472 pub put_logfunc: *mut put_logfunc_func,
1473 pub put_msgfunc: *mut put_msgfunc_func,
1474 pub read_LP: *mut read_LP_func,
1475 pub read_MPS: *mut read_MPS_func,
1476 pub read_XLI: *mut read_XLI_func,
1477 pub read_params: *mut read_params_func,
1478 pub read_basis: *mut read_basis_func,
1479 pub reset_basis: *mut reset_basis_func,
1480 pub reset_params: *mut reset_params_func,
1481 pub resize_lp: *mut resize_lp_func,
1482 pub set_add_rowmode: *mut set_add_rowmode_func,
1483 pub set_anti_degen: *mut set_anti_degen_func,
1484 pub set_basisvar: *mut set_basisvar_func,
1485 pub set_basis: *mut set_basis_func,
1486 pub set_basiscrash: *mut set_basiscrash_func,
1487 pub set_bb_depthlimit: *mut set_bb_depthlimit_func,
1488 pub set_bb_floorfirst: *mut set_bb_floorfirst_func,
1489 pub set_bb_rule: *mut set_bb_rule_func,
1490 pub set_BFP: *mut set_BFP_func,
1491 pub set_binary: *mut set_binary_func,
1492 pub set_bounds: *mut set_bounds_func,
1493 pub set_bounds_tighter: *mut set_bounds_tighter_func,
1494 pub set_break_at_first: *mut set_break_at_first_func,
1495 pub set_break_at_value: *mut set_break_at_value_func,
1496 pub set_column: *mut set_column_func,
1497 pub set_columnex: *mut set_columnex_func,
1498 pub set_col_name: *mut set_col_name_func,
1499 pub set_constr_type: *mut set_constr_type_func,
1500 pub set_debug: *mut set_debug_func,
1501 pub set_epsb: *mut set_epsb_func,
1502 pub set_epsd: *mut set_epsd_func,
1503 pub set_epsel: *mut set_epsel_func,
1504 pub set_epsint: *mut set_epsint_func,
1505 pub set_epslevel: *mut set_epslevel_func,
1506 pub set_epsperturb: *mut set_epsperturb_func,
1507 pub set_epspivot: *mut set_epspivot_func,
1508 pub set_unbounded: *mut set_unbounded_func,
1509 pub set_improve: *mut set_improve_func,
1510 pub set_infinite: *mut set_infinite_func,
1511 pub set_int: *mut set_int_func,
1512 pub set_lag_trace: *mut set_lag_trace_func,
1513 pub set_lowbo: *mut set_lowbo_func,
1514 pub set_lp_name: *mut set_lp_name_func,
1515 pub set_mat: *mut set_mat_func,
1516 pub set_maxim: *mut set_maxim_func,
1517 pub set_maxpivot: *mut set_maxpivot_func,
1518 pub set_minim: *mut set_minim_func,
1519 pub set_mip_gap: *mut set_mip_gap_func,
1520 pub set_multiprice: *mut set_multiprice_func,
1521 pub set_negrange: *mut set_negrange_func,
1522 pub set_obj_bound: *mut set_obj_bound_func,
1523 pub set_obj_fn: *mut set_obj_fn_func,
1524 pub set_obj_fnex: *mut set_obj_fnex_func,
1525 pub set_obj: *mut set_obj_func,
1526 pub set_obj_in_basis: *mut set_obj_in_basis_func,
1527 pub set_outputfile: *mut set_outputfile_func,
1528 pub set_outputstream: *mut set_outputstream_func,
1529 pub set_partialprice: *mut set_partialprice_func,
1530 pub set_pivoting: *mut set_pivoting_func,
1531 pub set_preferdual: *mut set_preferdual_func,
1532 pub set_presolve: *mut set_presolve_func,
1533 pub set_print_sol: *mut set_print_sol_func,
1534 pub set_pseudocosts: *mut set_pseudocosts_func,
1535 pub set_rh: *mut set_rh_func,
1536 pub set_rh_range: *mut set_rh_range_func,
1537 pub set_rh_vec: *mut set_rh_vec_func,
1538 pub set_row: *mut set_row_func,
1539 pub set_rowex: *mut set_rowex_func,
1540 pub set_row_name: *mut set_row_name_func,
1541 pub set_scalelimit: *mut set_scalelimit_func,
1542 pub set_scaling: *mut set_scaling_func,
1543 pub set_semicont: *mut set_semicont_func,
1544 pub set_sense: *mut set_sense_func,
1545 pub set_simplextype: *mut set_simplextype_func,
1546 pub set_solutionlimit: *mut set_solutionlimit_func,
1547 pub set_timeout: *mut set_timeout_func,
1548 pub set_trace: *mut set_trace_func,
1549 pub set_upbo: *mut set_upbo_func,
1550 pub set_use_names: *mut set_use_names_func,
1551 pub set_var_branch: *mut set_var_branch_func,
1552 pub set_var_weights: *mut set_var_weights_func,
1553 pub set_verbose: *mut set_verbose_func,
1554 pub set_XLI: *mut set_XLI_func,
1555 pub solve: *mut solve_func,
1556 pub str_add_column: *mut str_add_column_func,
1557 pub str_add_constraint: *mut str_add_constraint_func,
1558 pub str_add_lag_con: *mut str_add_lag_con_func,
1559 pub str_set_obj_fn: *mut str_set_obj_fn_func,
1560 pub str_set_rh_vec: *mut str_set_rh_vec_func,
1561 pub time_elapsed: *mut time_elapsed_func,
1562 pub unscale: *mut unscale_func,
1563 pub write_lp: *mut write_lp_func,
1564 pub write_LP: *mut write_LP_func,
1565 pub write_mps: *mut write_mps_func,
1566 pub write_MPS: *mut write_MPS_func,
1567 pub write_freemps: *mut write_freemps_func,
1568 pub write_freeMPS: *mut write_freeMPS_func,
1569 pub write_XLI: *mut write_XLI_func,
1570 pub write_basis: *mut write_basis_func,
1571 pub write_params: *mut write_params_func,
1572 pub alignmentspacer: *mut libc::c_int,
1573 pub lp_name: *mut libc::c_char,
1574 pub sum: libc::c_int,
1575 pub rows: libc::c_int,
1576 pub columns: libc::c_int,
1577 pub equalities: libc::c_int,
1578 pub boundedvars: libc::c_int,
1579 pub INTfuture1: libc::c_int,
1580 pub sum_alloc: libc::c_int,
1581 pub rows_alloc: libc::c_int,
1582 pub columns_alloc: libc::c_int,
1583 pub source_is_file: libc::c_uchar,
1584 pub model_is_pure: libc::c_uchar,
1585 pub model_is_valid: libc::c_uchar,
1586 pub tighten_on_set: libc::c_uchar,
1587 pub names_used: libc::c_uchar,
1588 pub use_row_names: libc::c_uchar,
1589 pub use_col_names: libc::c_uchar,
1590 pub lag_trace: libc::c_uchar,
1591 pub spx_trace: libc::c_uchar,
1592 pub bb_trace: libc::c_uchar,
1593 pub streamowned: libc::c_uchar,
1594 pub obj_in_basis: libc::c_uchar,
1595 pub spx_status: libc::c_int,
1596 pub lag_status: libc::c_int,
1597 pub solutioncount: libc::c_int,
1598 pub solutionlimit: libc::c_int,
1599 pub real_solution: libc::c_double,
1600 pub solution: *mut libc::c_double,
1601 pub best_solution: *mut libc::c_double,
1602 pub full_solution: *mut libc::c_double,
1603 pub edgeVector: *mut libc::c_double,
1604 pub drow: *mut libc::c_double,
1605 pub nzdrow: *mut libc::c_int,
1606 pub duals: *mut libc::c_double,
1607 pub full_duals: *mut libc::c_double,
1608 pub dualsfrom: *mut libc::c_double,
1609 pub dualstill: *mut libc::c_double,
1610 pub objfrom: *mut libc::c_double,
1611 pub objtill: *mut libc::c_double,
1612 pub objfromvalue: *mut libc::c_double,
1613 pub orig_obj: *mut libc::c_double,
1614 pub obj: *mut libc::c_double,
1615 pub current_iter: libc::c_longlong,
1616 pub total_iter: libc::c_longlong,
1617 pub current_bswap: libc::c_longlong,
1618 pub total_bswap: libc::c_longlong,
1619 pub solvecount: libc::c_int,
1620 pub max_pivots: libc::c_int,
1621 pub simplex_strategy: libc::c_int,
1622 pub simplex_mode: libc::c_int,
1623 pub verbose: libc::c_int,
1624 pub print_sol: libc::c_int,
1625 pub outstream: *mut libc::FILE,
1626 pub bb_varbranch: *mut libc::c_uchar,
1627 pub piv_strategy: libc::c_int,
1628 pub _piv_rule_: libc::c_int,
1629 pub bb_rule: libc::c_int,
1630 pub bb_floorfirst: libc::c_uchar,
1631 pub bb_breakfirst: libc::c_uchar,
1632 pub _piv_left_: libc::c_uchar,
1633 pub BOOLfuture1: libc::c_uchar,
1634 pub scalelimit: libc::c_double,
1635 pub scalemode: libc::c_int,
1636 pub improve: libc::c_int,
1637 pub anti_degen: libc::c_int,
1638 pub do_presolve: libc::c_int,
1639 pub presolveloops: libc::c_int,
1640 pub perturb_count: libc::c_int,
1641 pub row_name: *mut *mut hashelem,
1642 pub col_name: *mut *mut hashelem,
1643 pub rowname_hashtab: *mut hashtable,
1644 pub colname_hashtab: *mut hashtable,
1645 pub rowblocks: *mut partialrec,
1646 pub colblocks: *mut partialrec,
1647 pub var_type: *mut libc::c_uchar,
1648 pub multivars: *mut multirec,
1649 pub multiblockdiv: libc::c_int,
1650 pub fixedvars: libc::c_int,
1651 pub int_vars: libc::c_int,
1652 pub sc_vars: libc::c_int,
1653 pub sc_lobound: *mut libc::c_double,
1654 pub var_is_free: *mut libc::c_int,
1655 pub var_priority: *mut libc::c_int,
1656 pub GUB: *mut SOSgroup,
1657 pub sos_vars: libc::c_int,
1658 pub sos_ints: libc::c_int,
1659 pub SOS: *mut SOSgroup,
1660 pub sos_priority: *mut libc::c_int,
1661 pub bsolveVal: *mut libc::c_double,
1662 pub bsolveIdx: *mut libc::c_int,
1663 pub orig_rhs: *mut libc::c_double,
1664 pub rhs: *mut libc::c_double,
1665 pub row_type: *mut libc::c_int,
1666 pub longsteps: *mut multirec,
1667 pub orig_upbo: *mut libc::c_double,
1668 pub upbo: *mut libc::c_double,
1669 pub orig_lowbo: *mut libc::c_double,
1670 pub lowbo: *mut libc::c_double,
1671 pub matA: *mut MATrec,
1672 pub invB: *mut INVrec,
1673 pub bb_bounds: *mut BBrec,
1674 pub rootbounds: *mut BBrec,
1675 pub bb_basis: *mut basisrec,
1676 pub rootbasis: *mut basisrec,
1677 pub monitor: *mut OBJmonrec,
1678 pub scalars: *mut libc::c_double,
1679 pub scaling_used: libc::c_uchar,
1680 pub columns_scaled: libc::c_uchar,
1681 pub varmap_locked: libc::c_uchar,
1682 pub basis_valid: libc::c_uchar,
1683 pub crashmode: libc::c_int,
1684 pub var_basic: *mut libc::c_int,
1685 pub val_nonbasic: *mut libc::c_double,
1686 pub is_basic: *mut libc::c_uchar,
1687 pub is_lower: *mut libc::c_uchar,
1688 pub rejectpivot: *mut libc::c_int,
1689 pub bb_PseudoCost: *mut BBPSrec,
1690 pub bb_PseudoUpdates: libc::c_int,
1691 pub bb_strongbranches: libc::c_int,
1692 pub is_strongbranch: libc::c_int,
1693 pub bb_improvements: libc::c_int,
1694 pub rhsmax: libc::c_double,
1695 pub suminfeas: libc::c_double,
1696 pub bigM: libc::c_double,
1697 pub P1extraVal: libc::c_double,
1698 pub P1extraDim: libc::c_int,
1699 pub spx_action: libc::c_int,
1700 pub spx_perturbed: libc::c_uchar,
1701 pub bb_break: libc::c_uchar,
1702 pub wasPreprocessed: libc::c_uchar,
1703 pub wasPresolved: libc::c_uchar,
1704 pub INTfuture2: libc::c_int,
1705 pub matL: *mut MATrec,
1706 pub lag_rhs: *mut libc::c_double,
1707 pub lag_con_type: *mut libc::c_int,
1708 pub lambda: *mut libc::c_double,
1709 pub lag_bound: libc::c_double,
1710 pub lag_accept: libc::c_double,
1711 pub infinite: libc::c_double,
1712 pub negrange: libc::c_double,
1713 pub epsmachine: libc::c_double,
1714 pub epsvalue: libc::c_double,
1715 pub epsprimal: libc::c_double,
1716 pub epsdual: libc::c_double,
1717 pub epspivot: libc::c_double,
1718 pub epsperturb: libc::c_double,
1719 pub epssolution: libc::c_double,
1720 pub bb_status: libc::c_int,
1721 pub bb_level: libc::c_int,
1722 pub bb_maxlevel: libc::c_int,
1723 pub bb_limitlevel: libc::c_int,
1724 pub bb_totalnodes: libc::c_longlong,
1725 pub bb_solutionlevel: libc::c_int,
1726 pub bb_cutpoolsize: libc::c_int,
1727 pub bb_cutpoolused: libc::c_int,
1728 pub bb_constraintOF: libc::c_int,
1729 pub bb_cuttype: *mut libc::c_int,
1730 pub bb_varactive: *mut libc::c_int,
1731 pub bb_upperchange: *mut DeltaVrec,
1732 pub bb_lowerchange: *mut DeltaVrec,
1733 pub bb_deltaOF: libc::c_double,
1734 pub bb_breakOF: libc::c_double,
1735 pub bb_limitOF: libc::c_double,
1736 pub bb_heuristicOF: libc::c_double,
1737 pub bb_parentOF: libc::c_double,
1738 pub bb_workOF: libc::c_double,
1739 pub presolve_undo: *mut presolveundorec,
1740 pub workarrays: *mut workarraysrec,
1741 pub epsint: libc::c_double,
1742 pub mip_absgap: libc::c_double,
1743 pub mip_relgap: libc::c_double,
1744 pub timecreate: libc::c_double,
1745 pub timestart: libc::c_double,
1746 pub timeheuristic: libc::c_double,
1747 pub timepresolved: libc::c_double,
1748 pub timeend: libc::c_double,
1749 pub sectimeout: libc::c_long,
1750 pub ex_status: *mut libc::c_char,
1751 pub hBFP: *mut libc::c_void,
1752 pub bfp_name: *mut BFPchar,
1753 pub bfp_compatible: *mut BFPbool_lpintintint,
1754 pub bfp_init: *mut BFPbool_lpintintchar,
1755 pub bfp_free: *mut BFP_lp,
1756 pub bfp_resize: *mut BFPbool_lpint,
1757 pub bfp_memallocated: *mut BFPint_lp,
1758 pub bfp_restart: *mut BFPbool_lp,
1759 pub bfp_mustrefactorize: *mut BFPbool_lp,
1760 pub bfp_preparefactorization: *mut BFPint_lp,
1761 pub bfp_factorize: *mut BFPint_lpintintboolbool,
1762 pub bfp_finishfactorization: *mut BFP_lp,
1763 pub bfp_updaterefactstats: *mut BFP_lp,
1764 pub bfp_prepareupdate: *mut BFPlreal_lpintintreal,
1765 pub bfp_pivotRHS: *mut BFPreal_lplrealreal,
1766 pub bfp_finishupdate: *mut BFPbool_lpbool,
1767 pub bfp_ftran_prepare: *mut BFP_lprealint,
1768 pub bfp_ftran_normal: *mut BFP_lprealint,
1769 pub bfp_btran_normal: *mut BFP_lprealint,
1770 pub bfp_btran_double: *mut BFP_lprealintrealint,
1771 pub bfp_status: *mut BFPint_lp,
1772 pub bfp_nonzeros: *mut BFPint_lpbool,
1773 pub bfp_implicitslack: *mut BFPbool_lp,
1774 pub bfp_indexbase: *mut BFPint_lp,
1775 pub bfp_rowoffset: *mut BFPint_lp,
1776 pub bfp_pivotmax: *mut BFPint_lp,
1777 pub bfp_pivotalloc: *mut BFPbool_lpint,
1778 pub bfp_colcount: *mut BFPint_lp,
1779 pub bfp_canresetbasis: *mut BFPbool_lp,
1780 pub bfp_efficiency: *mut BFPreal_lp,
1781 pub bfp_pivotvector: *mut BFPrealp_lp,
1782 pub bfp_pivotcount: *mut BFPint_lp,
1783 pub bfp_refactcount: *mut BFPint_lpint,
1784 pub bfp_isSetI: *mut BFPbool_lp,
1785 pub bfp_findredundant: *mut BFPint_lpintrealcbintint,
1786 pub hXLI: *mut libc::c_void,
1787 pub xli_name: *mut XLIchar,
1788 pub xli_compatible: *mut XLIbool_lpintintint,
1789 pub xli_readmodel: *mut XLIbool_lpcharcharcharint,
1790 pub xli_writemodel: *mut XLIbool_lpcharcharbool,
1791 pub userabort: *mut userabortfunc,
1792 pub report: *mut reportfunc,
1793 pub explain: *mut explainfunc,
1794 pub get_lpcolumn: *mut getvectorfunc,
1795 pub get_basiscolumn: *mut getpackedfunc,
1796 pub get_OF_active: *mut get_OF_activefunc,
1797 pub getMDO: *mut getMDOfunc,
1798 pub invert: *mut invertfunc,
1799 pub set_action: *mut set_actionfunc,
1800 pub is_action: *mut is_actionfunc,
1801 pub clear_action: *mut clear_actionfunc,
1802 pub ctrlc: *mut lphandle_intfunc,
1803 pub ctrlchandle: *mut libc::c_void,
1804 pub writelog: *mut lphandlestr_func,
1805 pub loghandle: *mut libc::c_void,
1806 pub debuginfo: *mut lphandlestr_func,
1807 pub usermessage: *mut lphandleint_func,
1808 pub msgmask: libc::c_int,
1809 pub msghandle: *mut libc::c_void,
1810 pub bb_usenode: *mut lphandleint_intfunc,
1811 pub bb_nodehandle: *mut libc::c_void,
1812 pub bb_usebranch: *mut lphandleint_intfunc,
1813 pub bb_branchhandle: *mut libc::c_void,
1814 pub rowcol_name: *mut libc::c_char,
1815}
1816impl ::core::clone::Clone for Struct__lprec {
1817 fn clone(&self) -> Self { *self }
1818}
1819impl ::core::default::Default for Struct__lprec {
1820 fn default() -> Self { unsafe { ::core::mem::zeroed() } }
1821}
1822#[cfg(not(windows))]
1823pub type read_modeldata_func =
1824 unsafe extern "C" fn(userhandle: *mut libc::c_void,
1825 buf: *mut libc::c_char,
1826 max_size: libc::c_int)
1827 -> libc::c_int;
1828#[cfg(not(windows))]
1829pub type write_modeldata_func =
1830 unsafe extern "C" fn(userhandle: *mut libc::c_void,
1831 buf: *mut libc::c_char)
1832 -> libc::c_int;
1833
1834#[cfg(windows)]
1835pub type read_modeldata_func =
1836 unsafe extern "stdcall" fn(userhandle: *mut libc::c_void,
1837 buf: *mut libc::c_char,
1838 max_size: libc::c_int)
1839 -> libc::c_int;
1840#[cfg(windows)]
1841pub type write_modeldata_func =
1842 unsafe extern "stdcall" fn(userhandle: *mut libc::c_void,
1843 buf: *mut libc::c_char)
1844 -> libc::c_int;
1845
1846#[cfg(not(windows))]
1847unsafe extern "C" {
1848 pub fn allocCHAR(lp: *mut lprec, ptr: *mut *mut libc::c_char,
1849 size: libc::c_int,
1850 clear: libc::c_uchar)
1851 -> libc::c_uchar;
1852 pub fn allocMYBOOL(lp: *mut lprec, ptr: *mut *mut libc::c_uchar,
1853 size: libc::c_int,
1854 clear: libc::c_uchar)
1855 -> libc::c_uchar;
1856 pub fn allocINT(lp: *mut lprec, ptr: *mut *mut libc::c_int,
1857 size: libc::c_int,
1858 clear: libc::c_uchar)
1859 -> libc::c_uchar;
1860 pub fn allocREAL(lp: *mut lprec, ptr: *mut *mut libc::c_double,
1861 size: libc::c_int,
1862 clear: libc::c_uchar)
1863 -> libc::c_uchar;
1864 pub fn allocLREAL(lp: *mut lprec, ptr: *mut *mut libc::c_double,
1865 size: libc::c_int,
1866 clear: libc::c_uchar)
1867 -> libc::c_uchar;
1868 pub fn allocFREE(lp: *mut lprec, ptr: *mut *mut libc::c_void)
1869 -> libc::c_uchar;
1870 pub fn cloneREAL(lp: *mut lprec, origlist: *mut libc::c_double,
1871 size: libc::c_int)
1872 -> *mut libc::c_double;
1873 pub fn cloneMYBOOL(lp: *mut lprec, origlist: *mut libc::c_uchar,
1874 size: libc::c_int)
1875 -> *mut libc::c_uchar;
1876 pub fn cloneINT(lp: *mut lprec, origlist: *mut libc::c_int,
1877 size: libc::c_int)
1878 -> *mut libc::c_int;
1879 pub fn comp_bits(bitarray1: *mut libc::c_uchar,
1880 bitarray2: *mut libc::c_uchar,
1881 items: libc::c_int) -> libc::c_int;
1882 pub fn mempool_create(lp: *mut lprec) -> *mut workarraysrec;
1883 pub fn mempool_obtainVector(mempool: *mut workarraysrec,
1884 count: libc::c_int,
1885 unitsize: libc::c_int)
1886 -> *mut libc::c_char;
1887 pub fn mempool_releaseVector(mempool: *mut workarraysrec,
1888 memvector: *mut libc::c_char,
1889 forcefree: libc::c_uchar)
1890 -> libc::c_uchar;
1891 pub fn mempool_free(mempool: *mut *mut workarraysrec)
1892 -> libc::c_uchar;
1893 pub fn roundVector(myvector: *mut libc::c_double,
1894 endpos: libc::c_int,
1895 roundzero: libc::c_double);
1896 pub fn normalizeVector(myvector: *mut libc::c_double,
1897 endpos: libc::c_int)
1898 -> libc::c_double;
1899 pub fn swapINT(item1: *mut libc::c_int,
1900 item2: *mut libc::c_int);
1901 pub fn swapREAL(item1: *mut libc::c_double,
1902 item2: *mut libc::c_double);
1903 pub fn swapPTR(item1: *mut *mut libc::c_void,
1904 item2: *mut *mut libc::c_void);
1905 pub fn restoreINT(valREAL: libc::c_double,
1906 epsilon: libc::c_double)
1907 -> libc::c_double;
1908 pub fn roundToPrecision(value: libc::c_double,
1909 precision: libc::c_double)
1910 -> libc::c_double;
1911 pub fn searchFor(target: libc::c_int,
1912 attributes: *mut libc::c_int,
1913 size: libc::c_int,
1914 offset: libc::c_int,
1915 absolute: libc::c_uchar)
1916 -> libc::c_int;
1917 pub fn isINT(lp: *mut lprec, value: libc::c_double)
1918 -> libc::c_uchar;
1919 pub fn isOrigFixed(lp: *mut lprec, varno: libc::c_int)
1920 -> libc::c_uchar;
1921 pub fn chsign_bounds(lobound: *mut libc::c_double,
1922 upbound: *mut libc::c_double);
1923 pub fn rand_uniform(lp: *mut lprec, range: libc::c_double)
1924 -> libc::c_double;
1925 pub fn createLink(size: libc::c_int, linkmap: *mut *mut LLrec,
1926 usedpos: *mut libc::c_uchar)
1927 -> libc::c_int;
1928 pub fn freeLink(linkmap: *mut *mut LLrec) -> libc::c_uchar;
1929 pub fn sizeLink(linkmap: *mut LLrec) -> libc::c_int;
1930 pub fn isActiveLink(linkmap: *mut LLrec, itemnr: libc::c_int)
1931 -> libc::c_uchar;
1932 pub fn countActiveLink(linkmap: *mut LLrec) -> libc::c_int;
1933 pub fn countInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
1934 pub fn firstActiveLink(linkmap: *mut LLrec) -> libc::c_int;
1935 pub fn lastActiveLink(linkmap: *mut LLrec) -> libc::c_int;
1936 pub fn appendLink(linkmap: *mut LLrec, newitem: libc::c_int)
1937 -> libc::c_uchar;
1938 pub fn insertLink(linkmap: *mut LLrec, afteritem: libc::c_int,
1939 newitem: libc::c_int)
1940 -> libc::c_uchar;
1941 pub fn setLink(linkmap: *mut LLrec, newitem: libc::c_int)
1942 -> libc::c_uchar;
1943 pub fn fillLink(linkmap: *mut LLrec) -> libc::c_uchar;
1944 pub fn nextActiveLink(linkmap: *mut LLrec,
1945 backitemnr: libc::c_int)
1946 -> libc::c_int;
1947 pub fn prevActiveLink(linkmap: *mut LLrec,
1948 forwitemnr: libc::c_int)
1949 -> libc::c_int;
1950 pub fn firstInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
1951 pub fn lastInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
1952 pub fn nextInactiveLink(linkmap: *mut LLrec,
1953 backitemnr: libc::c_int)
1954 -> libc::c_int;
1955 pub fn prevInactiveLink(linkmap: *mut LLrec,
1956 forwitemnr: libc::c_int)
1957 -> libc::c_int;
1958 pub fn removeLink(linkmap: *mut LLrec, itemnr: libc::c_int)
1959 -> libc::c_int;
1960 pub fn cloneLink(sourcemap: *mut LLrec, newsize: libc::c_int,
1961 freesource: libc::c_uchar) -> *mut LLrec;
1962 pub fn compareLink(linkmap1: *mut LLrec, linkmap2: *mut LLrec)
1963 -> libc::c_int;
1964 pub fn verifyLink(linkmap: *mut LLrec, itemnr: libc::c_int,
1965 doappend: libc::c_uchar)
1966 -> libc::c_uchar;
1967 pub fn createPackedVector(size: libc::c_int,
1968 values: *mut libc::c_double,
1969 workvector: *mut libc::c_int)
1970 -> *mut PVrec;
1971 pub fn pushPackedVector(PV: *mut PVrec, parent: *mut PVrec);
1972 pub fn unpackPackedVector(PV: *mut PVrec,
1973 target: *mut *mut libc::c_double)
1974 -> libc::c_uchar;
1975 pub fn getvaluePackedVector(PV: *mut PVrec, index: libc::c_int)
1976 -> libc::c_double;
1977 pub fn popPackedVector(PV: *mut PVrec) -> *mut PVrec;
1978 pub fn freePackedVector(PV: *mut *mut PVrec) -> libc::c_uchar;
1979 pub fn create_hash_table(size: libc::c_int,
1980 base: libc::c_int) -> *mut hashtable;
1981 pub fn free_hash_table(ht: *mut hashtable);
1982 pub fn findhash(name: *const libc::c_char, ht: *mut hashtable)
1983 -> *mut hashelem;
1984 pub fn puthash(name: *const libc::c_char,
1985 index: libc::c_int, list: *mut *mut hashelem,
1986 ht: *mut hashtable) -> *mut hashelem;
1987 pub fn drophash(name: *const libc::c_char,
1988 list: *mut *mut hashelem, ht: *mut hashtable);
1989 pub fn free_hash_item(hp: *mut *mut hashelem);
1990 pub fn copy_hash_table(ht: *mut hashtable, list: *mut *mut hashelem,
1991 newsize: libc::c_int) -> *mut hashtable;
1992 pub fn find_var(lp: *mut lprec, name: *mut libc::c_char,
1993 verbose: libc::c_uchar)
1994 -> libc::c_int;
1995 pub fn find_row(lp: *mut lprec, name: *mut libc::c_char,
1996 Unconstrained_rows_found: libc::c_uchar)
1997 -> libc::c_int;
1998 pub fn mat_create(lp: *mut lprec, rows: libc::c_int,
1999 columns: libc::c_int,
2000 epsvalue: libc::c_double) -> *mut MATrec;
2001 pub fn mat_memopt(mat: *mut MATrec, rowextra: libc::c_int,
2002 colextra: libc::c_int,
2003 nzextra: libc::c_int)
2004 -> libc::c_uchar;
2005 pub fn mat_free(matrix: *mut *mut MATrec);
2006 pub fn inc_matrow_space(mat: *mut MATrec,
2007 deltarows: libc::c_int)
2008 -> libc::c_uchar;
2009 pub fn mat_mapreplace(mat: *mut MATrec, rowmap: *mut LLrec,
2010 colmap: *mut LLrec, insmat: *mut MATrec)
2011 -> libc::c_int;
2012 pub fn mat_matinsert(mat: *mut MATrec, insmat: *mut MATrec)
2013 -> libc::c_int;
2014 pub fn mat_zerocompact(mat: *mut MATrec) -> libc::c_int;
2015 pub fn mat_rowcompact(mat: *mut MATrec, dozeros: libc::c_uchar)
2016 -> libc::c_int;
2017 pub fn mat_colcompact(mat: *mut MATrec, prev_rows: libc::c_int,
2018 prev_cols: libc::c_int)
2019 -> libc::c_int;
2020 pub fn inc_matcol_space(mat: *mut MATrec,
2021 deltacols: libc::c_int)
2022 -> libc::c_uchar;
2023 pub fn inc_mat_space(mat: *mut MATrec, mindelta: libc::c_int)
2024 -> libc::c_uchar;
2025 pub fn mat_shiftrows(mat: *mut MATrec, bbase: *mut libc::c_int,
2026 delta: libc::c_int, varmap: *mut LLrec)
2027 -> libc::c_int;
2028 pub fn mat_shiftcols(mat: *mut MATrec, bbase: *mut libc::c_int,
2029 delta: libc::c_int, varmap: *mut LLrec)
2030 -> libc::c_int;
2031 pub fn mat_extractmat(mat: *mut MATrec, rowmap: *mut LLrec,
2032 colmap: *mut LLrec,
2033 negated: libc::c_uchar) -> *mut MATrec;
2034 pub fn mat_appendrow(mat: *mut MATrec, count: libc::c_int,
2035 row: *mut libc::c_double,
2036 colno: *mut libc::c_int,
2037 mult: libc::c_double,
2038 checkrowmode: libc::c_uchar)
2039 -> libc::c_int;
2040 pub fn mat_appendcol(mat: *mut MATrec, count: libc::c_int,
2041 column: *mut libc::c_double,
2042 rowno: *mut libc::c_int,
2043 mult: libc::c_double,
2044 checkrowmode: libc::c_uchar)
2045 -> libc::c_int;
2046 pub fn mat_get_data(lp: *mut lprec, matindex: libc::c_int,
2047 isrow: libc::c_uchar,
2048 rownr: *mut *mut libc::c_int,
2049 colnr: *mut *mut libc::c_int,
2050 value: *mut *mut libc::c_double)
2051 -> libc::c_uchar;
2052 pub fn mat_set_rowmap(mat: *mut MATrec,
2053 row_mat_index: libc::c_int,
2054 rownr: libc::c_int,
2055 colnr: libc::c_int,
2056 col_mat_index: libc::c_int)
2057 -> libc::c_uchar;
2058 pub fn mat_indexrange(mat: *mut MATrec, index: libc::c_int,
2059 isrow: libc::c_uchar,
2060 startpos: *mut libc::c_int,
2061 endpos: *mut libc::c_int)
2062 -> libc::c_uchar;
2063 pub fn mat_validate(mat: *mut MATrec) -> libc::c_uchar;
2064 pub fn mat_equalRows(mat: *mut MATrec, baserow: libc::c_int,
2065 comprow: libc::c_int)
2066 -> libc::c_uchar;
2067 pub fn mat_findelm(mat: *mut MATrec, row: libc::c_int,
2068 column: libc::c_int)
2069 -> libc::c_int;
2070 pub fn mat_findins(mat: *mut MATrec, row: libc::c_int,
2071 column: libc::c_int,
2072 insertpos: *mut libc::c_int,
2073 validate: libc::c_uchar)
2074 -> libc::c_int;
2075 pub fn mat_multcol(mat: *mut MATrec, col_nr: libc::c_int,
2076 mult: libc::c_double,
2077 DoObj: libc::c_uchar);
2078 pub fn mat_getitem(mat: *mut MATrec, row: libc::c_int,
2079 column: libc::c_int)
2080 -> libc::c_double;
2081 pub fn mat_setitem(mat: *mut MATrec, row: libc::c_int,
2082 column: libc::c_int,
2083 value: libc::c_double)
2084 -> libc::c_uchar;
2085 pub fn mat_additem(mat: *mut MATrec, row: libc::c_int,
2086 column: libc::c_int,
2087 delta: libc::c_double)
2088 -> libc::c_uchar;
2089 pub fn mat_setvalue(mat: *mut MATrec, Row: libc::c_int,
2090 Column: libc::c_int,
2091 Value: libc::c_double,
2092 doscale: libc::c_uchar)
2093 -> libc::c_uchar;
2094 pub fn mat_nonzeros(mat: *mut MATrec) -> libc::c_int;
2095 pub fn mat_collength(mat: *mut MATrec, colnr: libc::c_int)
2096 -> libc::c_int;
2097 pub fn mat_rowlength(mat: *mut MATrec, rownr: libc::c_int)
2098 -> libc::c_int;
2099 pub fn mat_multrow(mat: *mut MATrec, row_nr: libc::c_int,
2100 mult: libc::c_double);
2101 pub fn mat_multadd(mat: *mut MATrec,
2102 lhsvector: *mut libc::c_double,
2103 varnr: libc::c_int,
2104 mult: libc::c_double);
2105 pub fn mat_setrow(mat: *mut MATrec, rowno: libc::c_int,
2106 count: libc::c_int,
2107 row: *mut libc::c_double,
2108 colno: *mut libc::c_int,
2109 doscale: libc::c_uchar,
2110 checkrowmode: libc::c_uchar)
2111 -> libc::c_uchar;
2112 pub fn mat_setcol(mat: *mut MATrec, colno: libc::c_int,
2113 count: libc::c_int,
2114 column: *mut libc::c_double,
2115 rowno: *mut libc::c_int,
2116 doscale: libc::c_uchar,
2117 checkrowmode: libc::c_uchar)
2118 -> libc::c_uchar;
2119 pub fn mat_mergemat(target: *mut MATrec, source: *mut MATrec,
2120 usecolmap: libc::c_uchar)
2121 -> libc::c_uchar;
2122 pub fn mat_checkcounts(mat: *mut MATrec,
2123 rownum: *mut libc::c_int,
2124 colnum: *mut libc::c_int,
2125 freeonexit: libc::c_uchar)
2126 -> libc::c_int;
2127 pub fn mat_expandcolumn(mat: *mut MATrec, colnr: libc::c_int,
2128 column: *mut libc::c_double,
2129 nzlist: *mut libc::c_int,
2130 signedA: libc::c_uchar)
2131 -> libc::c_int;
2132 pub fn mat_computemax(mat: *mut MATrec) -> libc::c_uchar;
2133 pub fn mat_transpose(mat: *mut MATrec) -> libc::c_uchar;
2134 pub fn invert(lp: *mut lprec, shiftbounds: libc::c_uchar,
2135 _final: libc::c_uchar) -> libc::c_uchar;
2136 pub fn vec_compress(densevector: *mut libc::c_double,
2137 startpos: libc::c_int,
2138 endpos: libc::c_int,
2139 epsilon: libc::c_double,
2140 nzvector: *mut libc::c_double,
2141 nzindex: *mut libc::c_int)
2142 -> libc::c_uchar;
2143 pub fn vec_expand(nzvector: *mut libc::c_double,
2144 nzindex: *mut libc::c_int,
2145 densevector: *mut libc::c_double,
2146 startpos: libc::c_int,
2147 endpos: libc::c_int)
2148 -> libc::c_uchar;
2149 pub fn get_colIndexA(lp: *mut lprec, varset: libc::c_int,
2150 colindex: *mut libc::c_int,
2151 append: libc::c_uchar)
2152 -> libc::c_uchar;
2153 pub fn prod_Ax(lp: *mut lprec, coltarget: *mut libc::c_int,
2154 input: *mut libc::c_double,
2155 nzinput: *mut libc::c_int,
2156 roundzero: libc::c_double,
2157 ofscalar: libc::c_double,
2158 output: *mut libc::c_double,
2159 nzoutput: *mut libc::c_int,
2160 roundmode: libc::c_int) -> libc::c_int;
2161 pub fn prod_xA(lp: *mut lprec, coltarget: *mut libc::c_int,
2162 input: *mut libc::c_double,
2163 nzinput: *mut libc::c_int,
2164 roundzero: libc::c_double,
2165 ofscalar: libc::c_double,
2166 output: *mut libc::c_double,
2167 nzoutput: *mut libc::c_int,
2168 roundmode: libc::c_int) -> libc::c_int;
2169 pub fn prod_xA2(lp: *mut lprec, coltarget: *mut libc::c_int,
2170 prow: *mut libc::c_double,
2171 proundzero: libc::c_double,
2172 pnzprow: *mut libc::c_int,
2173 drow: *mut libc::c_double,
2174 droundzero: libc::c_double,
2175 dnzdrow: *mut libc::c_int,
2176 ofscalar: libc::c_double,
2177 roundmode: libc::c_int)
2178 -> libc::c_uchar;
2179 pub fn fimprove(lp: *mut lprec, pcol: *mut libc::c_double,
2180 nzidx: *mut libc::c_int,
2181 roundzero: libc::c_double)
2182 -> libc::c_uchar;
2183 pub fn ftran(lp: *mut lprec, rhsvector: *mut libc::c_double,
2184 nzidx: *mut libc::c_int,
2185 roundzero: libc::c_double);
2186 pub fn bimprove(lp: *mut lprec, rhsvector: *mut libc::c_double,
2187 nzidx: *mut libc::c_int,
2188 roundzero: libc::c_double)
2189 -> libc::c_uchar;
2190 pub fn btran(lp: *mut lprec, rhsvector: *mut libc::c_double,
2191 nzidx: *mut libc::c_int,
2192 roundzero: libc::c_double);
2193 pub fn fsolve(lp: *mut lprec, varin: libc::c_int,
2194 pcol: *mut libc::c_double,
2195 nzidx: *mut libc::c_int,
2196 roundzero: libc::c_double,
2197 ofscalar: libc::c_double,
2198 prepareupdate: libc::c_uchar)
2199 -> libc::c_uchar;
2200 pub fn bsolve(lp: *mut lprec, row_nr: libc::c_int,
2201 rhsvector: *mut libc::c_double,
2202 nzidx: *mut libc::c_int,
2203 roundzero: libc::c_double,
2204 ofscalar: libc::c_double)
2205 -> libc::c_uchar;
2206 pub fn bsolve_xA2(lp: *mut lprec, coltarget: *mut libc::c_int,
2207 row_nr1: libc::c_int,
2208 vector1: *mut libc::c_double,
2209 roundzero1: libc::c_double,
2210 nzvector1: *mut libc::c_int,
2211 row_nr2: libc::c_int,
2212 vector2: *mut libc::c_double,
2213 roundzero2: libc::c_double,
2214 nzvector2: *mut libc::c_int,
2215 roundmode: libc::c_int);
2216 pub fn createUndoLadder(lp: *mut lprec, levelitems: libc::c_int,
2217 maxlevels: libc::c_int)
2218 -> *mut DeltaVrec;
2219 pub fn incrementUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
2220 pub fn modifyUndoLadder(DV: *mut DeltaVrec, itemno: libc::c_int,
2221 target: *mut libc::c_double,
2222 newvalue: libc::c_double)
2223 -> libc::c_uchar;
2224 pub fn countsUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
2225 pub fn restoreUndoLadder(DV: *mut DeltaVrec,
2226 target: *mut libc::c_double)
2227 -> libc::c_int;
2228 pub fn decrementUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
2229 pub fn freeUndoLadder(DV: *mut *mut DeltaVrec) -> libc::c_uchar;
2230 pub fn appendUndoPresolve(lp: *mut lprec,
2231 isprimal: libc::c_uchar,
2232 beta: libc::c_double,
2233 colnrDep: libc::c_int)
2234 -> libc::c_uchar;
2235 pub fn addUndoPresolve(lp: *mut lprec, isprimal: libc::c_uchar,
2236 colnrElim: libc::c_int,
2237 alpha: libc::c_double,
2238 beta: libc::c_double,
2239 colnrDep: libc::c_int)
2240 -> libc::c_uchar;
2241 pub fn create_BB(lp: *mut lprec, parentBB: *mut BBrec,
2242 dofullcopy: libc::c_uchar) -> *mut BBrec;
2243 pub fn push_BB(lp: *mut lprec, parentBB: *mut BBrec,
2244 varno: libc::c_int,
2245 vartype: libc::c_int,
2246 varcus: libc::c_int) -> *mut BBrec;
2247 pub fn initbranches_BB(BB: *mut BBrec) -> libc::c_uchar;
2248 pub fn fillbranches_BB(BB: *mut BBrec) -> libc::c_uchar;
2249 pub fn nextbranch_BB(BB: *mut BBrec) -> libc::c_uchar;
2250 pub fn strongbranch_BB(lp: *mut lprec, BB: *mut BBrec,
2251 varno: libc::c_int,
2252 vartype: libc::c_int,
2253 varcus: libc::c_int)
2254 -> libc::c_uchar;
2255 pub fn initcuts_BB(lp: *mut lprec) -> libc::c_uchar;
2256 pub fn updatecuts_BB(lp: *mut lprec) -> libc::c_int;
2257 pub fn freecuts_BB(lp: *mut lprec) -> libc::c_uchar;
2258 pub fn findself_BB(BB: *mut BBrec) -> *mut BBrec;
2259 pub fn solve_LP(lp: *mut lprec, BB: *mut BBrec) -> libc::c_int;
2260 pub fn rcfbound_BB(BB: *mut BBrec, varno: libc::c_int,
2261 isINT: libc::c_uchar,
2262 newbound: *mut libc::c_double,
2263 isfeasible: *mut libc::c_uchar)
2264 -> libc::c_int;
2265 pub fn findnode_BB(BB: *mut BBrec, varno: *mut libc::c_int,
2266 vartype: *mut libc::c_int,
2267 varcus: *mut libc::c_int)
2268 -> libc::c_uchar;
2269 pub fn solve_BB(BB: *mut BBrec) -> libc::c_int;
2270 pub fn free_BB(BB: *mut *mut BBrec) -> libc::c_uchar;
2271 pub fn pop_BB(BB: *mut BBrec) -> *mut BBrec;
2272 pub fn run_BB(lp: *mut lprec) -> libc::c_int;
2273 pub fn create_SOSgroup(lp: *mut lprec) -> *mut SOSgroup;
2274 pub fn resize_SOSgroup(group: *mut SOSgroup);
2275 pub fn append_SOSgroup(group: *mut SOSgroup, SOS: *mut SOSrec)
2276 -> libc::c_int;
2277 pub fn clean_SOSgroup(group: *mut SOSgroup,
2278 forceupdatemap: libc::c_uchar)
2279 -> libc::c_int;
2280 pub fn free_SOSgroup(group: *mut *mut SOSgroup);
2281 pub fn create_SOSrec(group: *mut SOSgroup,
2282 name: *mut libc::c_char,
2283 _type: libc::c_int,
2284 priority: libc::c_int,
2285 size: libc::c_int,
2286 variables: *mut libc::c_int,
2287 weights: *mut libc::c_double)
2288 -> *mut SOSrec;
2289 pub fn delete_SOSrec(group: *mut SOSgroup,
2290 sosindex: libc::c_int)
2291 -> libc::c_uchar;
2292 pub fn append_SOSrec(SOS: *mut SOSrec, size: libc::c_int,
2293 variables: *mut libc::c_int,
2294 weights: *mut libc::c_double)
2295 -> libc::c_int;
2296 pub fn free_SOSrec(SOS: *mut SOSrec);
2297 pub fn make_SOSchain(lp: *mut lprec, forceresort: libc::c_uchar)
2298 -> libc::c_int;
2299 pub fn SOS_member_updatemap(group: *mut SOSgroup)
2300 -> libc::c_int;
2301 pub fn SOS_member_sortlist(group: *mut SOSgroup,
2302 sosindex: libc::c_int)
2303 -> libc::c_uchar;
2304 pub fn SOS_shift_col(group: *mut SOSgroup,
2305 sosindex: libc::c_int,
2306 column: libc::c_int,
2307 delta: libc::c_int, usedmap: *mut LLrec,
2308 forceresort: libc::c_uchar)
2309 -> libc::c_uchar;
2310 pub fn SOS_member_delete(group: *mut SOSgroup,
2311 sosindex: libc::c_int,
2312 member: libc::c_int)
2313 -> libc::c_int;
2314 pub fn SOS_get_type(group: *mut SOSgroup, sosindex: libc::c_int)
2315 -> libc::c_int;
2316 pub fn SOS_infeasible(group: *mut SOSgroup,
2317 sosindex: libc::c_int)
2318 -> libc::c_int;
2319 pub fn SOS_member_index(group: *mut SOSgroup,
2320 sosindex: libc::c_int,
2321 member: libc::c_int)
2322 -> libc::c_int;
2323 pub fn SOS_member_count(group: *mut SOSgroup,
2324 sosindex: libc::c_int)
2325 -> libc::c_int;
2326 pub fn SOS_memberships(group: *mut SOSgroup,
2327 column: libc::c_int)
2328 -> libc::c_int;
2329 pub fn SOS_get_candidates(group: *mut SOSgroup,
2330 sosindex: libc::c_int,
2331 column: libc::c_int,
2332 excludetarget: libc::c_uchar,
2333 upbound: *mut libc::c_double,
2334 lobound: *mut libc::c_double)
2335 -> *mut libc::c_int;
2336 pub fn SOS_is_member(group: *mut SOSgroup,
2337 sosindex: libc::c_int,
2338 column: libc::c_int)
2339 -> libc::c_int;
2340 pub fn SOS_is_member_of_type(group: *mut SOSgroup,
2341 column: libc::c_int,
2342 sostype: libc::c_int)
2343 -> libc::c_uchar;
2344 pub fn SOS_set_GUB(group: *mut SOSgroup, sosindex: libc::c_int,
2345 state: libc::c_uchar)
2346 -> libc::c_uchar;
2347 pub fn SOS_is_GUB(group: *mut SOSgroup, sosindex: libc::c_int)
2348 -> libc::c_uchar;
2349 pub fn SOS_is_marked(group: *mut SOSgroup,
2350 sosindex: libc::c_int,
2351 column: libc::c_int)
2352 -> libc::c_uchar;
2353 pub fn SOS_is_active(group: *mut SOSgroup,
2354 sosindex: libc::c_int,
2355 column: libc::c_int)
2356 -> libc::c_uchar;
2357 pub fn SOS_is_full(group: *mut SOSgroup, sosindex: libc::c_int,
2358 column: libc::c_int,
2359 activeonly: libc::c_uchar)
2360 -> libc::c_uchar;
2361 pub fn SOS_can_activate(group: *mut SOSgroup,
2362 sosindex: libc::c_int,
2363 column: libc::c_int)
2364 -> libc::c_uchar;
2365 pub fn SOS_set_marked(group: *mut SOSgroup,
2366 sosindex: libc::c_int,
2367 column: libc::c_int,
2368 asactive: libc::c_uchar)
2369 -> libc::c_uchar;
2370 pub fn SOS_unmark(group: *mut SOSgroup, sosindex: libc::c_int,
2371 column: libc::c_int)
2372 -> libc::c_uchar;
2373 pub fn SOS_fix_unmarked(group: *mut SOSgroup,
2374 sosindex: libc::c_int,
2375 variable: libc::c_int,
2376 bound: *mut libc::c_double,
2377 value: libc::c_double,
2378 isupper: libc::c_uchar,
2379 diffcount: *mut libc::c_int,
2380 changelog: *mut DeltaVrec)
2381 -> libc::c_int;
2382 pub fn SOS_fix_list(group: *mut SOSgroup, sosindex: libc::c_int,
2383 variable: libc::c_int,
2384 bound: *mut libc::c_double,
2385 varlist: *mut libc::c_int,
2386 isleft: libc::c_uchar,
2387 changelog: *mut DeltaVrec) -> libc::c_int;
2388 pub fn SOS_is_satisfied(group: *mut SOSgroup,
2389 sosindex: libc::c_int,
2390 solution: *mut libc::c_double)
2391 -> libc::c_int;
2392 pub fn SOS_is_feasible(group: *mut SOSgroup,
2393 sosindex: libc::c_int,
2394 solution: *mut libc::c_double)
2395 -> libc::c_uchar;
2396 pub fn lp_solve_version(majorversion: *mut libc::c_int,
2397 minorversion: *mut libc::c_int,
2398 release: *mut libc::c_int,
2399 build: *mut libc::c_int);
2400 pub fn make_lp(rows: libc::c_int,
2401 columns: libc::c_int) -> *mut lprec;
2402 pub fn resize_lp(lp: *mut lprec, rows: libc::c_int,
2403 columns: libc::c_int)
2404 -> libc::c_uchar;
2405 pub fn get_status(lp: *mut lprec) -> libc::c_int;
2406 pub fn get_statustext(lp: *mut lprec, statuscode: libc::c_int)
2407 -> *mut libc::c_char;
2408 pub fn is_obj_in_basis(lp: *mut lprec) -> libc::c_uchar;
2409 pub fn set_obj_in_basis(lp: *mut lprec,
2410 obj_in_basis: libc::c_uchar);
2411 pub fn copy_lp(lp: *mut lprec) -> *mut lprec;
2412 pub fn dualize_lp(lp: *mut lprec) -> libc::c_uchar;
2413 pub fn memopt_lp(lp: *mut lprec, rowextra: libc::c_int,
2414 colextra: libc::c_int,
2415 nzextra: libc::c_int)
2416 -> libc::c_uchar;
2417 pub fn delete_lp(lp: *mut lprec);
2418 pub fn free_lp(plp: *mut *mut lprec);
2419 pub fn set_lp_name(lp: *mut lprec, lpname: *mut libc::c_char)
2420 -> libc::c_uchar;
2421 pub fn get_lp_name(lp: *mut lprec) -> *mut libc::c_char;
2422 pub fn has_BFP(lp: *mut lprec) -> libc::c_uchar;
2423 pub fn is_nativeBFP(lp: *mut lprec) -> libc::c_uchar;
2424 pub fn set_BFP(lp: *mut lprec, filename: *mut libc::c_char)
2425 -> libc::c_uchar;
2426 pub fn read_XLI(xliname: *mut libc::c_char,
2427 modelname: *mut libc::c_char,
2428 dataname: *mut libc::c_char,
2429 options: *mut libc::c_char,
2430 verbose: libc::c_int) -> *mut lprec;
2431 pub fn write_XLI(lp: *mut lprec, filename: *mut libc::c_char,
2432 options: *mut libc::c_char,
2433 results: libc::c_uchar)
2434 -> libc::c_uchar;
2435 pub fn has_XLI(lp: *mut lprec) -> libc::c_uchar;
2436 pub fn is_nativeXLI(lp: *mut lprec) -> libc::c_uchar;
2437 pub fn set_XLI(lp: *mut lprec, filename: *mut libc::c_char)
2438 -> libc::c_uchar;
2439 pub fn set_obj(lp: *mut lprec, colnr: libc::c_int,
2440 value: libc::c_double)
2441 -> libc::c_uchar;
2442 pub fn set_obj_fn(lp: *mut lprec, row: *mut libc::c_double)
2443 -> libc::c_uchar;
2444 pub fn set_obj_fnex(lp: *mut lprec, count: libc::c_int,
2445 row: *mut libc::c_double,
2446 colno: *mut libc::c_int)
2447 -> libc::c_uchar;
2448 pub fn str_set_obj_fn(lp: *mut lprec,
2449 row_string: *mut libc::c_char)
2450 -> libc::c_uchar;
2451 pub fn set_sense(lp: *mut lprec, maximize: libc::c_uchar);
2452 pub fn set_maxim(lp: *mut lprec);
2453 pub fn set_minim(lp: *mut lprec);
2454 pub fn is_maxim(lp: *mut lprec) -> libc::c_uchar;
2455 pub fn add_constraint(lp: *mut lprec, row: *mut libc::c_double,
2456 constr_type: libc::c_int,
2457 rh: libc::c_double)
2458 -> libc::c_uchar;
2459 pub fn add_constraintex(lp: *mut lprec, count: libc::c_int,
2460 row: *mut libc::c_double,
2461 colno: *mut libc::c_int,
2462 constr_type: libc::c_int,
2463 rh: libc::c_double)
2464 -> libc::c_uchar;
2465 pub fn set_add_rowmode(lp: *mut lprec, turnon: libc::c_uchar)
2466 -> libc::c_uchar;
2467 pub fn is_add_rowmode(lp: *mut lprec) -> libc::c_uchar;
2468 pub fn str_add_constraint(lp: *mut lprec,
2469 row_string: *mut libc::c_char,
2470 constr_type: libc::c_int,
2471 rh: libc::c_double)
2472 -> libc::c_uchar;
2473 pub fn set_row(lp: *mut lprec, rownr: libc::c_int,
2474 row: *mut libc::c_double)
2475 -> libc::c_uchar;
2476 pub fn set_rowex(lp: *mut lprec, rownr: libc::c_int,
2477 count: libc::c_int,
2478 row: *mut libc::c_double,
2479 colno: *mut libc::c_int)
2480 -> libc::c_uchar;
2481 pub fn get_row(lp: *mut lprec, rownr: libc::c_int,
2482 row: *mut libc::c_double)
2483 -> libc::c_uchar;
2484 pub fn get_rowex(lp: *mut lprec, rownr: libc::c_int,
2485 row: *mut libc::c_double,
2486 colno: *mut libc::c_int)
2487 -> libc::c_int;
2488 pub fn del_constraint(lp: *mut lprec, rownr: libc::c_int)
2489 -> libc::c_uchar;
2490 pub fn del_constraintex(lp: *mut lprec, rowmap: *mut LLrec)
2491 -> libc::c_uchar;
2492 pub fn add_lag_con(lp: *mut lprec, row: *mut libc::c_double,
2493 con_type: libc::c_int,
2494 rhs: libc::c_double)
2495 -> libc::c_uchar;
2496 pub fn str_add_lag_con(lp: *mut lprec,
2497 row_string: *mut libc::c_char,
2498 con_type: libc::c_int,
2499 rhs: libc::c_double)
2500 -> libc::c_uchar;
2501 pub fn set_lag_trace(lp: *mut lprec, lag_trace: libc::c_uchar);
2502 pub fn is_lag_trace(lp: *mut lprec) -> libc::c_uchar;
2503 pub fn set_constr_type(lp: *mut lprec, rownr: libc::c_int,
2504 con_type: libc::c_int)
2505 -> libc::c_uchar;
2506 pub fn get_constr_type(lp: *mut lprec, rownr: libc::c_int)
2507 -> libc::c_int;
2508 pub fn get_constr_value(lp: *mut lprec, rownr: libc::c_int,
2509 count: libc::c_int,
2510 primsolution: *mut libc::c_double,
2511 nzindex: *mut libc::c_int)
2512 -> libc::c_double;
2513 pub fn is_constr_type(lp: *mut lprec, rownr: libc::c_int,
2514 mask: libc::c_int)
2515 -> libc::c_uchar;
2516 pub fn get_str_constr_type(lp: *mut lprec,
2517 con_type: libc::c_int)
2518 -> *mut libc::c_char;
2519 pub fn get_constr_class(lp: *mut lprec, rownr: libc::c_int)
2520 -> libc::c_int;
2521 pub fn get_str_constr_class(lp: *mut lprec,
2522 con_class: libc::c_int)
2523 -> *mut libc::c_char;
2524 pub fn set_rh(lp: *mut lprec, rownr: libc::c_int,
2525 value: libc::c_double) -> libc::c_uchar;
2526 pub fn get_rh(lp: *mut lprec, rownr: libc::c_int)
2527 -> libc::c_double;
2528 pub fn set_rh_range(lp: *mut lprec, rownr: libc::c_int,
2529 deltavalue: libc::c_double)
2530 -> libc::c_uchar;
2531 pub fn get_rh_range(lp: *mut lprec, rownr: libc::c_int)
2532 -> libc::c_double;
2533 pub fn set_rh_vec(lp: *mut lprec, rh: *mut libc::c_double);
2534 pub fn str_set_rh_vec(lp: *mut lprec,
2535 rh_string: *mut libc::c_char)
2536 -> libc::c_uchar;
2537 pub fn add_column(lp: *mut lprec, column: *mut libc::c_double)
2538 -> libc::c_uchar;
2539 pub fn add_columnex(lp: *mut lprec, count: libc::c_int,
2540 column: *mut libc::c_double,
2541 rowno: *mut libc::c_int)
2542 -> libc::c_uchar;
2543 pub fn str_add_column(lp: *mut lprec,
2544 col_string: *mut libc::c_char)
2545 -> libc::c_uchar;
2546 pub fn set_column(lp: *mut lprec, colnr: libc::c_int,
2547 column: *mut libc::c_double)
2548 -> libc::c_uchar;
2549 pub fn set_columnex(lp: *mut lprec, colnr: libc::c_int,
2550 count: libc::c_int,
2551 column: *mut libc::c_double,
2552 rowno: *mut libc::c_int)
2553 -> libc::c_uchar;
2554 pub fn column_in_lp(lp: *mut lprec, column: *mut libc::c_double)
2555 -> libc::c_int;
2556 pub fn get_columnex(lp: *mut lprec, colnr: libc::c_int,
2557 column: *mut libc::c_double,
2558 nzrow: *mut libc::c_int)
2559 -> libc::c_int;
2560 pub fn get_column(lp: *mut lprec, colnr: libc::c_int,
2561 column: *mut libc::c_double)
2562 -> libc::c_uchar;
2563 pub fn del_column(lp: *mut lprec, colnr: libc::c_int)
2564 -> libc::c_uchar;
2565 pub fn del_columnex(lp: *mut lprec, colmap: *mut LLrec)
2566 -> libc::c_uchar;
2567 pub fn set_mat(lp: *mut lprec, rownr: libc::c_int,
2568 colnr: libc::c_int,
2569 value: libc::c_double)
2570 -> libc::c_uchar;
2571 pub fn get_mat(lp: *mut lprec, rownr: libc::c_int,
2572 colnr: libc::c_int) -> libc::c_double;
2573 pub fn get_mat_byindex(lp: *mut lprec, matindex: libc::c_int,
2574 isrow: libc::c_uchar,
2575 adjustsign: libc::c_uchar)
2576 -> libc::c_double;
2577 pub fn get_nonzeros(lp: *mut lprec) -> libc::c_int;
2578 pub fn set_bounds_tighter(lp: *mut lprec,
2579 tighten: libc::c_uchar);
2580 pub fn get_bounds(lp: *mut lprec, column: libc::c_int,
2581 lower: *mut libc::c_double,
2582 upper: *mut libc::c_double)
2583 -> libc::c_uchar;
2584 pub fn get_bounds_tighter(lp: *mut lprec) -> libc::c_uchar;
2585 pub fn set_upbo(lp: *mut lprec, colnr: libc::c_int,
2586 value: libc::c_double)
2587 -> libc::c_uchar;
2588 pub fn get_upbo(lp: *mut lprec, colnr: libc::c_int)
2589 -> libc::c_double;
2590 pub fn set_lowbo(lp: *mut lprec, colnr: libc::c_int,
2591 value: libc::c_double)
2592 -> libc::c_uchar;
2593 pub fn get_lowbo(lp: *mut lprec, colnr: libc::c_int)
2594 -> libc::c_double;
2595 pub fn set_bounds(lp: *mut lprec, colnr: libc::c_int,
2596 lower: libc::c_double,
2597 upper: libc::c_double)
2598 -> libc::c_uchar;
2599 pub fn set_unbounded(lp: *mut lprec, colnr: libc::c_int)
2600 -> libc::c_uchar;
2601 pub fn is_unbounded(lp: *mut lprec, colnr: libc::c_int)
2602 -> libc::c_uchar;
2603 pub fn set_int(lp: *mut lprec, colnr: libc::c_int,
2604 must_be_int: libc::c_uchar)
2605 -> libc::c_uchar;
2606 pub fn is_int(lp: *mut lprec, colnr: libc::c_int)
2607 -> libc::c_uchar;
2608 pub fn set_binary(lp: *mut lprec, colnr: libc::c_int,
2609 must_be_bin: libc::c_uchar)
2610 -> libc::c_uchar;
2611 pub fn is_binary(lp: *mut lprec, colnr: libc::c_int)
2612 -> libc::c_uchar;
2613 pub fn set_semicont(lp: *mut lprec, colnr: libc::c_int,
2614 must_be_sc: libc::c_uchar)
2615 -> libc::c_uchar;
2616 pub fn is_semicont(lp: *mut lprec, colnr: libc::c_int)
2617 -> libc::c_uchar;
2618 pub fn is_negative(lp: *mut lprec, colnr: libc::c_int)
2619 -> libc::c_uchar;
2620 pub fn set_var_weights(lp: *mut lprec,
2621 weights: *mut libc::c_double)
2622 -> libc::c_uchar;
2623 pub fn get_var_priority(lp: *mut lprec, colnr: libc::c_int)
2624 -> libc::c_int;
2625 pub fn set_pseudocosts(lp: *mut lprec,
2626 clower: *mut libc::c_double,
2627 cupper: *mut libc::c_double,
2628 updatelimit: *mut libc::c_int)
2629 -> libc::c_uchar;
2630 pub fn get_pseudocosts(lp: *mut lprec,
2631 clower: *mut libc::c_double,
2632 cupper: *mut libc::c_double,
2633 updatelimit: *mut libc::c_int)
2634 -> libc::c_uchar;
2635 pub fn add_SOS(lp: *mut lprec, name: *mut libc::c_char,
2636 sostype: libc::c_int,
2637 priority: libc::c_int,
2638 count: libc::c_int,
2639 sosvars: *mut libc::c_int,
2640 weights: *mut libc::c_double)
2641 -> libc::c_int;
2642 pub fn is_SOS_var(lp: *mut lprec, colnr: libc::c_int)
2643 -> libc::c_uchar;
2644 pub fn set_row_name(lp: *mut lprec, rownr: libc::c_int,
2645 new_name: *mut libc::c_char)
2646 -> libc::c_uchar;
2647 pub fn get_row_name(lp: *mut lprec, rownr: libc::c_int)
2648 -> *mut libc::c_char;
2649 pub fn get_origrow_name(lp: *mut lprec, rownr: libc::c_int)
2650 -> *mut libc::c_char;
2651 pub fn set_col_name(lp: *mut lprec, colnr: libc::c_int,
2652 new_name: *mut libc::c_char)
2653 -> libc::c_uchar;
2654 pub fn get_col_name(lp: *mut lprec, colnr: libc::c_int)
2655 -> *mut libc::c_char;
2656 pub fn get_origcol_name(lp: *mut lprec, colnr: libc::c_int)
2657 -> *mut libc::c_char;
2658 pub fn unscale(lp: *mut lprec);
2659 pub fn set_preferdual(lp: *mut lprec, dodual: libc::c_uchar);
2660 pub fn set_simplextype(lp: *mut lprec,
2661 simplextype: libc::c_int);
2662 pub fn get_simplextype(lp: *mut lprec) -> libc::c_int;
2663 pub fn default_basis(lp: *mut lprec);
2664 pub fn set_basiscrash(lp: *mut lprec, mode: libc::c_int);
2665 pub fn get_basiscrash(lp: *mut lprec) -> libc::c_int;
2666 pub fn set_basisvar(lp: *mut lprec, basisPos: libc::c_int,
2667 enteringCol: libc::c_int)
2668 -> libc::c_int;
2669 pub fn set_basis(lp: *mut lprec, bascolumn: *mut libc::c_int,
2670 nonbasic: libc::c_uchar)
2671 -> libc::c_uchar;
2672 pub fn get_basis(lp: *mut lprec, bascolumn: *mut libc::c_int,
2673 nonbasic: libc::c_uchar)
2674 -> libc::c_uchar;
2675 pub fn reset_basis(lp: *mut lprec);
2676 pub fn guess_basis(lp: *mut lprec,
2677 guessvector: *mut libc::c_double,
2678 basisvector: *mut libc::c_int)
2679 -> libc::c_uchar;
2680 pub fn is_feasible(lp: *mut lprec, values: *mut libc::c_double,
2681 threshold: libc::c_double)
2682 -> libc::c_uchar;
2683 pub fn solve(lp: *mut lprec) -> libc::c_int;
2684 pub fn time_elapsed(lp: *mut lprec) -> libc::c_double;
2685 pub fn put_bb_nodefunc(lp: *mut lprec, newnode: lphandleint_intfunc,
2686 bbnodehandle: *mut libc::c_void);
2687 pub fn put_bb_branchfunc(lp: *mut lprec, newbranch: lphandleint_intfunc,
2688 bbbranchhandle: *mut libc::c_void);
2689 pub fn put_abortfunc(lp: *mut lprec, newctrlc: lphandle_intfunc,
2690 ctrlchandle: *mut libc::c_void);
2691 pub fn put_logfunc(lp: *mut lprec, newlog: lphandlestr_func,
2692 loghandle: *mut libc::c_void);
2693 pub fn put_msgfunc(lp: *mut lprec, newmsg: lphandleint_func,
2694 msghandle: *mut libc::c_void,
2695 mask: libc::c_int);
2696 pub fn get_primal_solution(lp: *mut lprec,
2697 pv: *mut libc::c_double)
2698 -> libc::c_uchar;
2699 pub fn get_ptr_primal_solution(lp: *mut lprec,
2700 pv: *mut *mut libc::c_double)
2701 -> libc::c_uchar;
2702 pub fn get_dual_solution(lp: *mut lprec,
2703 rc: *mut libc::c_double)
2704 -> libc::c_uchar;
2705 pub fn get_ptr_dual_solution(lp: *mut lprec,
2706 rc: *mut *mut libc::c_double)
2707 -> libc::c_uchar;
2708 pub fn get_lambda(lp: *mut lprec, lambda: *mut libc::c_double)
2709 -> libc::c_uchar;
2710 pub fn get_ptr_lambda(lp: *mut lprec,
2711 lambda: *mut *mut libc::c_double)
2712 -> libc::c_uchar;
2713 pub fn read_MPS(filename: *mut libc::c_char,
2714 options: libc::c_int) -> *mut lprec;
2715 pub fn read_mps(filename: *mut libc::FILE, options: libc::c_int)
2716 -> *mut lprec;
2717 pub fn read_freeMPS(filename: *mut libc::c_char,
2718 options: libc::c_int) -> *mut lprec;
2719 pub fn read_freemps(filename: *mut libc::FILE, options: libc::c_int)
2720 -> *mut lprec;
2721 pub fn write_mps(lp: *mut lprec, filename: *mut libc::c_char)
2722 -> libc::c_uchar;
2723 pub fn write_MPS(lp: *mut lprec, output: *mut libc::FILE)
2724 -> libc::c_uchar;
2725 pub fn write_freemps(lp: *mut lprec,
2726 filename: *mut libc::c_char)
2727 -> libc::c_uchar;
2728 pub fn write_freeMPS(lp: *mut lprec, output: *mut libc::FILE)
2729 -> libc::c_uchar;
2730 pub fn write_lp(lp: *mut lprec, filename: *mut libc::c_char)
2731 -> libc::c_uchar;
2732 pub fn write_LP(lp: *mut lprec, output: *mut libc::FILE)
2733 -> libc::c_uchar;
2734 pub fn LP_readhandle(lp: *mut *mut lprec, filename: *mut libc::FILE,
2735 verbose: libc::c_int,
2736 lp_name: *mut libc::c_char)
2737 -> libc::c_uchar;
2738 pub fn read_lp(filename: *mut libc::FILE, verbose: libc::c_int,
2739 lp_name: *mut libc::c_char) -> *mut lprec;
2740 pub fn read_LP(filename: *mut libc::c_char,
2741 verbose: libc::c_int,
2742 lp_name: *mut libc::c_char) -> *mut lprec;
2743 pub fn write_basis(lp: *mut lprec, filename: *mut libc::c_char)
2744 -> libc::c_uchar;
2745 pub fn read_basis(lp: *mut lprec, filename: *mut libc::c_char,
2746 info: *mut libc::c_char)
2747 -> libc::c_uchar;
2748 pub fn write_params(lp: *mut lprec, filename: *mut libc::c_char,
2749 options: *mut libc::c_char)
2750 -> libc::c_uchar;
2751 pub fn read_params(lp: *mut lprec, filename: *mut libc::c_char,
2752 options: *mut libc::c_char)
2753 -> libc::c_uchar;
2754 pub fn reset_params(lp: *mut lprec);
2755 pub fn print_lp(lp: *mut lprec);
2756 pub fn print_tableau(lp: *mut lprec);
2757 pub fn print_objective(lp: *mut lprec);
2758 pub fn print_solution(lp: *mut lprec, columns: libc::c_int);
2759 pub fn print_constraints(lp: *mut lprec, columns: libc::c_int);
2760 pub fn print_duals(lp: *mut lprec);
2761 pub fn print_scales(lp: *mut lprec);
2762 pub fn print_str(lp: *mut lprec, str: *mut libc::c_char);
2763 pub fn set_outputstream(lp: *mut lprec, stream: *mut libc::FILE);
2764 pub fn set_outputfile(lp: *mut lprec,
2765 filename: *mut libc::c_char)
2766 -> libc::c_uchar;
2767 pub fn set_verbose(lp: *mut lprec, verbose: libc::c_int);
2768 pub fn get_verbose(lp: *mut lprec) -> libc::c_int;
2769 pub fn set_timeout(lp: *mut lprec, sectimeout: libc::c_long);
2770 pub fn get_timeout(lp: *mut lprec) -> libc::c_long;
2771 pub fn set_print_sol(lp: *mut lprec, print_sol: libc::c_int);
2772 pub fn get_print_sol(lp: *mut lprec) -> libc::c_int;
2773 pub fn set_debug(lp: *mut lprec, debug: libc::c_uchar);
2774 pub fn is_debug(lp: *mut lprec) -> libc::c_uchar;
2775 pub fn set_trace(lp: *mut lprec, trace: libc::c_uchar);
2776 pub fn is_trace(lp: *mut lprec) -> libc::c_uchar;
2777 pub fn print_debugdump(lp: *mut lprec,
2778 filename: *mut libc::c_char)
2779 -> libc::c_uchar;
2780 pub fn set_anti_degen(lp: *mut lprec, anti_degen: libc::c_int);
2781 pub fn get_anti_degen(lp: *mut lprec) -> libc::c_int;
2782 pub fn is_anti_degen(lp: *mut lprec, testmask: libc::c_int)
2783 -> libc::c_uchar;
2784 pub fn set_presolve(lp: *mut lprec, presolvemode: libc::c_int,
2785 maxloops: libc::c_int);
2786 pub fn get_presolve(lp: *mut lprec) -> libc::c_int;
2787 pub fn get_presolveloops(lp: *mut lprec) -> libc::c_int;
2788 pub fn is_presolve(lp: *mut lprec, testmask: libc::c_int)
2789 -> libc::c_uchar;
2790 pub fn get_orig_index(lp: *mut lprec, lp_index: libc::c_int)
2791 -> libc::c_int;
2792 pub fn get_lp_index(lp: *mut lprec, orig_index: libc::c_int)
2793 -> libc::c_int;
2794 pub fn set_maxpivot(lp: *mut lprec, max_num_inv: libc::c_int);
2795 pub fn get_maxpivot(lp: *mut lprec) -> libc::c_int;
2796 pub fn set_obj_bound(lp: *mut lprec, obj_bound: libc::c_double);
2797 pub fn get_obj_bound(lp: *mut lprec) -> libc::c_double;
2798 pub fn set_mip_gap(lp: *mut lprec, absolute: libc::c_uchar,
2799 mip_gap: libc::c_double);
2800 pub fn get_mip_gap(lp: *mut lprec, absolute: libc::c_uchar)
2801 -> libc::c_double;
2802 pub fn set_bb_rule(lp: *mut lprec, bb_rule: libc::c_int);
2803 pub fn get_bb_rule(lp: *mut lprec) -> libc::c_int;
2804 pub fn set_var_branch(lp: *mut lprec, colnr: libc::c_int,
2805 branch_mode: libc::c_int)
2806 -> libc::c_uchar;
2807 pub fn get_var_branch(lp: *mut lprec, colnr: libc::c_int)
2808 -> libc::c_int;
2809 pub fn is_infinite(lp: *mut lprec, value: libc::c_double)
2810 -> libc::c_uchar;
2811 pub fn set_infinite(lp: *mut lprec, infinite: libc::c_double);
2812 pub fn get_infinite(lp: *mut lprec) -> libc::c_double;
2813 pub fn set_epsint(lp: *mut lprec, epsint: libc::c_double);
2814 pub fn get_epsint(lp: *mut lprec) -> libc::c_double;
2815 pub fn set_epsb(lp: *mut lprec, epsb: libc::c_double);
2816 pub fn get_epsb(lp: *mut lprec) -> libc::c_double;
2817 pub fn set_epsd(lp: *mut lprec, epsd: libc::c_double);
2818 pub fn get_epsd(lp: *mut lprec) -> libc::c_double;
2819 pub fn set_epsel(lp: *mut lprec, epsel: libc::c_double);
2820 pub fn get_epsel(lp: *mut lprec) -> libc::c_double;
2821 pub fn set_epslevel(lp: *mut lprec, epslevel: libc::c_int)
2822 -> libc::c_uchar;
2823 pub fn set_scaling(lp: *mut lprec, scalemode: libc::c_int);
2824 pub fn get_scaling(lp: *mut lprec) -> libc::c_int;
2825 pub fn is_scalemode(lp: *mut lprec, testmask: libc::c_int)
2826 -> libc::c_uchar;
2827 pub fn is_scaletype(lp: *mut lprec, scaletype: libc::c_int)
2828 -> libc::c_uchar;
2829 pub fn is_integerscaling(lp: *mut lprec) -> libc::c_uchar;
2830 pub fn set_scalelimit(lp: *mut lprec,
2831 scalelimit: libc::c_double);
2832 pub fn get_scalelimit(lp: *mut lprec) -> libc::c_double;
2833 pub fn set_improve(lp: *mut lprec, improve: libc::c_int);
2834 pub fn get_improve(lp: *mut lprec) -> libc::c_int;
2835 pub fn set_pivoting(lp: *mut lprec, piv_rule: libc::c_int);
2836 pub fn get_pivoting(lp: *mut lprec) -> libc::c_int;
2837 pub fn set_partialprice(lp: *mut lprec, blockcount: libc::c_int,
2838 blockstart: *mut libc::c_int,
2839 isrow: libc::c_uchar)
2840 -> libc::c_uchar;
2841 pub fn get_partialprice(lp: *mut lprec,
2842 blockcount: *mut libc::c_int,
2843 blockstart: *mut libc::c_int,
2844 isrow: libc::c_uchar);
2845 pub fn set_multiprice(lp: *mut lprec,
2846 multiblockdiv: libc::c_int)
2847 -> libc::c_uchar;
2848 pub fn get_multiprice(lp: *mut lprec, getabssize: libc::c_uchar)
2849 -> libc::c_int;
2850 pub fn is_use_names(lp: *mut lprec, isrow: libc::c_uchar)
2851 -> libc::c_uchar;
2852 pub fn set_use_names(lp: *mut lprec, isrow: libc::c_uchar,
2853 use_names: libc::c_uchar);
2854 pub fn get_nameindex(lp: *mut lprec, varname: *mut libc::c_char,
2855 isrow: libc::c_uchar)
2856 -> libc::c_int;
2857 pub fn is_piv_mode(lp: *mut lprec, testmask: libc::c_int)
2858 -> libc::c_uchar;
2859 pub fn is_piv_rule(lp: *mut lprec, rule: libc::c_int)
2860 -> libc::c_uchar;
2861 pub fn set_break_at_first(lp: *mut lprec,
2862 break_at_first: libc::c_uchar);
2863 pub fn is_break_at_first(lp: *mut lprec) -> libc::c_uchar;
2864 pub fn set_bb_floorfirst(lp: *mut lprec,
2865 bb_floorfirst: libc::c_int);
2866 pub fn get_bb_floorfirst(lp: *mut lprec) -> libc::c_int;
2867 pub fn set_bb_depthlimit(lp: *mut lprec,
2868 bb_maxlevel: libc::c_int);
2869 pub fn get_bb_depthlimit(lp: *mut lprec) -> libc::c_int;
2870 pub fn set_break_at_value(lp: *mut lprec,
2871 break_at_value: libc::c_double);
2872 pub fn get_break_at_value(lp: *mut lprec) -> libc::c_double;
2873 pub fn set_negrange(lp: *mut lprec, negrange: libc::c_double);
2874 pub fn get_negrange(lp: *mut lprec) -> libc::c_double;
2875 pub fn set_epsperturb(lp: *mut lprec,
2876 epsperturb: libc::c_double);
2877 pub fn get_epsperturb(lp: *mut lprec) -> libc::c_double;
2878 pub fn set_epspivot(lp: *mut lprec, epspivot: libc::c_double);
2879 pub fn get_epspivot(lp: *mut lprec) -> libc::c_double;
2880 pub fn get_max_level(lp: *mut lprec) -> libc::c_int;
2881 pub fn get_total_nodes(lp: *mut lprec) -> libc::c_longlong;
2882 pub fn get_total_iter(lp: *mut lprec) -> libc::c_longlong;
2883 pub fn get_objective(lp: *mut lprec) -> libc::c_double;
2884 pub fn get_working_objective(lp: *mut lprec) -> libc::c_double;
2885 pub fn get_var_primalresult(lp: *mut lprec, index: libc::c_int)
2886 -> libc::c_double;
2887 pub fn get_var_dualresult(lp: *mut lprec, index: libc::c_int)
2888 -> libc::c_double;
2889 pub fn get_variables(lp: *mut lprec, var: *mut libc::c_double)
2890 -> libc::c_uchar;
2891 pub fn get_ptr_variables(lp: *mut lprec,
2892 var: *mut *mut libc::c_double)
2893 -> libc::c_uchar;
2894 pub fn get_constraints(lp: *mut lprec,
2895 constr: *mut libc::c_double)
2896 -> libc::c_uchar;
2897 pub fn get_ptr_constraints(lp: *mut lprec,
2898 constr: *mut *mut libc::c_double)
2899 -> libc::c_uchar;
2900 pub fn get_sensitivity_rhs(lp: *mut lprec,
2901 duals: *mut libc::c_double,
2902 dualsfrom: *mut libc::c_double,
2903 dualstill: *mut libc::c_double)
2904 -> libc::c_uchar;
2905 pub fn get_ptr_sensitivity_rhs(lp: *mut lprec,
2906 duals: *mut *mut libc::c_double,
2907 dualsfrom:
2908 *mut *mut libc::c_double,
2909 dualstill:
2910 *mut *mut libc::c_double)
2911 -> libc::c_uchar;
2912 pub fn get_sensitivity_obj(lp: *mut lprec,
2913 objfrom: *mut libc::c_double,
2914 objtill: *mut libc::c_double)
2915 -> libc::c_uchar;
2916 pub fn get_sensitivity_objex(lp: *mut lprec,
2917 objfrom: *mut libc::c_double,
2918 objtill: *mut libc::c_double,
2919 objfromvalue: *mut libc::c_double,
2920 objtillvalue: *mut libc::c_double)
2921 -> libc::c_uchar;
2922 pub fn get_ptr_sensitivity_obj(lp: *mut lprec,
2923 objfrom:
2924 *mut *mut libc::c_double,
2925 objtill:
2926 *mut *mut libc::c_double)
2927 -> libc::c_uchar;
2928 pub fn get_ptr_sensitivity_objex(lp: *mut lprec,
2929 objfrom:
2930 *mut *mut libc::c_double,
2931 objtill:
2932 *mut *mut libc::c_double,
2933 objfromvalue:
2934 *mut *mut libc::c_double,
2935 objtillvalue:
2936 *mut *mut libc::c_double)
2937 -> libc::c_uchar;
2938 pub fn set_solutionlimit(lp: *mut lprec, limit: libc::c_int);
2939 pub fn get_solutionlimit(lp: *mut lprec) -> libc::c_int;
2940 pub fn get_solutioncount(lp: *mut lprec) -> libc::c_int;
2941 pub fn get_Norig_rows(lp: *mut lprec) -> libc::c_int;
2942 pub fn get_Nrows(lp: *mut lprec) -> libc::c_int;
2943 pub fn get_Lrows(lp: *mut lprec) -> libc::c_int;
2944 pub fn get_Norig_columns(lp: *mut lprec) -> libc::c_int;
2945 pub fn get_Ncolumns(lp: *mut lprec) -> libc::c_int;
2946 pub fn MPS_readex(newlp: *mut *mut lprec,
2947 userhandle: *mut libc::c_void,
2948 read_modeldata: read_modeldata_func,
2949 typeMPS: libc::c_int,
2950 options: libc::c_int)
2951 -> libc::c_uchar;
2952 pub fn read_lpex(userhandle: *mut libc::c_void,
2953 read_modeldata: read_modeldata_func,
2954 verbose: libc::c_int,
2955 lp_name: *mut libc::c_char) -> *mut lprec;
2956 pub fn write_lpex(lp: *mut lprec, userhandle: *mut libc::c_void,
2957 write_modeldata: write_modeldata_func)
2958 -> libc::c_uchar;
2959 pub fn read_mpsex(userhandle: *mut libc::c_void,
2960 read_modeldata: read_modeldata_func,
2961 options: libc::c_int) -> *mut lprec;
2962 pub fn read_freempsex(userhandle: *mut libc::c_void,
2963 read_modeldata: read_modeldata_func,
2964 options: libc::c_int) -> *mut lprec;
2965 pub fn MPS_writefileex(lp: *mut lprec, typeMPS: libc::c_int,
2966 userhandle: *mut libc::c_void,
2967 write_modeldata: write_modeldata_func)
2968 -> libc::c_uchar;
2969 pub fn set_callbacks(lp: *mut lprec) -> libc::c_uchar;
2970 pub fn yieldformessages(lp: *mut lprec) -> libc::c_int;
2971 pub fn userabort(lp: *mut lprec, message: libc::c_int)
2972 -> libc::c_uchar;
2973 pub fn append_rows(lp: *mut lprec, deltarows: libc::c_int)
2974 -> libc::c_uchar;
2975 pub fn append_columns(lp: *mut lprec, deltacolumns: libc::c_int)
2976 -> libc::c_uchar;
2977 pub fn inc_rows(lp: *mut lprec, delta: libc::c_int);
2978 pub fn inc_columns(lp: *mut lprec, delta: libc::c_int);
2979 pub fn init_rowcol_names(lp: *mut lprec) -> libc::c_uchar;
2980 pub fn inc_row_space(lp: *mut lprec, deltarows: libc::c_int)
2981 -> libc::c_uchar;
2982 pub fn inc_col_space(lp: *mut lprec, deltacols: libc::c_int)
2983 -> libc::c_uchar;
2984 pub fn shift_rowcoldata(lp: *mut lprec, base: libc::c_int,
2985 delta: libc::c_int, usedmap: *mut LLrec,
2986 isrow: libc::c_uchar)
2987 -> libc::c_uchar;
2988 pub fn shift_basis(lp: *mut lprec, base: libc::c_int,
2989 delta: libc::c_int, usedmap: *mut LLrec,
2990 isrow: libc::c_uchar)
2991 -> libc::c_uchar;
2992 pub fn shift_rowdata(lp: *mut lprec, base: libc::c_int,
2993 delta: libc::c_int, usedmap: *mut LLrec)
2994 -> libc::c_uchar;
2995 pub fn shift_coldata(lp: *mut lprec, base: libc::c_int,
2996 delta: libc::c_int, usedmap: *mut LLrec)
2997 -> libc::c_uchar;
2998 pub fn is_chsign(lp: *mut lprec, rownr: libc::c_int)
2999 -> libc::c_uchar;
3000 pub fn inc_lag_space(lp: *mut lprec, deltarows: libc::c_int,
3001 ignoreMAT: libc::c_uchar)
3002 -> libc::c_uchar;
3003 pub fn make_lag(server: *mut lprec) -> *mut lprec;
3004 pub fn get_rh_upper(lp: *mut lprec, rownr: libc::c_int)
3005 -> libc::c_double;
3006 pub fn get_rh_lower(lp: *mut lprec, rownr: libc::c_int)
3007 -> libc::c_double;
3008 pub fn set_rh_upper(lp: *mut lprec, rownr: libc::c_int,
3009 value: libc::c_double)
3010 -> libc::c_uchar;
3011 pub fn set_rh_lower(lp: *mut lprec, rownr: libc::c_int,
3012 value: libc::c_double)
3013 -> libc::c_uchar;
3014 pub fn bin_count(lp: *mut lprec, working: libc::c_uchar)
3015 -> libc::c_int;
3016 pub fn MIP_count(lp: *mut lprec) -> libc::c_int;
3017 pub fn SOS_count(lp: *mut lprec) -> libc::c_int;
3018 pub fn GUB_count(lp: *mut lprec) -> libc::c_int;
3019 pub fn identify_GUB(lp: *mut lprec, mark: libc::c_uchar)
3020 -> libc::c_int;
3021 pub fn prepare_GUB(lp: *mut lprec) -> libc::c_int;
3022 pub fn refactRecent(lp: *mut lprec) -> libc::c_uchar;
3023 pub fn check_if_less(lp: *mut lprec, x: libc::c_double,
3024 y: libc::c_double,
3025 variable: libc::c_int)
3026 -> libc::c_uchar;
3027 pub fn feasiblePhase1(lp: *mut lprec, epsvalue: libc::c_double)
3028 -> libc::c_uchar;
3029 pub fn free_duals(lp: *mut lprec);
3030 pub fn initialize_solution(lp: *mut lprec,
3031 shiftbounds: libc::c_uchar);
3032 pub fn recompute_solution(lp: *mut lprec,
3033 shiftbounds: libc::c_uchar);
3034 pub fn verify_solution(lp: *mut lprec, reinvert: libc::c_uchar,
3035 info: *mut libc::c_char)
3036 -> libc::c_int;
3037 pub fn check_solution(lp: *mut lprec, lastcolumn: libc::c_int,
3038 solution: *mut libc::c_double,
3039 upbo: *mut libc::c_double,
3040 lowbo: *mut libc::c_double,
3041 tolerance: libc::c_double)
3042 -> libc::c_int;
3043 pub fn is_fixedvar(lp: *mut lprec, variable: libc::c_int)
3044 -> libc::c_uchar;
3045 pub fn is_splitvar(lp: *mut lprec, colnr: libc::c_int)
3046 -> libc::c_uchar;
3047 pub fn set_action(actionvar: *mut libc::c_int,
3048 actionmask: libc::c_int);
3049 pub fn clear_action(actionvar: *mut libc::c_int,
3050 actionmask: libc::c_int);
3051 pub fn is_action(actionvar: libc::c_int,
3052 testmask: libc::c_int)
3053 -> libc::c_uchar;
3054 pub fn is_bb_rule(lp: *mut lprec, bb_rule: libc::c_int)
3055 -> libc::c_uchar;
3056 pub fn is_bb_mode(lp: *mut lprec, bb_mask: libc::c_int)
3057 -> libc::c_uchar;
3058 pub fn get_piv_rule(lp: *mut lprec) -> libc::c_int;
3059 pub fn get_str_piv_rule(rule: libc::c_int)
3060 -> *mut libc::c_char;
3061 pub fn set_var_priority(lp: *mut lprec) -> libc::c_uchar;
3062 pub fn find_sc_bbvar(lp: *mut lprec, count: *mut libc::c_int)
3063 -> libc::c_int;
3064 pub fn find_sos_bbvar(lp: *mut lprec, count: *mut libc::c_int,
3065 intsos: libc::c_uchar)
3066 -> libc::c_int;
3067 pub fn find_int_bbvar(lp: *mut lprec, count: *mut libc::c_int,
3068 BB: *mut BBrec,
3069 isfeasible: *mut libc::c_uchar)
3070 -> libc::c_int;
3071 pub fn compute_dualslacks(lp: *mut lprec, target: libc::c_int,
3072 dvalues: *mut *mut libc::c_double,
3073 nzdvalues: *mut *mut libc::c_int,
3074 dosum: libc::c_uchar)
3075 -> libc::c_double;
3076 pub fn solution_is_int(lp: *mut lprec, index: libc::c_int,
3077 checkfixed: libc::c_uchar)
3078 -> libc::c_uchar;
3079 pub fn bb_better(lp: *mut lprec, target: libc::c_int,
3080 mode: libc::c_int) -> libc::c_uchar;
3081 pub fn construct_solution(lp: *mut lprec,
3082 target: *mut libc::c_double);
3083 pub fn transfer_solution_var(lp: *mut lprec,
3084 uservar: libc::c_int);
3085 pub fn construct_duals(lp: *mut lprec) -> libc::c_uchar;
3086 pub fn construct_sensitivity_duals(lp: *mut lprec)
3087 -> libc::c_uchar;
3088 pub fn construct_sensitivity_obj(lp: *mut lprec)
3089 -> libc::c_uchar;
3090 pub fn add_GUB(lp: *mut lprec, name: *mut libc::c_char,
3091 priority: libc::c_int,
3092 count: libc::c_int,
3093 sosvars: *mut libc::c_int)
3094 -> libc::c_int;
3095 pub fn push_basis(lp: *mut lprec, basisvar: *mut libc::c_int,
3096 isbasic: *mut libc::c_uchar,
3097 islower: *mut libc::c_uchar) -> *mut basisrec;
3098 pub fn compare_basis(lp: *mut lprec) -> libc::c_uchar;
3099 pub fn restore_basis(lp: *mut lprec) -> libc::c_uchar;
3100 pub fn pop_basis(lp: *mut lprec, restore: libc::c_uchar)
3101 -> libc::c_uchar;
3102 pub fn is_BasisReady(lp: *mut lprec) -> libc::c_uchar;
3103 pub fn is_slackbasis(lp: *mut lprec) -> libc::c_uchar;
3104 pub fn verify_basis(lp: *mut lprec) -> libc::c_uchar;
3105 pub fn unload_basis(lp: *mut lprec, restorelast: libc::c_uchar)
3106 -> libc::c_int;
3107 pub fn perturb_bounds(lp: *mut lprec, perturbed: *mut BBrec,
3108 doRows: libc::c_uchar,
3109 doCols: libc::c_uchar,
3110 includeFIXED: libc::c_uchar)
3111 -> libc::c_int;
3112 pub fn validate_bounds(lp: *mut lprec,
3113 upbo: *mut libc::c_double,
3114 lowbo: *mut libc::c_double)
3115 -> libc::c_uchar;
3116 pub fn impose_bounds(lp: *mut lprec, upbo: *mut libc::c_double,
3117 lowbo: *mut libc::c_double)
3118 -> libc::c_uchar;
3119 pub fn unload_BB(lp: *mut lprec) -> libc::c_int;
3120 pub fn feasibilityOffset(lp: *mut lprec, isdual: libc::c_uchar)
3121 -> libc::c_double;
3122 pub fn isP1extra(lp: *mut lprec) -> libc::c_uchar;
3123 pub fn get_refactfrequency(lp: *mut lprec,
3124 _final: libc::c_uchar)
3125 -> libc::c_double;
3126 pub fn findBasicFixedvar(lp: *mut lprec, afternr: libc::c_int,
3127 slacksonly: libc::c_uchar)
3128 -> libc::c_int;
3129 pub fn isBasisVarFeasible(lp: *mut lprec, tol: libc::c_double,
3130 basis_row: libc::c_int)
3131 -> libc::c_uchar;
3132 pub fn isPrimalFeasible(lp: *mut lprec, tol: libc::c_double,
3133 infeasibles: *mut libc::c_int,
3134 feasibilitygap: *mut libc::c_double)
3135 -> libc::c_uchar;
3136 pub fn isDualFeasible(lp: *mut lprec, tol: libc::c_double,
3137 boundflips: *mut libc::c_int,
3138 infeasibles: *mut libc::c_int,
3139 feasibilitygap: *mut libc::c_double)
3140 -> libc::c_uchar;
3141 pub fn preprocess(lp: *mut lprec) -> libc::c_int;
3142 pub fn postprocess(lp: *mut lprec);
3143 pub fn performiteration(lp: *mut lprec, rownr: libc::c_int,
3144 varin: libc::c_int,
3145 theta: libc::c_double,
3146 primal: libc::c_uchar,
3147 allowminit: libc::c_uchar,
3148 prow: *mut libc::c_double,
3149 nzprow: *mut libc::c_int,
3150 pcol: *mut libc::c_double,
3151 nzpcol: *mut libc::c_int,
3152 boundswaps: *mut libc::c_int)
3153 -> libc::c_uchar;
3154 pub fn transfer_solution(lp: *mut lprec,
3155 dofinal: libc::c_uchar);
3156 pub fn scaled_floor(lp: *mut lprec, colnr: libc::c_int,
3157 value: libc::c_double,
3158 epsscale: libc::c_double)
3159 -> libc::c_double;
3160 pub fn scaled_ceil(lp: *mut lprec, colnr: libc::c_int,
3161 value: libc::c_double,
3162 epsscale: libc::c_double)
3163 -> libc::c_double;
3164 pub fn varmap_lock(lp: *mut lprec);
3165 pub fn varmap_clear(lp: *mut lprec);
3166 pub fn varmap_canunlock(lp: *mut lprec) -> libc::c_uchar;
3167 pub fn varmap_addconstraint(lp: *mut lprec);
3168 pub fn varmap_addcolumn(lp: *mut lprec);
3169 pub fn varmap_delete(lp: *mut lprec, base: libc::c_int,
3170 delta: libc::c_int, varmap: *mut LLrec);
3171 pub fn varmap_compact(lp: *mut lprec, prev_rows: libc::c_int,
3172 prev_cols: libc::c_int);
3173 pub fn varmap_validate(lp: *mut lprec, varno: libc::c_int)
3174 -> libc::c_uchar;
3175 pub fn del_varnameex(lp: *mut lprec, namelist: *mut *mut hashelem,
3176 items: libc::c_int, ht: *mut hashtable,
3177 varnr: libc::c_int, varmap: *mut LLrec)
3178 -> libc::c_uchar;
3179 pub fn init_pseudocost(lp: *mut lprec, pseudotype: libc::c_int)
3180 -> *mut BBPSrec;
3181 pub fn free_pseudocost(lp: *mut lprec);
3182 pub fn get_pseudorange(pc: *mut BBPSrec, mipvar: libc::c_int,
3183 varcode: libc::c_int)
3184 -> libc::c_double;
3185 pub fn update_pseudocost(pc: *mut BBPSrec, mipvar: libc::c_int,
3186 varcode: libc::c_int,
3187 capupper: libc::c_uchar,
3188 varsol: libc::c_double);
3189 pub fn get_pseudobranchcost(pc: *mut BBPSrec,
3190 mipvar: libc::c_int,
3191 dofloor: libc::c_uchar)
3192 -> libc::c_double;
3193 pub fn get_pseudonodecost(pc: *mut BBPSrec, mipvar: libc::c_int,
3194 vartype: libc::c_int,
3195 varsol: libc::c_double)
3196 -> libc::c_double;
3197 pub fn set_OF_override(lp: *mut lprec,
3198 ofVector: *mut libc::c_double);
3199 pub fn set_OF_p1extra(lp: *mut lprec, p1extra: libc::c_double);
3200 pub fn unset_OF_p1extra(lp: *mut lprec);
3201 pub fn modifyOF1(lp: *mut lprec, index: libc::c_int,
3202 ofValue: *mut libc::c_double,
3203 mult: libc::c_double)
3204 -> libc::c_uchar;
3205 pub fn get_OF_active(lp: *mut lprec, varnr: libc::c_int,
3206 mult: libc::c_double)
3207 -> libc::c_double;
3208 pub fn is_OF_nz(lp: *mut lprec, colnr: libc::c_int)
3209 -> libc::c_uchar;
3210 pub fn get_basisOF(lp: *mut lprec, coltarget: *mut libc::c_int,
3211 crow: *mut libc::c_double,
3212 colno: *mut libc::c_int)
3213 -> libc::c_int;
3214 pub fn get_basiscolumn(lp: *mut lprec, j: libc::c_int,
3215 rn: *mut libc::c_int,
3216 bj: *mut libc::c_double)
3217 -> libc::c_int;
3218 pub fn obtain_column(lp: *mut lprec, varin: libc::c_int,
3219 pcol: *mut libc::c_double,
3220 nzlist: *mut libc::c_int,
3221 maxabs: *mut libc::c_int)
3222 -> libc::c_int;
3223 pub fn compute_theta(lp: *mut lprec, rownr: libc::c_int,
3224 theta: *mut libc::c_double,
3225 isupbound: libc::c_int,
3226 HarrisScalar: libc::c_double,
3227 primal: libc::c_uchar)
3228 -> libc::c_int;
3229 pub fn findBasisPos(lp: *mut lprec, notint: libc::c_int,
3230 var_basic: *mut libc::c_int)
3231 -> libc::c_int;
3232 pub fn check_degeneracy(lp: *mut lprec,
3233 pcol: *mut libc::c_double,
3234 degencount: *mut libc::c_int)
3235 -> libc::c_uchar;
3236}
3237
3238#[cfg(windows)]
3239unsafe extern "stdcall" {
3240 pub fn allocCHAR(lp: *mut lprec, ptr: *mut *mut libc::c_char,
3241 size: libc::c_int,
3242 clear: libc::c_uchar)
3243 -> libc::c_uchar;
3244 pub fn allocMYBOOL(lp: *mut lprec, ptr: *mut *mut libc::c_uchar,
3245 size: libc::c_int,
3246 clear: libc::c_uchar)
3247 -> libc::c_uchar;
3248 pub fn allocINT(lp: *mut lprec, ptr: *mut *mut libc::c_int,
3249 size: libc::c_int,
3250 clear: libc::c_uchar)
3251 -> libc::c_uchar;
3252 pub fn allocREAL(lp: *mut lprec, ptr: *mut *mut libc::c_double,
3253 size: libc::c_int,
3254 clear: libc::c_uchar)
3255 -> libc::c_uchar;
3256 pub fn allocLREAL(lp: *mut lprec, ptr: *mut *mut libc::c_double,
3257 size: libc::c_int,
3258 clear: libc::c_uchar)
3259 -> libc::c_uchar;
3260 pub fn allocFREE(lp: *mut lprec, ptr: *mut *mut libc::c_void)
3261 -> libc::c_uchar;
3262 pub fn cloneREAL(lp: *mut lprec, origlist: *mut libc::c_double,
3263 size: libc::c_int)
3264 -> *mut libc::c_double;
3265 pub fn cloneMYBOOL(lp: *mut lprec, origlist: *mut libc::c_uchar,
3266 size: libc::c_int)
3267 -> *mut libc::c_uchar;
3268 pub fn cloneINT(lp: *mut lprec, origlist: *mut libc::c_int,
3269 size: libc::c_int)
3270 -> *mut libc::c_int;
3271 pub fn comp_bits(bitarray1: *mut libc::c_uchar,
3272 bitarray2: *mut libc::c_uchar,
3273 items: libc::c_int) -> libc::c_int;
3274 pub fn mempool_create(lp: *mut lprec) -> *mut workarraysrec;
3275 pub fn mempool_obtainVector(mempool: *mut workarraysrec,
3276 count: libc::c_int,
3277 unitsize: libc::c_int)
3278 -> *mut libc::c_char;
3279 pub fn mempool_releaseVector(mempool: *mut workarraysrec,
3280 memvector: *mut libc::c_char,
3281 forcefree: libc::c_uchar)
3282 -> libc::c_uchar;
3283 pub fn mempool_free(mempool: *mut *mut workarraysrec)
3284 -> libc::c_uchar;
3285 pub fn roundVector(myvector: *mut libc::c_double,
3286 endpos: libc::c_int,
3287 roundzero: libc::c_double);
3288 pub fn normalizeVector(myvector: *mut libc::c_double,
3289 endpos: libc::c_int)
3290 -> libc::c_double;
3291 pub fn swapINT(item1: *mut libc::c_int,
3292 item2: *mut libc::c_int);
3293 pub fn swapREAL(item1: *mut libc::c_double,
3294 item2: *mut libc::c_double);
3295 pub fn swapPTR(item1: *mut *mut libc::c_void,
3296 item2: *mut *mut libc::c_void);
3297 pub fn restoreINT(valREAL: libc::c_double,
3298 epsilon: libc::c_double)
3299 -> libc::c_double;
3300 pub fn roundToPrecision(value: libc::c_double,
3301 precision: libc::c_double)
3302 -> libc::c_double;
3303 pub fn searchFor(target: libc::c_int,
3304 attributes: *mut libc::c_int,
3305 size: libc::c_int,
3306 offset: libc::c_int,
3307 absolute: libc::c_uchar)
3308 -> libc::c_int;
3309 pub fn isINT(lp: *mut lprec, value: libc::c_double)
3310 -> libc::c_uchar;
3311 pub fn isOrigFixed(lp: *mut lprec, varno: libc::c_int)
3312 -> libc::c_uchar;
3313 pub fn chsign_bounds(lobound: *mut libc::c_double,
3314 upbound: *mut libc::c_double);
3315 pub fn rand_uniform(lp: *mut lprec, range: libc::c_double)
3316 -> libc::c_double;
3317 pub fn createLink(size: libc::c_int, linkmap: *mut *mut LLrec,
3318 usedpos: *mut libc::c_uchar)
3319 -> libc::c_int;
3320 pub fn freeLink(linkmap: *mut *mut LLrec) -> libc::c_uchar;
3321 pub fn sizeLink(linkmap: *mut LLrec) -> libc::c_int;
3322 pub fn isActiveLink(linkmap: *mut LLrec, itemnr: libc::c_int)
3323 -> libc::c_uchar;
3324 pub fn countActiveLink(linkmap: *mut LLrec) -> libc::c_int;
3325 pub fn countInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
3326 pub fn firstActiveLink(linkmap: *mut LLrec) -> libc::c_int;
3327 pub fn lastActiveLink(linkmap: *mut LLrec) -> libc::c_int;
3328 pub fn appendLink(linkmap: *mut LLrec, newitem: libc::c_int)
3329 -> libc::c_uchar;
3330 pub fn insertLink(linkmap: *mut LLrec, afteritem: libc::c_int,
3331 newitem: libc::c_int)
3332 -> libc::c_uchar;
3333 pub fn setLink(linkmap: *mut LLrec, newitem: libc::c_int)
3334 -> libc::c_uchar;
3335 pub fn fillLink(linkmap: *mut LLrec) -> libc::c_uchar;
3336 pub fn nextActiveLink(linkmap: *mut LLrec,
3337 backitemnr: libc::c_int)
3338 -> libc::c_int;
3339 pub fn prevActiveLink(linkmap: *mut LLrec,
3340 forwitemnr: libc::c_int)
3341 -> libc::c_int;
3342 pub fn firstInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
3343 pub fn lastInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
3344 pub fn nextInactiveLink(linkmap: *mut LLrec,
3345 backitemnr: libc::c_int)
3346 -> libc::c_int;
3347 pub fn prevInactiveLink(linkmap: *mut LLrec,
3348 forwitemnr: libc::c_int)
3349 -> libc::c_int;
3350 pub fn removeLink(linkmap: *mut LLrec, itemnr: libc::c_int)
3351 -> libc::c_int;
3352 pub fn cloneLink(sourcemap: *mut LLrec, newsize: libc::c_int,
3353 freesource: libc::c_uchar) -> *mut LLrec;
3354 pub fn compareLink(linkmap1: *mut LLrec, linkmap2: *mut LLrec)
3355 -> libc::c_int;
3356 pub fn verifyLink(linkmap: *mut LLrec, itemnr: libc::c_int,
3357 doappend: libc::c_uchar)
3358 -> libc::c_uchar;
3359 pub fn createPackedVector(size: libc::c_int,
3360 values: *mut libc::c_double,
3361 workvector: *mut libc::c_int)
3362 -> *mut PVrec;
3363 pub fn pushPackedVector(PV: *mut PVrec, parent: *mut PVrec);
3364 pub fn unpackPackedVector(PV: *mut PVrec,
3365 target: *mut *mut libc::c_double)
3366 -> libc::c_uchar;
3367 pub fn getvaluePackedVector(PV: *mut PVrec, index: libc::c_int)
3368 -> libc::c_double;
3369 pub fn popPackedVector(PV: *mut PVrec) -> *mut PVrec;
3370 pub fn freePackedVector(PV: *mut *mut PVrec) -> libc::c_uchar;
3371 pub fn create_hash_table(size: libc::c_int,
3372 base: libc::c_int) -> *mut hashtable;
3373 pub fn free_hash_table(ht: *mut hashtable);
3374 pub fn findhash(name: *const libc::c_char, ht: *mut hashtable)
3375 -> *mut hashelem;
3376 pub fn puthash(name: *const libc::c_char,
3377 index: libc::c_int, list: *mut *mut hashelem,
3378 ht: *mut hashtable) -> *mut hashelem;
3379 pub fn drophash(name: *const libc::c_char,
3380 list: *mut *mut hashelem, ht: *mut hashtable);
3381 pub fn free_hash_item(hp: *mut *mut hashelem);
3382 pub fn copy_hash_table(ht: *mut hashtable, list: *mut *mut hashelem,
3383 newsize: libc::c_int) -> *mut hashtable;
3384 pub fn find_var(lp: *mut lprec, name: *mut libc::c_char,
3385 verbose: libc::c_uchar)
3386 -> libc::c_int;
3387 pub fn find_row(lp: *mut lprec, name: *mut libc::c_char,
3388 Unconstrained_rows_found: libc::c_uchar)
3389 -> libc::c_int;
3390 pub fn mat_create(lp: *mut lprec, rows: libc::c_int,
3391 columns: libc::c_int,
3392 epsvalue: libc::c_double) -> *mut MATrec;
3393 pub fn mat_memopt(mat: *mut MATrec, rowextra: libc::c_int,
3394 colextra: libc::c_int,
3395 nzextra: libc::c_int)
3396 -> libc::c_uchar;
3397 pub fn mat_free(matrix: *mut *mut MATrec);
3398 pub fn inc_matrow_space(mat: *mut MATrec,
3399 deltarows: libc::c_int)
3400 -> libc::c_uchar;
3401 pub fn mat_mapreplace(mat: *mut MATrec, rowmap: *mut LLrec,
3402 colmap: *mut LLrec, insmat: *mut MATrec)
3403 -> libc::c_int;
3404 pub fn mat_matinsert(mat: *mut MATrec, insmat: *mut MATrec)
3405 -> libc::c_int;
3406 pub fn mat_zerocompact(mat: *mut MATrec) -> libc::c_int;
3407 pub fn mat_rowcompact(mat: *mut MATrec, dozeros: libc::c_uchar)
3408 -> libc::c_int;
3409 pub fn mat_colcompact(mat: *mut MATrec, prev_rows: libc::c_int,
3410 prev_cols: libc::c_int)
3411 -> libc::c_int;
3412 pub fn inc_matcol_space(mat: *mut MATrec,
3413 deltacols: libc::c_int)
3414 -> libc::c_uchar;
3415 pub fn inc_mat_space(mat: *mut MATrec, mindelta: libc::c_int)
3416 -> libc::c_uchar;
3417 pub fn mat_shiftrows(mat: *mut MATrec, bbase: *mut libc::c_int,
3418 delta: libc::c_int, varmap: *mut LLrec)
3419 -> libc::c_int;
3420 pub fn mat_shiftcols(mat: *mut MATrec, bbase: *mut libc::c_int,
3421 delta: libc::c_int, varmap: *mut LLrec)
3422 -> libc::c_int;
3423 pub fn mat_extractmat(mat: *mut MATrec, rowmap: *mut LLrec,
3424 colmap: *mut LLrec,
3425 negated: libc::c_uchar) -> *mut MATrec;
3426 pub fn mat_appendrow(mat: *mut MATrec, count: libc::c_int,
3427 row: *mut libc::c_double,
3428 colno: *mut libc::c_int,
3429 mult: libc::c_double,
3430 checkrowmode: libc::c_uchar)
3431 -> libc::c_int;
3432 pub fn mat_appendcol(mat: *mut MATrec, count: libc::c_int,
3433 column: *mut libc::c_double,
3434 rowno: *mut libc::c_int,
3435 mult: libc::c_double,
3436 checkrowmode: libc::c_uchar)
3437 -> libc::c_int;
3438 pub fn mat_get_data(lp: *mut lprec, matindex: libc::c_int,
3439 isrow: libc::c_uchar,
3440 rownr: *mut *mut libc::c_int,
3441 colnr: *mut *mut libc::c_int,
3442 value: *mut *mut libc::c_double)
3443 -> libc::c_uchar;
3444 pub fn mat_set_rowmap(mat: *mut MATrec,
3445 row_mat_index: libc::c_int,
3446 rownr: libc::c_int,
3447 colnr: libc::c_int,
3448 col_mat_index: libc::c_int)
3449 -> libc::c_uchar;
3450 pub fn mat_indexrange(mat: *mut MATrec, index: libc::c_int,
3451 isrow: libc::c_uchar,
3452 startpos: *mut libc::c_int,
3453 endpos: *mut libc::c_int)
3454 -> libc::c_uchar;
3455 pub fn mat_validate(mat: *mut MATrec) -> libc::c_uchar;
3456 pub fn mat_equalRows(mat: *mut MATrec, baserow: libc::c_int,
3457 comprow: libc::c_int)
3458 -> libc::c_uchar;
3459 pub fn mat_findelm(mat: *mut MATrec, row: libc::c_int,
3460 column: libc::c_int)
3461 -> libc::c_int;
3462 pub fn mat_findins(mat: *mut MATrec, row: libc::c_int,
3463 column: libc::c_int,
3464 insertpos: *mut libc::c_int,
3465 validate: libc::c_uchar)
3466 -> libc::c_int;
3467 pub fn mat_multcol(mat: *mut MATrec, col_nr: libc::c_int,
3468 mult: libc::c_double,
3469 DoObj: libc::c_uchar);
3470 pub fn mat_getitem(mat: *mut MATrec, row: libc::c_int,
3471 column: libc::c_int)
3472 -> libc::c_double;
3473 pub fn mat_setitem(mat: *mut MATrec, row: libc::c_int,
3474 column: libc::c_int,
3475 value: libc::c_double)
3476 -> libc::c_uchar;
3477 pub fn mat_additem(mat: *mut MATrec, row: libc::c_int,
3478 column: libc::c_int,
3479 delta: libc::c_double)
3480 -> libc::c_uchar;
3481 pub fn mat_setvalue(mat: *mut MATrec, Row: libc::c_int,
3482 Column: libc::c_int,
3483 Value: libc::c_double,
3484 doscale: libc::c_uchar)
3485 -> libc::c_uchar;
3486 pub fn mat_nonzeros(mat: *mut MATrec) -> libc::c_int;
3487 pub fn mat_collength(mat: *mut MATrec, colnr: libc::c_int)
3488 -> libc::c_int;
3489 pub fn mat_rowlength(mat: *mut MATrec, rownr: libc::c_int)
3490 -> libc::c_int;
3491 pub fn mat_multrow(mat: *mut MATrec, row_nr: libc::c_int,
3492 mult: libc::c_double);
3493 pub fn mat_multadd(mat: *mut MATrec,
3494 lhsvector: *mut libc::c_double,
3495 varnr: libc::c_int,
3496 mult: libc::c_double);
3497 pub fn mat_setrow(mat: *mut MATrec, rowno: libc::c_int,
3498 count: libc::c_int,
3499 row: *mut libc::c_double,
3500 colno: *mut libc::c_int,
3501 doscale: libc::c_uchar,
3502 checkrowmode: libc::c_uchar)
3503 -> libc::c_uchar;
3504 pub fn mat_setcol(mat: *mut MATrec, colno: libc::c_int,
3505 count: libc::c_int,
3506 column: *mut libc::c_double,
3507 rowno: *mut libc::c_int,
3508 doscale: libc::c_uchar,
3509 checkrowmode: libc::c_uchar)
3510 -> libc::c_uchar;
3511 pub fn mat_mergemat(target: *mut MATrec, source: *mut MATrec,
3512 usecolmap: libc::c_uchar)
3513 -> libc::c_uchar;
3514 pub fn mat_checkcounts(mat: *mut MATrec,
3515 rownum: *mut libc::c_int,
3516 colnum: *mut libc::c_int,
3517 freeonexit: libc::c_uchar)
3518 -> libc::c_int;
3519 pub fn mat_expandcolumn(mat: *mut MATrec, colnr: libc::c_int,
3520 column: *mut libc::c_double,
3521 nzlist: *mut libc::c_int,
3522 signedA: libc::c_uchar)
3523 -> libc::c_int;
3524 pub fn mat_computemax(mat: *mut MATrec) -> libc::c_uchar;
3525 pub fn mat_transpose(mat: *mut MATrec) -> libc::c_uchar;
3526 pub fn invert(lp: *mut lprec, shiftbounds: libc::c_uchar,
3527 _final: libc::c_uchar) -> libc::c_uchar;
3528 pub fn vec_compress(densevector: *mut libc::c_double,
3529 startpos: libc::c_int,
3530 endpos: libc::c_int,
3531 epsilon: libc::c_double,
3532 nzvector: *mut libc::c_double,
3533 nzindex: *mut libc::c_int)
3534 -> libc::c_uchar;
3535 pub fn vec_expand(nzvector: *mut libc::c_double,
3536 nzindex: *mut libc::c_int,
3537 densevector: *mut libc::c_double,
3538 startpos: libc::c_int,
3539 endpos: libc::c_int)
3540 -> libc::c_uchar;
3541 pub fn get_colIndexA(lp: *mut lprec, varset: libc::c_int,
3542 colindex: *mut libc::c_int,
3543 append: libc::c_uchar)
3544 -> libc::c_uchar;
3545 pub fn prod_Ax(lp: *mut lprec, coltarget: *mut libc::c_int,
3546 input: *mut libc::c_double,
3547 nzinput: *mut libc::c_int,
3548 roundzero: libc::c_double,
3549 ofscalar: libc::c_double,
3550 output: *mut libc::c_double,
3551 nzoutput: *mut libc::c_int,
3552 roundmode: libc::c_int) -> libc::c_int;
3553 pub fn prod_xA(lp: *mut lprec, coltarget: *mut libc::c_int,
3554 input: *mut libc::c_double,
3555 nzinput: *mut libc::c_int,
3556 roundzero: libc::c_double,
3557 ofscalar: libc::c_double,
3558 output: *mut libc::c_double,
3559 nzoutput: *mut libc::c_int,
3560 roundmode: libc::c_int) -> libc::c_int;
3561 pub fn prod_xA2(lp: *mut lprec, coltarget: *mut libc::c_int,
3562 prow: *mut libc::c_double,
3563 proundzero: libc::c_double,
3564 pnzprow: *mut libc::c_int,
3565 drow: *mut libc::c_double,
3566 droundzero: libc::c_double,
3567 dnzdrow: *mut libc::c_int,
3568 ofscalar: libc::c_double,
3569 roundmode: libc::c_int)
3570 -> libc::c_uchar;
3571 pub fn fimprove(lp: *mut lprec, pcol: *mut libc::c_double,
3572 nzidx: *mut libc::c_int,
3573 roundzero: libc::c_double)
3574 -> libc::c_uchar;
3575 pub fn ftran(lp: *mut lprec, rhsvector: *mut libc::c_double,
3576 nzidx: *mut libc::c_int,
3577 roundzero: libc::c_double);
3578 pub fn bimprove(lp: *mut lprec, rhsvector: *mut libc::c_double,
3579 nzidx: *mut libc::c_int,
3580 roundzero: libc::c_double)
3581 -> libc::c_uchar;
3582 pub fn btran(lp: *mut lprec, rhsvector: *mut libc::c_double,
3583 nzidx: *mut libc::c_int,
3584 roundzero: libc::c_double);
3585 pub fn fsolve(lp: *mut lprec, varin: libc::c_int,
3586 pcol: *mut libc::c_double,
3587 nzidx: *mut libc::c_int,
3588 roundzero: libc::c_double,
3589 ofscalar: libc::c_double,
3590 prepareupdate: libc::c_uchar)
3591 -> libc::c_uchar;
3592 pub fn bsolve(lp: *mut lprec, row_nr: libc::c_int,
3593 rhsvector: *mut libc::c_double,
3594 nzidx: *mut libc::c_int,
3595 roundzero: libc::c_double,
3596 ofscalar: libc::c_double)
3597 -> libc::c_uchar;
3598 pub fn bsolve_xA2(lp: *mut lprec, coltarget: *mut libc::c_int,
3599 row_nr1: libc::c_int,
3600 vector1: *mut libc::c_double,
3601 roundzero1: libc::c_double,
3602 nzvector1: *mut libc::c_int,
3603 row_nr2: libc::c_int,
3604 vector2: *mut libc::c_double,
3605 roundzero2: libc::c_double,
3606 nzvector2: *mut libc::c_int,
3607 roundmode: libc::c_int);
3608 pub fn createUndoLadder(lp: *mut lprec, levelitems: libc::c_int,
3609 maxlevels: libc::c_int)
3610 -> *mut DeltaVrec;
3611 pub fn incrementUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
3612 pub fn modifyUndoLadder(DV: *mut DeltaVrec, itemno: libc::c_int,
3613 target: *mut libc::c_double,
3614 newvalue: libc::c_double)
3615 -> libc::c_uchar;
3616 pub fn countsUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
3617 pub fn restoreUndoLadder(DV: *mut DeltaVrec,
3618 target: *mut libc::c_double)
3619 -> libc::c_int;
3620 pub fn decrementUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
3621 pub fn freeUndoLadder(DV: *mut *mut DeltaVrec) -> libc::c_uchar;
3622 pub fn appendUndoPresolve(lp: *mut lprec,
3623 isprimal: libc::c_uchar,
3624 beta: libc::c_double,
3625 colnrDep: libc::c_int)
3626 -> libc::c_uchar;
3627 pub fn addUndoPresolve(lp: *mut lprec, isprimal: libc::c_uchar,
3628 colnrElim: libc::c_int,
3629 alpha: libc::c_double,
3630 beta: libc::c_double,
3631 colnrDep: libc::c_int)
3632 -> libc::c_uchar;
3633 pub fn create_BB(lp: *mut lprec, parentBB: *mut BBrec,
3634 dofullcopy: libc::c_uchar) -> *mut BBrec;
3635 pub fn push_BB(lp: *mut lprec, parentBB: *mut BBrec,
3636 varno: libc::c_int,
3637 vartype: libc::c_int,
3638 varcus: libc::c_int) -> *mut BBrec;
3639 pub fn initbranches_BB(BB: *mut BBrec) -> libc::c_uchar;
3640 pub fn fillbranches_BB(BB: *mut BBrec) -> libc::c_uchar;
3641 pub fn nextbranch_BB(BB: *mut BBrec) -> libc::c_uchar;
3642 pub fn strongbranch_BB(lp: *mut lprec, BB: *mut BBrec,
3643 varno: libc::c_int,
3644 vartype: libc::c_int,
3645 varcus: libc::c_int)
3646 -> libc::c_uchar;
3647 pub fn initcuts_BB(lp: *mut lprec) -> libc::c_uchar;
3648 pub fn updatecuts_BB(lp: *mut lprec) -> libc::c_int;
3649 pub fn freecuts_BB(lp: *mut lprec) -> libc::c_uchar;
3650 pub fn findself_BB(BB: *mut BBrec) -> *mut BBrec;
3651 pub fn solve_LP(lp: *mut lprec, BB: *mut BBrec) -> libc::c_int;
3652 pub fn rcfbound_BB(BB: *mut BBrec, varno: libc::c_int,
3653 isINT: libc::c_uchar,
3654 newbound: *mut libc::c_double,
3655 isfeasible: *mut libc::c_uchar)
3656 -> libc::c_int;
3657 pub fn findnode_BB(BB: *mut BBrec, varno: *mut libc::c_int,
3658 vartype: *mut libc::c_int,
3659 varcus: *mut libc::c_int)
3660 -> libc::c_uchar;
3661 pub fn solve_BB(BB: *mut BBrec) -> libc::c_int;
3662 pub fn free_BB(BB: *mut *mut BBrec) -> libc::c_uchar;
3663 pub fn pop_BB(BB: *mut BBrec) -> *mut BBrec;
3664 pub fn run_BB(lp: *mut lprec) -> libc::c_int;
3665 pub fn create_SOSgroup(lp: *mut lprec) -> *mut SOSgroup;
3666 pub fn resize_SOSgroup(group: *mut SOSgroup);
3667 pub fn append_SOSgroup(group: *mut SOSgroup, SOS: *mut SOSrec)
3668 -> libc::c_int;
3669 pub fn clean_SOSgroup(group: *mut SOSgroup,
3670 forceupdatemap: libc::c_uchar)
3671 -> libc::c_int;
3672 pub fn free_SOSgroup(group: *mut *mut SOSgroup);
3673 pub fn create_SOSrec(group: *mut SOSgroup,
3674 name: *mut libc::c_char,
3675 _type: libc::c_int,
3676 priority: libc::c_int,
3677 size: libc::c_int,
3678 variables: *mut libc::c_int,
3679 weights: *mut libc::c_double)
3680 -> *mut SOSrec;
3681 pub fn delete_SOSrec(group: *mut SOSgroup,
3682 sosindex: libc::c_int)
3683 -> libc::c_uchar;
3684 pub fn append_SOSrec(SOS: *mut SOSrec, size: libc::c_int,
3685 variables: *mut libc::c_int,
3686 weights: *mut libc::c_double)
3687 -> libc::c_int;
3688 pub fn free_SOSrec(SOS: *mut SOSrec);
3689 pub fn make_SOSchain(lp: *mut lprec, forceresort: libc::c_uchar)
3690 -> libc::c_int;
3691 pub fn SOS_member_updatemap(group: *mut SOSgroup)
3692 -> libc::c_int;
3693 pub fn SOS_member_sortlist(group: *mut SOSgroup,
3694 sosindex: libc::c_int)
3695 -> libc::c_uchar;
3696 pub fn SOS_shift_col(group: *mut SOSgroup,
3697 sosindex: libc::c_int,
3698 column: libc::c_int,
3699 delta: libc::c_int, usedmap: *mut LLrec,
3700 forceresort: libc::c_uchar)
3701 -> libc::c_uchar;
3702 pub fn SOS_member_delete(group: *mut SOSgroup,
3703 sosindex: libc::c_int,
3704 member: libc::c_int)
3705 -> libc::c_int;
3706 pub fn SOS_get_type(group: *mut SOSgroup, sosindex: libc::c_int)
3707 -> libc::c_int;
3708 pub fn SOS_infeasible(group: *mut SOSgroup,
3709 sosindex: libc::c_int)
3710 -> libc::c_int;
3711 pub fn SOS_member_index(group: *mut SOSgroup,
3712 sosindex: libc::c_int,
3713 member: libc::c_int)
3714 -> libc::c_int;
3715 pub fn SOS_member_count(group: *mut SOSgroup,
3716 sosindex: libc::c_int)
3717 -> libc::c_int;
3718 pub fn SOS_memberships(group: *mut SOSgroup,
3719 column: libc::c_int)
3720 -> libc::c_int;
3721 pub fn SOS_get_candidates(group: *mut SOSgroup,
3722 sosindex: libc::c_int,
3723 column: libc::c_int,
3724 excludetarget: libc::c_uchar,
3725 upbound: *mut libc::c_double,
3726 lobound: *mut libc::c_double)
3727 -> *mut libc::c_int;
3728 pub fn SOS_is_member(group: *mut SOSgroup,
3729 sosindex: libc::c_int,
3730 column: libc::c_int)
3731 -> libc::c_int;
3732 pub fn SOS_is_member_of_type(group: *mut SOSgroup,
3733 column: libc::c_int,
3734 sostype: libc::c_int)
3735 -> libc::c_uchar;
3736 pub fn SOS_set_GUB(group: *mut SOSgroup, sosindex: libc::c_int,
3737 state: libc::c_uchar)
3738 -> libc::c_uchar;
3739 pub fn SOS_is_GUB(group: *mut SOSgroup, sosindex: libc::c_int)
3740 -> libc::c_uchar;
3741 pub fn SOS_is_marked(group: *mut SOSgroup,
3742 sosindex: libc::c_int,
3743 column: libc::c_int)
3744 -> libc::c_uchar;
3745 pub fn SOS_is_active(group: *mut SOSgroup,
3746 sosindex: libc::c_int,
3747 column: libc::c_int)
3748 -> libc::c_uchar;
3749 pub fn SOS_is_full(group: *mut SOSgroup, sosindex: libc::c_int,
3750 column: libc::c_int,
3751 activeonly: libc::c_uchar)
3752 -> libc::c_uchar;
3753 pub fn SOS_can_activate(group: *mut SOSgroup,
3754 sosindex: libc::c_int,
3755 column: libc::c_int)
3756 -> libc::c_uchar;
3757 pub fn SOS_set_marked(group: *mut SOSgroup,
3758 sosindex: libc::c_int,
3759 column: libc::c_int,
3760 asactive: libc::c_uchar)
3761 -> libc::c_uchar;
3762 pub fn SOS_unmark(group: *mut SOSgroup, sosindex: libc::c_int,
3763 column: libc::c_int)
3764 -> libc::c_uchar;
3765 pub fn SOS_fix_unmarked(group: *mut SOSgroup,
3766 sosindex: libc::c_int,
3767 variable: libc::c_int,
3768 bound: *mut libc::c_double,
3769 value: libc::c_double,
3770 isupper: libc::c_uchar,
3771 diffcount: *mut libc::c_int,
3772 changelog: *mut DeltaVrec)
3773 -> libc::c_int;
3774 pub fn SOS_fix_list(group: *mut SOSgroup, sosindex: libc::c_int,
3775 variable: libc::c_int,
3776 bound: *mut libc::c_double,
3777 varlist: *mut libc::c_int,
3778 isleft: libc::c_uchar,
3779 changelog: *mut DeltaVrec) -> libc::c_int;
3780 pub fn SOS_is_satisfied(group: *mut SOSgroup,
3781 sosindex: libc::c_int,
3782 solution: *mut libc::c_double)
3783 -> libc::c_int;
3784 pub fn SOS_is_feasible(group: *mut SOSgroup,
3785 sosindex: libc::c_int,
3786 solution: *mut libc::c_double)
3787 -> libc::c_uchar;
3788 pub fn lp_solve_version(majorversion: *mut libc::c_int,
3789 minorversion: *mut libc::c_int,
3790 release: *mut libc::c_int,
3791 build: *mut libc::c_int);
3792 pub fn make_lp(rows: libc::c_int,
3793 columns: libc::c_int) -> *mut lprec;
3794 pub fn resize_lp(lp: *mut lprec, rows: libc::c_int,
3795 columns: libc::c_int)
3796 -> libc::c_uchar;
3797 pub fn get_status(lp: *mut lprec) -> libc::c_int;
3798 pub fn get_statustext(lp: *mut lprec, statuscode: libc::c_int)
3799 -> *mut libc::c_char;
3800 pub fn is_obj_in_basis(lp: *mut lprec) -> libc::c_uchar;
3801 pub fn set_obj_in_basis(lp: *mut lprec,
3802 obj_in_basis: libc::c_uchar);
3803 pub fn copy_lp(lp: *mut lprec) -> *mut lprec;
3804 pub fn dualize_lp(lp: *mut lprec) -> libc::c_uchar;
3805 pub fn memopt_lp(lp: *mut lprec, rowextra: libc::c_int,
3806 colextra: libc::c_int,
3807 nzextra: libc::c_int)
3808 -> libc::c_uchar;
3809 pub fn delete_lp(lp: *mut lprec);
3810 pub fn free_lp(plp: *mut *mut lprec);
3811 pub fn set_lp_name(lp: *mut lprec, lpname: *mut libc::c_char)
3812 -> libc::c_uchar;
3813 pub fn get_lp_name(lp: *mut lprec) -> *mut libc::c_char;
3814 pub fn has_BFP(lp: *mut lprec) -> libc::c_uchar;
3815 pub fn is_nativeBFP(lp: *mut lprec) -> libc::c_uchar;
3816 pub fn set_BFP(lp: *mut lprec, filename: *mut libc::c_char)
3817 -> libc::c_uchar;
3818 pub fn read_XLI(xliname: *mut libc::c_char,
3819 modelname: *mut libc::c_char,
3820 dataname: *mut libc::c_char,
3821 options: *mut libc::c_char,
3822 verbose: libc::c_int) -> *mut lprec;
3823 pub fn write_XLI(lp: *mut lprec, filename: *mut libc::c_char,
3824 options: *mut libc::c_char,
3825 results: libc::c_uchar)
3826 -> libc::c_uchar;
3827 pub fn has_XLI(lp: *mut lprec) -> libc::c_uchar;
3828 pub fn is_nativeXLI(lp: *mut lprec) -> libc::c_uchar;
3829 pub fn set_XLI(lp: *mut lprec, filename: *mut libc::c_char)
3830 -> libc::c_uchar;
3831 pub fn set_obj(lp: *mut lprec, colnr: libc::c_int,
3832 value: libc::c_double)
3833 -> libc::c_uchar;
3834 pub fn set_obj_fn(lp: *mut lprec, row: *mut libc::c_double)
3835 -> libc::c_uchar;
3836 pub fn set_obj_fnex(lp: *mut lprec, count: libc::c_int,
3837 row: *mut libc::c_double,
3838 colno: *mut libc::c_int)
3839 -> libc::c_uchar;
3840 pub fn str_set_obj_fn(lp: *mut lprec,
3841 row_string: *mut libc::c_char)
3842 -> libc::c_uchar;
3843 pub fn set_sense(lp: *mut lprec, maximize: libc::c_uchar);
3844 pub fn set_maxim(lp: *mut lprec);
3845 pub fn set_minim(lp: *mut lprec);
3846 pub fn is_maxim(lp: *mut lprec) -> libc::c_uchar;
3847 pub fn add_constraint(lp: *mut lprec, row: *mut libc::c_double,
3848 constr_type: libc::c_int,
3849 rh: libc::c_double)
3850 -> libc::c_uchar;
3851 pub fn add_constraintex(lp: *mut lprec, count: libc::c_int,
3852 row: *mut libc::c_double,
3853 colno: *mut libc::c_int,
3854 constr_type: libc::c_int,
3855 rh: libc::c_double)
3856 -> libc::c_uchar;
3857 pub fn set_add_rowmode(lp: *mut lprec, turnon: libc::c_uchar)
3858 -> libc::c_uchar;
3859 pub fn is_add_rowmode(lp: *mut lprec) -> libc::c_uchar;
3860 pub fn str_add_constraint(lp: *mut lprec,
3861 row_string: *mut libc::c_char,
3862 constr_type: libc::c_int,
3863 rh: libc::c_double)
3864 -> libc::c_uchar;
3865 pub fn set_row(lp: *mut lprec, rownr: libc::c_int,
3866 row: *mut libc::c_double)
3867 -> libc::c_uchar;
3868 pub fn set_rowex(lp: *mut lprec, rownr: libc::c_int,
3869 count: libc::c_int,
3870 row: *mut libc::c_double,
3871 colno: *mut libc::c_int)
3872 -> libc::c_uchar;
3873 pub fn get_row(lp: *mut lprec, rownr: libc::c_int,
3874 row: *mut libc::c_double)
3875 -> libc::c_uchar;
3876 pub fn get_rowex(lp: *mut lprec, rownr: libc::c_int,
3877 row: *mut libc::c_double,
3878 colno: *mut libc::c_int)
3879 -> libc::c_int;
3880 pub fn del_constraint(lp: *mut lprec, rownr: libc::c_int)
3881 -> libc::c_uchar;
3882 pub fn del_constraintex(lp: *mut lprec, rowmap: *mut LLrec)
3883 -> libc::c_uchar;
3884 pub fn add_lag_con(lp: *mut lprec, row: *mut libc::c_double,
3885 con_type: libc::c_int,
3886 rhs: libc::c_double)
3887 -> libc::c_uchar;
3888 pub fn str_add_lag_con(lp: *mut lprec,
3889 row_string: *mut libc::c_char,
3890 con_type: libc::c_int,
3891 rhs: libc::c_double)
3892 -> libc::c_uchar;
3893 pub fn set_lag_trace(lp: *mut lprec, lag_trace: libc::c_uchar);
3894 pub fn is_lag_trace(lp: *mut lprec) -> libc::c_uchar;
3895 pub fn set_constr_type(lp: *mut lprec, rownr: libc::c_int,
3896 con_type: libc::c_int)
3897 -> libc::c_uchar;
3898 pub fn get_constr_type(lp: *mut lprec, rownr: libc::c_int)
3899 -> libc::c_int;
3900 pub fn get_constr_value(lp: *mut lprec, rownr: libc::c_int,
3901 count: libc::c_int,
3902 primsolution: *mut libc::c_double,
3903 nzindex: *mut libc::c_int)
3904 -> libc::c_double;
3905 pub fn is_constr_type(lp: *mut lprec, rownr: libc::c_int,
3906 mask: libc::c_int)
3907 -> libc::c_uchar;
3908 pub fn get_str_constr_type(lp: *mut lprec,
3909 con_type: libc::c_int)
3910 -> *mut libc::c_char;
3911 pub fn get_constr_class(lp: *mut lprec, rownr: libc::c_int)
3912 -> libc::c_int;
3913 pub fn get_str_constr_class(lp: *mut lprec,
3914 con_class: libc::c_int)
3915 -> *mut libc::c_char;
3916 pub fn set_rh(lp: *mut lprec, rownr: libc::c_int,
3917 value: libc::c_double) -> libc::c_uchar;
3918 pub fn get_rh(lp: *mut lprec, rownr: libc::c_int)
3919 -> libc::c_double;
3920 pub fn set_rh_range(lp: *mut lprec, rownr: libc::c_int,
3921 deltavalue: libc::c_double)
3922 -> libc::c_uchar;
3923 pub fn get_rh_range(lp: *mut lprec, rownr: libc::c_int)
3924 -> libc::c_double;
3925 pub fn set_rh_vec(lp: *mut lprec, rh: *mut libc::c_double);
3926 pub fn str_set_rh_vec(lp: *mut lprec,
3927 rh_string: *mut libc::c_char)
3928 -> libc::c_uchar;
3929 pub fn add_column(lp: *mut lprec, column: *mut libc::c_double)
3930 -> libc::c_uchar;
3931 pub fn add_columnex(lp: *mut lprec, count: libc::c_int,
3932 column: *mut libc::c_double,
3933 rowno: *mut libc::c_int)
3934 -> libc::c_uchar;
3935 pub fn str_add_column(lp: *mut lprec,
3936 col_string: *mut libc::c_char)
3937 -> libc::c_uchar;
3938 pub fn set_column(lp: *mut lprec, colnr: libc::c_int,
3939 column: *mut libc::c_double)
3940 -> libc::c_uchar;
3941 pub fn set_columnex(lp: *mut lprec, colnr: libc::c_int,
3942 count: libc::c_int,
3943 column: *mut libc::c_double,
3944 rowno: *mut libc::c_int)
3945 -> libc::c_uchar;
3946 pub fn column_in_lp(lp: *mut lprec, column: *mut libc::c_double)
3947 -> libc::c_int;
3948 pub fn get_columnex(lp: *mut lprec, colnr: libc::c_int,
3949 column: *mut libc::c_double,
3950 nzrow: *mut libc::c_int)
3951 -> libc::c_int;
3952 pub fn get_column(lp: *mut lprec, colnr: libc::c_int,
3953 column: *mut libc::c_double)
3954 -> libc::c_uchar;
3955 pub fn del_column(lp: *mut lprec, colnr: libc::c_int)
3956 -> libc::c_uchar;
3957 pub fn del_columnex(lp: *mut lprec, colmap: *mut LLrec)
3958 -> libc::c_uchar;
3959 pub fn set_mat(lp: *mut lprec, rownr: libc::c_int,
3960 colnr: libc::c_int,
3961 value: libc::c_double)
3962 -> libc::c_uchar;
3963 pub fn get_mat(lp: *mut lprec, rownr: libc::c_int,
3964 colnr: libc::c_int) -> libc::c_double;
3965 pub fn get_mat_byindex(lp: *mut lprec, matindex: libc::c_int,
3966 isrow: libc::c_uchar,
3967 adjustsign: libc::c_uchar)
3968 -> libc::c_double;
3969 pub fn get_nonzeros(lp: *mut lprec) -> libc::c_int;
3970 pub fn set_bounds_tighter(lp: *mut lprec,
3971 tighten: libc::c_uchar);
3972 pub fn get_bounds(lp: *mut lprec, column: libc::c_int,
3973 lower: *mut libc::c_double,
3974 upper: *mut libc::c_double)
3975 -> libc::c_uchar;
3976 pub fn get_bounds_tighter(lp: *mut lprec) -> libc::c_uchar;
3977 pub fn set_upbo(lp: *mut lprec, colnr: libc::c_int,
3978 value: libc::c_double)
3979 -> libc::c_uchar;
3980 pub fn get_upbo(lp: *mut lprec, colnr: libc::c_int)
3981 -> libc::c_double;
3982 pub fn set_lowbo(lp: *mut lprec, colnr: libc::c_int,
3983 value: libc::c_double)
3984 -> libc::c_uchar;
3985 pub fn get_lowbo(lp: *mut lprec, colnr: libc::c_int)
3986 -> libc::c_double;
3987 pub fn set_bounds(lp: *mut lprec, colnr: libc::c_int,
3988 lower: libc::c_double,
3989 upper: libc::c_double)
3990 -> libc::c_uchar;
3991 pub fn set_unbounded(lp: *mut lprec, colnr: libc::c_int)
3992 -> libc::c_uchar;
3993 pub fn is_unbounded(lp: *mut lprec, colnr: libc::c_int)
3994 -> libc::c_uchar;
3995 pub fn set_int(lp: *mut lprec, colnr: libc::c_int,
3996 must_be_int: libc::c_uchar)
3997 -> libc::c_uchar;
3998 pub fn is_int(lp: *mut lprec, colnr: libc::c_int)
3999 -> libc::c_uchar;
4000 pub fn set_binary(lp: *mut lprec, colnr: libc::c_int,
4001 must_be_bin: libc::c_uchar)
4002 -> libc::c_uchar;
4003 pub fn is_binary(lp: *mut lprec, colnr: libc::c_int)
4004 -> libc::c_uchar;
4005 pub fn set_semicont(lp: *mut lprec, colnr: libc::c_int,
4006 must_be_sc: libc::c_uchar)
4007 -> libc::c_uchar;
4008 pub fn is_semicont(lp: *mut lprec, colnr: libc::c_int)
4009 -> libc::c_uchar;
4010 pub fn is_negative(lp: *mut lprec, colnr: libc::c_int)
4011 -> libc::c_uchar;
4012 pub fn set_var_weights(lp: *mut lprec,
4013 weights: *mut libc::c_double)
4014 -> libc::c_uchar;
4015 pub fn get_var_priority(lp: *mut lprec, colnr: libc::c_int)
4016 -> libc::c_int;
4017 pub fn set_pseudocosts(lp: *mut lprec,
4018 clower: *mut libc::c_double,
4019 cupper: *mut libc::c_double,
4020 updatelimit: *mut libc::c_int)
4021 -> libc::c_uchar;
4022 pub fn get_pseudocosts(lp: *mut lprec,
4023 clower: *mut libc::c_double,
4024 cupper: *mut libc::c_double,
4025 updatelimit: *mut libc::c_int)
4026 -> libc::c_uchar;
4027 pub fn add_SOS(lp: *mut lprec, name: *mut libc::c_char,
4028 sostype: libc::c_int,
4029 priority: libc::c_int,
4030 count: libc::c_int,
4031 sosvars: *mut libc::c_int,
4032 weights: *mut libc::c_double)
4033 -> libc::c_int;
4034 pub fn is_SOS_var(lp: *mut lprec, colnr: libc::c_int)
4035 -> libc::c_uchar;
4036 pub fn set_row_name(lp: *mut lprec, rownr: libc::c_int,
4037 new_name: *mut libc::c_char)
4038 -> libc::c_uchar;
4039 pub fn get_row_name(lp: *mut lprec, rownr: libc::c_int)
4040 -> *mut libc::c_char;
4041 pub fn get_origrow_name(lp: *mut lprec, rownr: libc::c_int)
4042 -> *mut libc::c_char;
4043 pub fn set_col_name(lp: *mut lprec, colnr: libc::c_int,
4044 new_name: *mut libc::c_char)
4045 -> libc::c_uchar;
4046 pub fn get_col_name(lp: *mut lprec, colnr: libc::c_int)
4047 -> *mut libc::c_char;
4048 pub fn get_origcol_name(lp: *mut lprec, colnr: libc::c_int)
4049 -> *mut libc::c_char;
4050 pub fn unscale(lp: *mut lprec);
4051 pub fn set_preferdual(lp: *mut lprec, dodual: libc::c_uchar);
4052 pub fn set_simplextype(lp: *mut lprec,
4053 simplextype: libc::c_int);
4054 pub fn get_simplextype(lp: *mut lprec) -> libc::c_int;
4055 pub fn default_basis(lp: *mut lprec);
4056 pub fn set_basiscrash(lp: *mut lprec, mode: libc::c_int);
4057 pub fn get_basiscrash(lp: *mut lprec) -> libc::c_int;
4058 pub fn set_basisvar(lp: *mut lprec, basisPos: libc::c_int,
4059 enteringCol: libc::c_int)
4060 -> libc::c_int;
4061 pub fn set_basis(lp: *mut lprec, bascolumn: *mut libc::c_int,
4062 nonbasic: libc::c_uchar)
4063 -> libc::c_uchar;
4064 pub fn get_basis(lp: *mut lprec, bascolumn: *mut libc::c_int,
4065 nonbasic: libc::c_uchar)
4066 -> libc::c_uchar;
4067 pub fn reset_basis(lp: *mut lprec);
4068 pub fn guess_basis(lp: *mut lprec,
4069 guessvector: *mut libc::c_double,
4070 basisvector: *mut libc::c_int)
4071 -> libc::c_uchar;
4072 pub fn is_feasible(lp: *mut lprec, values: *mut libc::c_double,
4073 threshold: libc::c_double)
4074 -> libc::c_uchar;
4075 pub fn solve(lp: *mut lprec) -> libc::c_int;
4076 pub fn time_elapsed(lp: *mut lprec) -> libc::c_double;
4077 pub fn put_bb_nodefunc(lp: *mut lprec, newnode: lphandleint_intfunc,
4078 bbnodehandle: *mut libc::c_void);
4079 pub fn put_bb_branchfunc(lp: *mut lprec, newbranch: lphandleint_intfunc,
4080 bbbranchhandle: *mut libc::c_void);
4081 pub fn put_abortfunc(lp: *mut lprec, newctrlc: lphandle_intfunc,
4082 ctrlchandle: *mut libc::c_void);
4083 pub fn put_logfunc(lp: *mut lprec, newlog: lphandlestr_func,
4084 loghandle: *mut libc::c_void);
4085 pub fn put_msgfunc(lp: *mut lprec, newmsg: lphandleint_func,
4086 msghandle: *mut libc::c_void,
4087 mask: libc::c_int);
4088 pub fn get_primal_solution(lp: *mut lprec,
4089 pv: *mut libc::c_double)
4090 -> libc::c_uchar;
4091 pub fn get_ptr_primal_solution(lp: *mut lprec,
4092 pv: *mut *mut libc::c_double)
4093 -> libc::c_uchar;
4094 pub fn get_dual_solution(lp: *mut lprec,
4095 rc: *mut libc::c_double)
4096 -> libc::c_uchar;
4097 pub fn get_ptr_dual_solution(lp: *mut lprec,
4098 rc: *mut *mut libc::c_double)
4099 -> libc::c_uchar;
4100 pub fn get_lambda(lp: *mut lprec, lambda: *mut libc::c_double)
4101 -> libc::c_uchar;
4102 pub fn get_ptr_lambda(lp: *mut lprec,
4103 lambda: *mut *mut libc::c_double)
4104 -> libc::c_uchar;
4105 pub fn read_MPS(filename: *mut libc::c_char,
4106 options: libc::c_int) -> *mut lprec;
4107 pub fn read_mps(filename: *mut libc::FILE, options: libc::c_int)
4108 -> *mut lprec;
4109 pub fn read_freeMPS(filename: *mut libc::c_char,
4110 options: libc::c_int) -> *mut lprec;
4111 pub fn read_freemps(filename: *mut libc::FILE, options: libc::c_int)
4112 -> *mut lprec;
4113 pub fn write_mps(lp: *mut lprec, filename: *mut libc::c_char)
4114 -> libc::c_uchar;
4115 pub fn write_MPS(lp: *mut lprec, output: *mut libc::FILE)
4116 -> libc::c_uchar;
4117 pub fn write_freemps(lp: *mut lprec,
4118 filename: *mut libc::c_char)
4119 -> libc::c_uchar;
4120 pub fn write_freeMPS(lp: *mut lprec, output: *mut libc::FILE)
4121 -> libc::c_uchar;
4122 pub fn write_lp(lp: *mut lprec, filename: *mut libc::c_char)
4123 -> libc::c_uchar;
4124 pub fn write_LP(lp: *mut lprec, output: *mut libc::FILE)
4125 -> libc::c_uchar;
4126 pub fn LP_readhandle(lp: *mut *mut lprec, filename: *mut libc::FILE,
4127 verbose: libc::c_int,
4128 lp_name: *mut libc::c_char)
4129 -> libc::c_uchar;
4130 pub fn read_lp(filename: *mut libc::FILE, verbose: libc::c_int,
4131 lp_name: *mut libc::c_char) -> *mut lprec;
4132 pub fn read_LP(filename: *mut libc::c_char,
4133 verbose: libc::c_int,
4134 lp_name: *mut libc::c_char) -> *mut lprec;
4135 pub fn write_basis(lp: *mut lprec, filename: *mut libc::c_char)
4136 -> libc::c_uchar;
4137 pub fn read_basis(lp: *mut lprec, filename: *mut libc::c_char,
4138 info: *mut libc::c_char)
4139 -> libc::c_uchar;
4140 pub fn write_params(lp: *mut lprec, filename: *mut libc::c_char,
4141 options: *mut libc::c_char)
4142 -> libc::c_uchar;
4143 pub fn read_params(lp: *mut lprec, filename: *mut libc::c_char,
4144 options: *mut libc::c_char)
4145 -> libc::c_uchar;
4146 pub fn reset_params(lp: *mut lprec);
4147 pub fn print_lp(lp: *mut lprec);
4148 pub fn print_tableau(lp: *mut lprec);
4149 pub fn print_objective(lp: *mut lprec);
4150 pub fn print_solution(lp: *mut lprec, columns: libc::c_int);
4151 pub fn print_constraints(lp: *mut lprec, columns: libc::c_int);
4152 pub fn print_duals(lp: *mut lprec);
4153 pub fn print_scales(lp: *mut lprec);
4154 pub fn print_str(lp: *mut lprec, str: *mut libc::c_char);
4155 pub fn set_outputstream(lp: *mut lprec, stream: *mut libc::FILE);
4156 pub fn set_outputfile(lp: *mut lprec,
4157 filename: *mut libc::c_char)
4158 -> libc::c_uchar;
4159 pub fn set_verbose(lp: *mut lprec, verbose: libc::c_int);
4160 pub fn get_verbose(lp: *mut lprec) -> libc::c_int;
4161 pub fn set_timeout(lp: *mut lprec, sectimeout: libc::c_long);
4162 pub fn get_timeout(lp: *mut lprec) -> libc::c_long;
4163 pub fn set_print_sol(lp: *mut lprec, print_sol: libc::c_int);
4164 pub fn get_print_sol(lp: *mut lprec) -> libc::c_int;
4165 pub fn set_debug(lp: *mut lprec, debug: libc::c_uchar);
4166 pub fn is_debug(lp: *mut lprec) -> libc::c_uchar;
4167 pub fn set_trace(lp: *mut lprec, trace: libc::c_uchar);
4168 pub fn is_trace(lp: *mut lprec) -> libc::c_uchar;
4169 pub fn print_debugdump(lp: *mut lprec,
4170 filename: *mut libc::c_char)
4171 -> libc::c_uchar;
4172 pub fn set_anti_degen(lp: *mut lprec, anti_degen: libc::c_int);
4173 pub fn get_anti_degen(lp: *mut lprec) -> libc::c_int;
4174 pub fn is_anti_degen(lp: *mut lprec, testmask: libc::c_int)
4175 -> libc::c_uchar;
4176 pub fn set_presolve(lp: *mut lprec, presolvemode: libc::c_int,
4177 maxloops: libc::c_int);
4178 pub fn get_presolve(lp: *mut lprec) -> libc::c_int;
4179 pub fn get_presolveloops(lp: *mut lprec) -> libc::c_int;
4180 pub fn is_presolve(lp: *mut lprec, testmask: libc::c_int)
4181 -> libc::c_uchar;
4182 pub fn get_orig_index(lp: *mut lprec, lp_index: libc::c_int)
4183 -> libc::c_int;
4184 pub fn get_lp_index(lp: *mut lprec, orig_index: libc::c_int)
4185 -> libc::c_int;
4186 pub fn set_maxpivot(lp: *mut lprec, max_num_inv: libc::c_int);
4187 pub fn get_maxpivot(lp: *mut lprec) -> libc::c_int;
4188 pub fn set_obj_bound(lp: *mut lprec, obj_bound: libc::c_double);
4189 pub fn get_obj_bound(lp: *mut lprec) -> libc::c_double;
4190 pub fn set_mip_gap(lp: *mut lprec, absolute: libc::c_uchar,
4191 mip_gap: libc::c_double);
4192 pub fn get_mip_gap(lp: *mut lprec, absolute: libc::c_uchar)
4193 -> libc::c_double;
4194 pub fn set_bb_rule(lp: *mut lprec, bb_rule: libc::c_int);
4195 pub fn get_bb_rule(lp: *mut lprec) -> libc::c_int;
4196 pub fn set_var_branch(lp: *mut lprec, colnr: libc::c_int,
4197 branch_mode: libc::c_int)
4198 -> libc::c_uchar;
4199 pub fn get_var_branch(lp: *mut lprec, colnr: libc::c_int)
4200 -> libc::c_int;
4201 pub fn is_infinite(lp: *mut lprec, value: libc::c_double)
4202 -> libc::c_uchar;
4203 pub fn set_infinite(lp: *mut lprec, infinite: libc::c_double);
4204 pub fn get_infinite(lp: *mut lprec) -> libc::c_double;
4205 pub fn set_epsint(lp: *mut lprec, epsint: libc::c_double);
4206 pub fn get_epsint(lp: *mut lprec) -> libc::c_double;
4207 pub fn set_epsb(lp: *mut lprec, epsb: libc::c_double);
4208 pub fn get_epsb(lp: *mut lprec) -> libc::c_double;
4209 pub fn set_epsd(lp: *mut lprec, epsd: libc::c_double);
4210 pub fn get_epsd(lp: *mut lprec) -> libc::c_double;
4211 pub fn set_epsel(lp: *mut lprec, epsel: libc::c_double);
4212 pub fn get_epsel(lp: *mut lprec) -> libc::c_double;
4213 pub fn set_epslevel(lp: *mut lprec, epslevel: libc::c_int)
4214 -> libc::c_uchar;
4215 pub fn set_scaling(lp: *mut lprec, scalemode: libc::c_int);
4216 pub fn get_scaling(lp: *mut lprec) -> libc::c_int;
4217 pub fn is_scalemode(lp: *mut lprec, testmask: libc::c_int)
4218 -> libc::c_uchar;
4219 pub fn is_scaletype(lp: *mut lprec, scaletype: libc::c_int)
4220 -> libc::c_uchar;
4221 pub fn is_integerscaling(lp: *mut lprec) -> libc::c_uchar;
4222 pub fn set_scalelimit(lp: *mut lprec,
4223 scalelimit: libc::c_double);
4224 pub fn get_scalelimit(lp: *mut lprec) -> libc::c_double;
4225 pub fn set_improve(lp: *mut lprec, improve: libc::c_int);
4226 pub fn get_improve(lp: *mut lprec) -> libc::c_int;
4227 pub fn set_pivoting(lp: *mut lprec, piv_rule: libc::c_int);
4228 pub fn get_pivoting(lp: *mut lprec) -> libc::c_int;
4229 pub fn set_partialprice(lp: *mut lprec, blockcount: libc::c_int,
4230 blockstart: *mut libc::c_int,
4231 isrow: libc::c_uchar)
4232 -> libc::c_uchar;
4233 pub fn get_partialprice(lp: *mut lprec,
4234 blockcount: *mut libc::c_int,
4235 blockstart: *mut libc::c_int,
4236 isrow: libc::c_uchar);
4237 pub fn set_multiprice(lp: *mut lprec,
4238 multiblockdiv: libc::c_int)
4239 -> libc::c_uchar;
4240 pub fn get_multiprice(lp: *mut lprec, getabssize: libc::c_uchar)
4241 -> libc::c_int;
4242 pub fn is_use_names(lp: *mut lprec, isrow: libc::c_uchar)
4243 -> libc::c_uchar;
4244 pub fn set_use_names(lp: *mut lprec, isrow: libc::c_uchar,
4245 use_names: libc::c_uchar);
4246 pub fn get_nameindex(lp: *mut lprec, varname: *mut libc::c_char,
4247 isrow: libc::c_uchar)
4248 -> libc::c_int;
4249 pub fn is_piv_mode(lp: *mut lprec, testmask: libc::c_int)
4250 -> libc::c_uchar;
4251 pub fn is_piv_rule(lp: *mut lprec, rule: libc::c_int)
4252 -> libc::c_uchar;
4253 pub fn set_break_at_first(lp: *mut lprec,
4254 break_at_first: libc::c_uchar);
4255 pub fn is_break_at_first(lp: *mut lprec) -> libc::c_uchar;
4256 pub fn set_bb_floorfirst(lp: *mut lprec,
4257 bb_floorfirst: libc::c_int);
4258 pub fn get_bb_floorfirst(lp: *mut lprec) -> libc::c_int;
4259 pub fn set_bb_depthlimit(lp: *mut lprec,
4260 bb_maxlevel: libc::c_int);
4261 pub fn get_bb_depthlimit(lp: *mut lprec) -> libc::c_int;
4262 pub fn set_break_at_value(lp: *mut lprec,
4263 break_at_value: libc::c_double);
4264 pub fn get_break_at_value(lp: *mut lprec) -> libc::c_double;
4265 pub fn set_negrange(lp: *mut lprec, negrange: libc::c_double);
4266 pub fn get_negrange(lp: *mut lprec) -> libc::c_double;
4267 pub fn set_epsperturb(lp: *mut lprec,
4268 epsperturb: libc::c_double);
4269 pub fn get_epsperturb(lp: *mut lprec) -> libc::c_double;
4270 pub fn set_epspivot(lp: *mut lprec, epspivot: libc::c_double);
4271 pub fn get_epspivot(lp: *mut lprec) -> libc::c_double;
4272 pub fn get_max_level(lp: *mut lprec) -> libc::c_int;
4273 pub fn get_total_nodes(lp: *mut lprec) -> libc::c_longlong;
4274 pub fn get_total_iter(lp: *mut lprec) -> libc::c_longlong;
4275 pub fn get_objective(lp: *mut lprec) -> libc::c_double;
4276 pub fn get_working_objective(lp: *mut lprec) -> libc::c_double;
4277 pub fn get_var_primalresult(lp: *mut lprec, index: libc::c_int)
4278 -> libc::c_double;
4279 pub fn get_var_dualresult(lp: *mut lprec, index: libc::c_int)
4280 -> libc::c_double;
4281 pub fn get_variables(lp: *mut lprec, var: *mut libc::c_double)
4282 -> libc::c_uchar;
4283 pub fn get_ptr_variables(lp: *mut lprec,
4284 var: *mut *mut libc::c_double)
4285 -> libc::c_uchar;
4286 pub fn get_constraints(lp: *mut lprec,
4287 constr: *mut libc::c_double)
4288 -> libc::c_uchar;
4289 pub fn get_ptr_constraints(lp: *mut lprec,
4290 constr: *mut *mut libc::c_double)
4291 -> libc::c_uchar;
4292 pub fn get_sensitivity_rhs(lp: *mut lprec,
4293 duals: *mut libc::c_double,
4294 dualsfrom: *mut libc::c_double,
4295 dualstill: *mut libc::c_double)
4296 -> libc::c_uchar;
4297 pub fn get_ptr_sensitivity_rhs(lp: *mut lprec,
4298 duals: *mut *mut libc::c_double,
4299 dualsfrom:
4300 *mut *mut libc::c_double,
4301 dualstill:
4302 *mut *mut libc::c_double)
4303 -> libc::c_uchar;
4304 pub fn get_sensitivity_obj(lp: *mut lprec,
4305 objfrom: *mut libc::c_double,
4306 objtill: *mut libc::c_double)
4307 -> libc::c_uchar;
4308 pub fn get_sensitivity_objex(lp: *mut lprec,
4309 objfrom: *mut libc::c_double,
4310 objtill: *mut libc::c_double,
4311 objfromvalue: *mut libc::c_double,
4312 objtillvalue: *mut libc::c_double)
4313 -> libc::c_uchar;
4314 pub fn get_ptr_sensitivity_obj(lp: *mut lprec,
4315 objfrom:
4316 *mut *mut libc::c_double,
4317 objtill:
4318 *mut *mut libc::c_double)
4319 -> libc::c_uchar;
4320 pub fn get_ptr_sensitivity_objex(lp: *mut lprec,
4321 objfrom:
4322 *mut *mut libc::c_double,
4323 objtill:
4324 *mut *mut libc::c_double,
4325 objfromvalue:
4326 *mut *mut libc::c_double,
4327 objtillvalue:
4328 *mut *mut libc::c_double)
4329 -> libc::c_uchar;
4330 pub fn set_solutionlimit(lp: *mut lprec, limit: libc::c_int);
4331 pub fn get_solutionlimit(lp: *mut lprec) -> libc::c_int;
4332 pub fn get_solutioncount(lp: *mut lprec) -> libc::c_int;
4333 pub fn get_Norig_rows(lp: *mut lprec) -> libc::c_int;
4334 pub fn get_Nrows(lp: *mut lprec) -> libc::c_int;
4335 pub fn get_Lrows(lp: *mut lprec) -> libc::c_int;
4336 pub fn get_Norig_columns(lp: *mut lprec) -> libc::c_int;
4337 pub fn get_Ncolumns(lp: *mut lprec) -> libc::c_int;
4338 pub fn MPS_readex(newlp: *mut *mut lprec,
4339 userhandle: *mut libc::c_void,
4340 read_modeldata: read_modeldata_func,
4341 typeMPS: libc::c_int,
4342 options: libc::c_int)
4343 -> libc::c_uchar;
4344 pub fn read_lpex(userhandle: *mut libc::c_void,
4345 read_modeldata: read_modeldata_func,
4346 verbose: libc::c_int,
4347 lp_name: *mut libc::c_char) -> *mut lprec;
4348 pub fn write_lpex(lp: *mut lprec, userhandle: *mut libc::c_void,
4349 write_modeldata: write_modeldata_func)
4350 -> libc::c_uchar;
4351 pub fn read_mpsex(userhandle: *mut libc::c_void,
4352 read_modeldata: read_modeldata_func,
4353 options: libc::c_int) -> *mut lprec;
4354 pub fn read_freempsex(userhandle: *mut libc::c_void,
4355 read_modeldata: read_modeldata_func,
4356 options: libc::c_int) -> *mut lprec;
4357 pub fn MPS_writefileex(lp: *mut lprec, typeMPS: libc::c_int,
4358 userhandle: *mut libc::c_void,
4359 write_modeldata: write_modeldata_func)
4360 -> libc::c_uchar;
4361 pub fn set_callbacks(lp: *mut lprec) -> libc::c_uchar;
4362 pub fn yieldformessages(lp: *mut lprec) -> libc::c_int;
4363 pub fn userabort(lp: *mut lprec, message: libc::c_int)
4364 -> libc::c_uchar;
4365 pub fn append_rows(lp: *mut lprec, deltarows: libc::c_int)
4366 -> libc::c_uchar;
4367 pub fn append_columns(lp: *mut lprec, deltacolumns: libc::c_int)
4368 -> libc::c_uchar;
4369 pub fn inc_rows(lp: *mut lprec, delta: libc::c_int);
4370 pub fn inc_columns(lp: *mut lprec, delta: libc::c_int);
4371 pub fn init_rowcol_names(lp: *mut lprec) -> libc::c_uchar;
4372 pub fn inc_row_space(lp: *mut lprec, deltarows: libc::c_int)
4373 -> libc::c_uchar;
4374 pub fn inc_col_space(lp: *mut lprec, deltacols: libc::c_int)
4375 -> libc::c_uchar;
4376 pub fn shift_rowcoldata(lp: *mut lprec, base: libc::c_int,
4377 delta: libc::c_int, usedmap: *mut LLrec,
4378 isrow: libc::c_uchar)
4379 -> libc::c_uchar;
4380 pub fn shift_basis(lp: *mut lprec, base: libc::c_int,
4381 delta: libc::c_int, usedmap: *mut LLrec,
4382 isrow: libc::c_uchar)
4383 -> libc::c_uchar;
4384 pub fn shift_rowdata(lp: *mut lprec, base: libc::c_int,
4385 delta: libc::c_int, usedmap: *mut LLrec)
4386 -> libc::c_uchar;
4387 pub fn shift_coldata(lp: *mut lprec, base: libc::c_int,
4388 delta: libc::c_int, usedmap: *mut LLrec)
4389 -> libc::c_uchar;
4390 pub fn is_chsign(lp: *mut lprec, rownr: libc::c_int)
4391 -> libc::c_uchar;
4392 pub fn inc_lag_space(lp: *mut lprec, deltarows: libc::c_int,
4393 ignoreMAT: libc::c_uchar)
4394 -> libc::c_uchar;
4395 pub fn make_lag(server: *mut lprec) -> *mut lprec;
4396 pub fn get_rh_upper(lp: *mut lprec, rownr: libc::c_int)
4397 -> libc::c_double;
4398 pub fn get_rh_lower(lp: *mut lprec, rownr: libc::c_int)
4399 -> libc::c_double;
4400 pub fn set_rh_upper(lp: *mut lprec, rownr: libc::c_int,
4401 value: libc::c_double)
4402 -> libc::c_uchar;
4403 pub fn set_rh_lower(lp: *mut lprec, rownr: libc::c_int,
4404 value: libc::c_double)
4405 -> libc::c_uchar;
4406 pub fn bin_count(lp: *mut lprec, working: libc::c_uchar)
4407 -> libc::c_int;
4408 pub fn MIP_count(lp: *mut lprec) -> libc::c_int;
4409 pub fn SOS_count(lp: *mut lprec) -> libc::c_int;
4410 pub fn GUB_count(lp: *mut lprec) -> libc::c_int;
4411 pub fn identify_GUB(lp: *mut lprec, mark: libc::c_uchar)
4412 -> libc::c_int;
4413 pub fn prepare_GUB(lp: *mut lprec) -> libc::c_int;
4414 pub fn refactRecent(lp: *mut lprec) -> libc::c_uchar;
4415 pub fn check_if_less(lp: *mut lprec, x: libc::c_double,
4416 y: libc::c_double,
4417 variable: libc::c_int)
4418 -> libc::c_uchar;
4419 pub fn feasiblePhase1(lp: *mut lprec, epsvalue: libc::c_double)
4420 -> libc::c_uchar;
4421 pub fn free_duals(lp: *mut lprec);
4422 pub fn initialize_solution(lp: *mut lprec,
4423 shiftbounds: libc::c_uchar);
4424 pub fn recompute_solution(lp: *mut lprec,
4425 shiftbounds: libc::c_uchar);
4426 pub fn verify_solution(lp: *mut lprec, reinvert: libc::c_uchar,
4427 info: *mut libc::c_char)
4428 -> libc::c_int;
4429 pub fn check_solution(lp: *mut lprec, lastcolumn: libc::c_int,
4430 solution: *mut libc::c_double,
4431 upbo: *mut libc::c_double,
4432 lowbo: *mut libc::c_double,
4433 tolerance: libc::c_double)
4434 -> libc::c_int;
4435 pub fn is_fixedvar(lp: *mut lprec, variable: libc::c_int)
4436 -> libc::c_uchar;
4437 pub fn is_splitvar(lp: *mut lprec, colnr: libc::c_int)
4438 -> libc::c_uchar;
4439 pub fn set_action(actionvar: *mut libc::c_int,
4440 actionmask: libc::c_int);
4441 pub fn clear_action(actionvar: *mut libc::c_int,
4442 actionmask: libc::c_int);
4443 pub fn is_action(actionvar: libc::c_int,
4444 testmask: libc::c_int)
4445 -> libc::c_uchar;
4446 pub fn is_bb_rule(lp: *mut lprec, bb_rule: libc::c_int)
4447 -> libc::c_uchar;
4448 pub fn is_bb_mode(lp: *mut lprec, bb_mask: libc::c_int)
4449 -> libc::c_uchar;
4450 pub fn get_piv_rule(lp: *mut lprec) -> libc::c_int;
4451 pub fn get_str_piv_rule(rule: libc::c_int)
4452 -> *mut libc::c_char;
4453 pub fn set_var_priority(lp: *mut lprec) -> libc::c_uchar;
4454 pub fn find_sc_bbvar(lp: *mut lprec, count: *mut libc::c_int)
4455 -> libc::c_int;
4456 pub fn find_sos_bbvar(lp: *mut lprec, count: *mut libc::c_int,
4457 intsos: libc::c_uchar)
4458 -> libc::c_int;
4459 pub fn find_int_bbvar(lp: *mut lprec, count: *mut libc::c_int,
4460 BB: *mut BBrec,
4461 isfeasible: *mut libc::c_uchar)
4462 -> libc::c_int;
4463 pub fn compute_dualslacks(lp: *mut lprec, target: libc::c_int,
4464 dvalues: *mut *mut libc::c_double,
4465 nzdvalues: *mut *mut libc::c_int,
4466 dosum: libc::c_uchar)
4467 -> libc::c_double;
4468 pub fn solution_is_int(lp: *mut lprec, index: libc::c_int,
4469 checkfixed: libc::c_uchar)
4470 -> libc::c_uchar;
4471 pub fn bb_better(lp: *mut lprec, target: libc::c_int,
4472 mode: libc::c_int) -> libc::c_uchar;
4473 pub fn construct_solution(lp: *mut lprec,
4474 target: *mut libc::c_double);
4475 pub fn transfer_solution_var(lp: *mut lprec,
4476 uservar: libc::c_int);
4477 pub fn construct_duals(lp: *mut lprec) -> libc::c_uchar;
4478 pub fn construct_sensitivity_duals(lp: *mut lprec)
4479 -> libc::c_uchar;
4480 pub fn construct_sensitivity_obj(lp: *mut lprec)
4481 -> libc::c_uchar;
4482 pub fn add_GUB(lp: *mut lprec, name: *mut libc::c_char,
4483 priority: libc::c_int,
4484 count: libc::c_int,
4485 sosvars: *mut libc::c_int)
4486 -> libc::c_int;
4487 pub fn push_basis(lp: *mut lprec, basisvar: *mut libc::c_int,
4488 isbasic: *mut libc::c_uchar,
4489 islower: *mut libc::c_uchar) -> *mut basisrec;
4490 pub fn compare_basis(lp: *mut lprec) -> libc::c_uchar;
4491 pub fn restore_basis(lp: *mut lprec) -> libc::c_uchar;
4492 pub fn pop_basis(lp: *mut lprec, restore: libc::c_uchar)
4493 -> libc::c_uchar;
4494 pub fn is_BasisReady(lp: *mut lprec) -> libc::c_uchar;
4495 pub fn is_slackbasis(lp: *mut lprec) -> libc::c_uchar;
4496 pub fn verify_basis(lp: *mut lprec) -> libc::c_uchar;
4497 pub fn unload_basis(lp: *mut lprec, restorelast: libc::c_uchar)
4498 -> libc::c_int;
4499 pub fn perturb_bounds(lp: *mut lprec, perturbed: *mut BBrec,
4500 doRows: libc::c_uchar,
4501 doCols: libc::c_uchar,
4502 includeFIXED: libc::c_uchar)
4503 -> libc::c_int;
4504 pub fn validate_bounds(lp: *mut lprec,
4505 upbo: *mut libc::c_double,
4506 lowbo: *mut libc::c_double)
4507 -> libc::c_uchar;
4508 pub fn impose_bounds(lp: *mut lprec, upbo: *mut libc::c_double,
4509 lowbo: *mut libc::c_double)
4510 -> libc::c_uchar;
4511 pub fn unload_BB(lp: *mut lprec) -> libc::c_int;
4512 pub fn feasibilityOffset(lp: *mut lprec, isdual: libc::c_uchar)
4513 -> libc::c_double;
4514 pub fn isP1extra(lp: *mut lprec) -> libc::c_uchar;
4515 pub fn get_refactfrequency(lp: *mut lprec,
4516 _final: libc::c_uchar)
4517 -> libc::c_double;
4518 pub fn findBasicFixedvar(lp: *mut lprec, afternr: libc::c_int,
4519 slacksonly: libc::c_uchar)
4520 -> libc::c_int;
4521 pub fn isBasisVarFeasible(lp: *mut lprec, tol: libc::c_double,
4522 basis_row: libc::c_int)
4523 -> libc::c_uchar;
4524 pub fn isPrimalFeasible(lp: *mut lprec, tol: libc::c_double,
4525 infeasibles: *mut libc::c_int,
4526 feasibilitygap: *mut libc::c_double)
4527 -> libc::c_uchar;
4528 pub fn isDualFeasible(lp: *mut lprec, tol: libc::c_double,
4529 boundflips: *mut libc::c_int,
4530 infeasibles: *mut libc::c_int,
4531 feasibilitygap: *mut libc::c_double)
4532 -> libc::c_uchar;
4533 pub fn preprocess(lp: *mut lprec) -> libc::c_int;
4534 pub fn postprocess(lp: *mut lprec);
4535 pub fn performiteration(lp: *mut lprec, rownr: libc::c_int,
4536 varin: libc::c_int,
4537 theta: libc::c_double,
4538 primal: libc::c_uchar,
4539 allowminit: libc::c_uchar,
4540 prow: *mut libc::c_double,
4541 nzprow: *mut libc::c_int,
4542 pcol: *mut libc::c_double,
4543 nzpcol: *mut libc::c_int,
4544 boundswaps: *mut libc::c_int)
4545 -> libc::c_uchar;
4546 pub fn transfer_solution(lp: *mut lprec,
4547 dofinal: libc::c_uchar);
4548 pub fn scaled_floor(lp: *mut lprec, colnr: libc::c_int,
4549 value: libc::c_double,
4550 epsscale: libc::c_double)
4551 -> libc::c_double;
4552 pub fn scaled_ceil(lp: *mut lprec, colnr: libc::c_int,
4553 value: libc::c_double,
4554 epsscale: libc::c_double)
4555 -> libc::c_double;
4556 pub fn varmap_lock(lp: *mut lprec);
4557 pub fn varmap_clear(lp: *mut lprec);
4558 pub fn varmap_canunlock(lp: *mut lprec) -> libc::c_uchar;
4559 pub fn varmap_addconstraint(lp: *mut lprec);
4560 pub fn varmap_addcolumn(lp: *mut lprec);
4561 pub fn varmap_delete(lp: *mut lprec, base: libc::c_int,
4562 delta: libc::c_int, varmap: *mut LLrec);
4563 pub fn varmap_compact(lp: *mut lprec, prev_rows: libc::c_int,
4564 prev_cols: libc::c_int);
4565 pub fn varmap_validate(lp: *mut lprec, varno: libc::c_int)
4566 -> libc::c_uchar;
4567 pub fn del_varnameex(lp: *mut lprec, namelist: *mut *mut hashelem,
4568 items: libc::c_int, ht: *mut hashtable,
4569 varnr: libc::c_int, varmap: *mut LLrec)
4570 -> libc::c_uchar;
4571 pub fn init_pseudocost(lp: *mut lprec, pseudotype: libc::c_int)
4572 -> *mut BBPSrec;
4573 pub fn free_pseudocost(lp: *mut lprec);
4574 pub fn get_pseudorange(pc: *mut BBPSrec, mipvar: libc::c_int,
4575 varcode: libc::c_int)
4576 -> libc::c_double;
4577 pub fn update_pseudocost(pc: *mut BBPSrec, mipvar: libc::c_int,
4578 varcode: libc::c_int,
4579 capupper: libc::c_uchar,
4580 varsol: libc::c_double);
4581 pub fn get_pseudobranchcost(pc: *mut BBPSrec,
4582 mipvar: libc::c_int,
4583 dofloor: libc::c_uchar)
4584 -> libc::c_double;
4585 pub fn get_pseudonodecost(pc: *mut BBPSrec, mipvar: libc::c_int,
4586 vartype: libc::c_int,
4587 varsol: libc::c_double)
4588 -> libc::c_double;
4589 pub fn set_OF_override(lp: *mut lprec,
4590 ofVector: *mut libc::c_double);
4591 pub fn set_OF_p1extra(lp: *mut lprec, p1extra: libc::c_double);
4592 pub fn unset_OF_p1extra(lp: *mut lprec);
4593 pub fn modifyOF1(lp: *mut lprec, index: libc::c_int,
4594 ofValue: *mut libc::c_double,
4595 mult: libc::c_double)
4596 -> libc::c_uchar;
4597 pub fn get_OF_active(lp: *mut lprec, varnr: libc::c_int,
4598 mult: libc::c_double)
4599 -> libc::c_double;
4600 pub fn is_OF_nz(lp: *mut lprec, colnr: libc::c_int)
4601 -> libc::c_uchar;
4602 pub fn get_basisOF(lp: *mut lprec, coltarget: *mut libc::c_int,
4603 crow: *mut libc::c_double,
4604 colno: *mut libc::c_int)
4605 -> libc::c_int;
4606 pub fn get_basiscolumn(lp: *mut lprec, j: libc::c_int,
4607 rn: *mut libc::c_int,
4608 bj: *mut libc::c_double)
4609 -> libc::c_int;
4610 pub fn obtain_column(lp: *mut lprec, varin: libc::c_int,
4611 pcol: *mut libc::c_double,
4612 nzlist: *mut libc::c_int,
4613 maxabs: *mut libc::c_int)
4614 -> libc::c_int;
4615 pub fn compute_theta(lp: *mut lprec, rownr: libc::c_int,
4616 theta: *mut libc::c_double,
4617 isupbound: libc::c_int,
4618 HarrisScalar: libc::c_double,
4619 primal: libc::c_uchar)
4620 -> libc::c_int;
4621 pub fn findBasisPos(lp: *mut lprec, notint: libc::c_int,
4622 var_basic: *mut libc::c_int)
4623 -> libc::c_int;
4624 pub fn check_degeneracy(lp: *mut lprec,
4625 pcol: *mut libc::c_double,
4626 degencount: *mut libc::c_int)
4627 -> libc::c_uchar;
4628}