glpk_sys/
lib.rs

1#![allow(non_camel_case_types)]
2/* automatically generated by rust-bindgen */
3extern crate libc;
4
5pub type va_list = __builtin_va_list;
6pub type __gnuc_va_list = __builtin_va_list;
7pub type ptrdiff_t = ::libc::c_long;
8pub type size_t = ::libc::c_ulong;
9pub type wchar_t = ::libc::c_int;
10#[repr(C)]
11#[derive(Copy)]
12pub struct Struct_Unnamed1 {
13    pub _opaque_prob: [::libc::c_double; 100usize],
14}
15impl ::std::clone::Clone for Struct_Unnamed1 {
16    fn clone(&self) -> Self { *self }
17}
18impl ::std::default::Default for Struct_Unnamed1 {
19    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
20}
21pub type glp_prob = Struct_Unnamed1;
22#[repr(C)]
23#[derive(Copy)]
24pub struct Struct_Unnamed2 {
25    pub msg_lev: ::libc::c_int,
26    pub _type: ::libc::c_int,
27    pub lu_size: ::libc::c_int,
28    pub piv_tol: ::libc::c_double,
29    pub piv_lim: ::libc::c_int,
30    pub suhl: ::libc::c_int,
31    pub eps_tol: ::libc::c_double,
32    pub max_gro: ::libc::c_double,
33    pub nfs_max: ::libc::c_int,
34    pub upd_tol: ::libc::c_double,
35    pub nrs_max: ::libc::c_int,
36    pub rs_size: ::libc::c_int,
37    pub foo_bar: [::libc::c_double; 38usize],
38}
39impl ::std::clone::Clone for Struct_Unnamed2 {
40    fn clone(&self) -> Self { *self }
41}
42impl ::std::default::Default for Struct_Unnamed2 {
43    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
44}
45pub type glp_bfcp = Struct_Unnamed2;
46#[repr(C)]
47#[derive(Copy)]
48pub struct Struct_Unnamed3 {
49    pub msg_lev: ::libc::c_int,
50    pub meth: ::libc::c_int,
51    pub pricing: ::libc::c_int,
52    pub r_test: ::libc::c_int,
53    pub tol_bnd: ::libc::c_double,
54    pub tol_dj: ::libc::c_double,
55    pub tol_piv: ::libc::c_double,
56    pub obj_ll: ::libc::c_double,
57    pub obj_ul: ::libc::c_double,
58    pub it_lim: ::libc::c_int,
59    pub tm_lim: ::libc::c_int,
60    pub out_frq: ::libc::c_int,
61    pub out_dly: ::libc::c_int,
62    pub presolve: ::libc::c_int,
63    pub foo_bar: [::libc::c_double; 36usize],
64}
65impl ::std::clone::Clone for Struct_Unnamed3 {
66    fn clone(&self) -> Self { *self }
67}
68impl ::std::default::Default for Struct_Unnamed3 {
69    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
70}
71pub type glp_smcp = Struct_Unnamed3;
72#[repr(C)]
73#[derive(Copy)]
74pub struct Struct_Unnamed4 {
75    pub msg_lev: ::libc::c_int,
76    pub ord_alg: ::libc::c_int,
77    pub foo_bar: [::libc::c_double; 48usize],
78}
79impl ::std::clone::Clone for Struct_Unnamed4 {
80    fn clone(&self) -> Self { *self }
81}
82impl ::std::default::Default for Struct_Unnamed4 {
83    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
84}
85pub type glp_iptcp = Struct_Unnamed4;
86#[repr(C)]
87#[derive(Copy)]
88pub struct Struct_Unnamed5 {
89    pub _opaque_tree: [::libc::c_double; 100usize],
90}
91impl ::std::clone::Clone for Struct_Unnamed5 {
92    fn clone(&self) -> Self { *self }
93}
94impl ::std::default::Default for Struct_Unnamed5 {
95    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
96}
97pub type glp_tree = Struct_Unnamed5;
98#[repr(C)]
99#[derive(Copy)]
100pub struct Struct_Unnamed6 {
101    pub msg_lev: ::libc::c_int,
102    pub br_tech: ::libc::c_int,
103    pub bt_tech: ::libc::c_int,
104    pub tol_int: ::libc::c_double,
105    pub tol_obj: ::libc::c_double,
106    pub tm_lim: ::libc::c_int,
107    pub out_frq: ::libc::c_int,
108    pub out_dly: ::libc::c_int,
109    pub cb_func: ::std::option::Option<extern "C" fn(T: *mut glp_tree,
110                                                     info:
111                                                         *mut ::libc::c_void)
112                                           -> ()>,
113    pub cb_info: *mut ::libc::c_void,
114    pub cb_size: ::libc::c_int,
115    pub pp_tech: ::libc::c_int,
116    pub mip_gap: ::libc::c_double,
117    pub mir_cuts: ::libc::c_int,
118    pub gmi_cuts: ::libc::c_int,
119    pub cov_cuts: ::libc::c_int,
120    pub clq_cuts: ::libc::c_int,
121    pub presolve: ::libc::c_int,
122    pub binarize: ::libc::c_int,
123    pub fp_heur: ::libc::c_int,
124    pub alien: ::libc::c_int,
125    pub foo_bar: [::libc::c_double; 29usize],
126}
127impl ::std::clone::Clone for Struct_Unnamed6 {
128    fn clone(&self) -> Self { *self }
129}
130impl ::std::default::Default for Struct_Unnamed6 {
131    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
132}
133pub type glp_iocp = Struct_Unnamed6;
134#[repr(C)]
135#[derive(Copy)]
136pub struct Struct_Unnamed7 {
137    pub level: ::libc::c_int,
138    pub origin: ::libc::c_int,
139    pub klass: ::libc::c_int,
140    pub foo_bar: [::libc::c_double; 7usize],
141}
142impl ::std::clone::Clone for Struct_Unnamed7 {
143    fn clone(&self) -> Self { *self }
144}
145impl ::std::default::Default for Struct_Unnamed7 {
146    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
147}
148pub type glp_attr = Struct_Unnamed7;
149#[repr(C)]
150#[derive(Copy)]
151pub struct Struct_Unnamed8 {
152    pub blank: ::libc::c_int,
153    pub obj_name: *mut ::libc::c_char,
154    pub tol_mps: ::libc::c_double,
155    pub foo_bar: [::libc::c_double; 17usize],
156}
157impl ::std::clone::Clone for Struct_Unnamed8 {
158    fn clone(&self) -> Self { *self }
159}
160impl ::std::default::Default for Struct_Unnamed8 {
161    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
162}
163pub type glp_mpscp = Struct_Unnamed8;
164#[repr(C)]
165#[derive(Copy)]
166pub struct Struct_Unnamed9 {
167    pub foo_bar: [::libc::c_double; 20usize],
168}
169impl ::std::clone::Clone for Struct_Unnamed9 {
170    fn clone(&self) -> Self { *self }
171}
172impl ::std::default::Default for Struct_Unnamed9 {
173    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
174}
175pub type glp_cpxcp = Struct_Unnamed9;
176#[repr(C)]
177#[derive(Copy)]
178pub struct Struct_Unnamed10 {
179    pub _opaque_tran: [::libc::c_double; 100usize],
180}
181impl ::std::clone::Clone for Struct_Unnamed10 {
182    fn clone(&self) -> Self { *self }
183}
184impl ::std::default::Default for Struct_Unnamed10 {
185    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
186}
187pub type glp_tran = Struct_Unnamed10;
188#[repr(C)]
189#[derive(Copy)]
190pub struct Struct_Unnamed11 {
191    pub lo: ::libc::c_int,
192    pub hi: ::libc::c_int,
193}
194impl ::std::clone::Clone for Struct_Unnamed11 {
195    fn clone(&self) -> Self { *self }
196}
197impl ::std::default::Default for Struct_Unnamed11 {
198    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
199}
200pub type glp_long = Struct_Unnamed11;
201pub type _glp_error =
202    ::std::option::Option<extern "C" fn(fmt: *const ::libc::c_char, ...)
203                              -> ()>;
204#[repr(C)]
205#[derive(Copy)]
206pub struct Struct_Unnamed12 {
207    pub _opaque_data: [::libc::c_double; 100usize],
208}
209impl ::std::clone::Clone for Struct_Unnamed12 {
210    fn clone(&self) -> Self { *self }
211}
212impl ::std::default::Default for Struct_Unnamed12 {
213    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
214}
215pub type glp_data = Struct_Unnamed12;
216pub type glp_graph = Struct__glp_graph;
217pub type glp_vertex = Struct__glp_vertex;
218pub type glp_arc = Struct__glp_arc;
219#[repr(C)]
220#[derive(Copy)]
221pub struct Struct__glp_graph {
222    pub pool: *mut ::libc::c_void,
223    pub name: *mut ::libc::c_char,
224    pub nv_max: ::libc::c_int,
225    pub nv: ::libc::c_int,
226    pub na: ::libc::c_int,
227    pub v: *mut *mut glp_vertex,
228    pub index: *mut ::libc::c_void,
229    pub v_size: ::libc::c_int,
230    pub a_size: ::libc::c_int,
231}
232impl ::std::clone::Clone for Struct__glp_graph {
233    fn clone(&self) -> Self { *self }
234}
235impl ::std::default::Default for Struct__glp_graph {
236    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
237}
238#[repr(C)]
239#[derive(Copy)]
240pub struct Struct__glp_vertex {
241    pub i: ::libc::c_int,
242    pub name: *mut ::libc::c_char,
243    pub entry: *mut ::libc::c_void,
244    pub data: *mut ::libc::c_void,
245    pub temp: *mut ::libc::c_void,
246    pub _in: *mut glp_arc,
247    pub out: *mut glp_arc,
248}
249impl ::std::clone::Clone for Struct__glp_vertex {
250    fn clone(&self) -> Self { *self }
251}
252impl ::std::default::Default for Struct__glp_vertex {
253    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
254}
255#[repr(C)]
256#[derive(Copy)]
257pub struct Struct__glp_arc {
258    pub tail: *mut glp_vertex,
259    pub head: *mut glp_vertex,
260    pub data: *mut ::libc::c_void,
261    pub temp: *mut ::libc::c_void,
262    pub t_prev: *mut glp_arc,
263    pub t_next: *mut glp_arc,
264    pub h_prev: *mut glp_arc,
265    pub h_next: *mut glp_arc,
266}
267impl ::std::clone::Clone for Struct__glp_arc {
268    fn clone(&self) -> Self { *self }
269}
270impl ::std::default::Default for Struct__glp_arc {
271    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
272}
273#[repr(C)]
274#[derive(Copy)]
275pub struct Struct_Unnamed13 {
276    pub pe_ae_max: ::libc::c_double,
277    pub pe_ae_row: ::libc::c_int,
278    pub pe_re_max: ::libc::c_double,
279    pub pe_re_row: ::libc::c_int,
280    pub pe_quality: ::libc::c_int,
281    pub pb_ae_max: ::libc::c_double,
282    pub pb_ae_ind: ::libc::c_int,
283    pub pb_re_max: ::libc::c_double,
284    pub pb_re_ind: ::libc::c_int,
285    pub pb_quality: ::libc::c_int,
286    pub de_ae_max: ::libc::c_double,
287    pub de_ae_col: ::libc::c_int,
288    pub de_re_max: ::libc::c_double,
289    pub de_re_col: ::libc::c_int,
290    pub de_quality: ::libc::c_int,
291    pub db_ae_max: ::libc::c_double,
292    pub db_ae_ind: ::libc::c_int,
293    pub db_re_max: ::libc::c_double,
294    pub db_re_ind: ::libc::c_int,
295    pub db_quality: ::libc::c_int,
296    pub cs_ae_max: ::libc::c_double,
297    pub cs_ae_ind: ::libc::c_int,
298    pub cs_re_max: ::libc::c_double,
299    pub cs_re_ind: ::libc::c_int,
300    pub cs_quality: ::libc::c_int,
301}
302impl ::std::clone::Clone for Struct_Unnamed13 {
303    fn clone(&self) -> Self { *self }
304}
305impl ::std::default::Default for Struct_Unnamed13 {
306    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
307}
308pub type LPXKKT = Struct_Unnamed13;
309pub type __builtin_va_list = [__va_list_tag; 1usize];
310pub type __va_list_tag = Struct___va_list_tag;
311#[repr(C)]
312#[derive(Copy)]
313pub struct Struct___va_list_tag {
314    pub gp_offset: ::libc::c_uint,
315    pub fp_offset: ::libc::c_uint,
316    pub overflow_arg_area: *mut ::libc::c_void,
317    pub reg_save_area: *mut ::libc::c_void,
318}
319impl ::std::clone::Clone for Struct___va_list_tag {
320    fn clone(&self) -> Self { *self }
321}
322impl ::std::default::Default for Struct___va_list_tag {
323    fn default() -> Self { unsafe { ::std::mem::zeroed() } }
324}
325extern "C" {
326    pub fn glp_create_prob() -> *mut glp_prob;
327    pub fn glp_set_prob_name(P: *mut glp_prob, name: *const ::libc::c_char)
328     -> ();
329    pub fn glp_set_obj_name(P: *mut glp_prob, name: *const ::libc::c_char)
330     -> ();
331    pub fn glp_set_obj_dir(P: *mut glp_prob, dir: ::libc::c_int) -> ();
332    pub fn glp_add_rows(P: *mut glp_prob, nrs: ::libc::c_int)
333     -> ::libc::c_int;
334    pub fn glp_add_cols(P: *mut glp_prob, ncs: ::libc::c_int)
335     -> ::libc::c_int;
336    pub fn glp_set_row_name(P: *mut glp_prob, i: ::libc::c_int,
337                            name: *const ::libc::c_char) -> ();
338    pub fn glp_set_col_name(P: *mut glp_prob, j: ::libc::c_int,
339                            name: *const ::libc::c_char) -> ();
340    pub fn glp_set_row_bnds(P: *mut glp_prob, i: ::libc::c_int,
341                            _type: ::libc::c_int, lb: ::libc::c_double,
342                            ub: ::libc::c_double) -> ();
343    pub fn glp_set_col_bnds(P: *mut glp_prob, j: ::libc::c_int,
344                            _type: ::libc::c_int, lb: ::libc::c_double,
345                            ub: ::libc::c_double) -> ();
346    pub fn glp_set_obj_coef(P: *mut glp_prob, j: ::libc::c_int,
347                            coef: ::libc::c_double) -> ();
348    pub fn glp_set_mat_row(P: *mut glp_prob, i: ::libc::c_int,
349                           len: ::libc::c_int, ind: *const ::libc::c_int,
350                           val: *const ::libc::c_double) -> ();
351    pub fn glp_set_mat_col(P: *mut glp_prob, j: ::libc::c_int,
352                           len: ::libc::c_int, ind: *const ::libc::c_int,
353                           val: *const ::libc::c_double) -> ();
354    pub fn glp_load_matrix(P: *mut glp_prob, ne: ::libc::c_int,
355                           ia: *const ::libc::c_int, ja: *const ::libc::c_int,
356                           ar: *const ::libc::c_double) -> ();
357    pub fn glp_check_dup(m: ::libc::c_int, n: ::libc::c_int,
358                         ne: ::libc::c_int, ia: *const ::libc::c_int,
359                         ja: *const ::libc::c_int) -> ::libc::c_int;
360    pub fn glp_sort_matrix(P: *mut glp_prob) -> ();
361    pub fn glp_del_rows(P: *mut glp_prob, nrs: ::libc::c_int,
362                        num: *const ::libc::c_int) -> ();
363    pub fn glp_del_cols(P: *mut glp_prob, ncs: ::libc::c_int,
364                        num: *const ::libc::c_int) -> ();
365    pub fn glp_copy_prob(dest: *mut glp_prob, prob: *mut glp_prob,
366                         names: ::libc::c_int) -> ();
367    pub fn glp_erase_prob(P: *mut glp_prob) -> ();
368    pub fn glp_delete_prob(P: *mut glp_prob) -> ();
369    pub fn glp_get_prob_name(P: *mut glp_prob) -> *const ::libc::c_char;
370    pub fn glp_get_obj_name(P: *mut glp_prob) -> *const ::libc::c_char;
371    pub fn glp_get_obj_dir(P: *mut glp_prob) -> ::libc::c_int;
372    pub fn glp_get_num_rows(P: *mut glp_prob) -> ::libc::c_int;
373    pub fn glp_get_num_cols(P: *mut glp_prob) -> ::libc::c_int;
374    pub fn glp_get_row_name(P: *mut glp_prob, i: ::libc::c_int)
375     -> *const ::libc::c_char;
376    pub fn glp_get_col_name(P: *mut glp_prob, j: ::libc::c_int)
377     -> *const ::libc::c_char;
378    pub fn glp_get_row_type(P: *mut glp_prob, i: ::libc::c_int)
379     -> ::libc::c_int;
380    pub fn glp_get_row_lb(P: *mut glp_prob, i: ::libc::c_int)
381     -> ::libc::c_double;
382    pub fn glp_get_row_ub(P: *mut glp_prob, i: ::libc::c_int)
383     -> ::libc::c_double;
384    pub fn glp_get_col_type(P: *mut glp_prob, j: ::libc::c_int)
385     -> ::libc::c_int;
386    pub fn glp_get_col_lb(P: *mut glp_prob, j: ::libc::c_int)
387     -> ::libc::c_double;
388    pub fn glp_get_col_ub(P: *mut glp_prob, j: ::libc::c_int)
389     -> ::libc::c_double;
390    pub fn glp_get_obj_coef(P: *mut glp_prob, j: ::libc::c_int)
391     -> ::libc::c_double;
392    pub fn glp_get_num_nz(P: *mut glp_prob) -> ::libc::c_int;
393    pub fn glp_get_mat_row(P: *mut glp_prob, i: ::libc::c_int,
394                           ind: *mut ::libc::c_int,
395                           val: *mut ::libc::c_double) -> ::libc::c_int;
396    pub fn glp_get_mat_col(P: *mut glp_prob, j: ::libc::c_int,
397                           ind: *mut ::libc::c_int,
398                           val: *mut ::libc::c_double) -> ::libc::c_int;
399    pub fn glp_create_index(P: *mut glp_prob) -> ();
400    pub fn glp_find_row(P: *mut glp_prob, name: *const ::libc::c_char)
401     -> ::libc::c_int;
402    pub fn glp_find_col(P: *mut glp_prob, name: *const ::libc::c_char)
403     -> ::libc::c_int;
404    pub fn glp_delete_index(P: *mut glp_prob) -> ();
405    pub fn glp_set_rii(P: *mut glp_prob, i: ::libc::c_int,
406                       rii: ::libc::c_double) -> ();
407    pub fn glp_set_sjj(P: *mut glp_prob, j: ::libc::c_int,
408                       sjj: ::libc::c_double) -> ();
409    pub fn glp_get_rii(P: *mut glp_prob, i: ::libc::c_int)
410     -> ::libc::c_double;
411    pub fn glp_get_sjj(P: *mut glp_prob, j: ::libc::c_int)
412     -> ::libc::c_double;
413    pub fn glp_scale_prob(P: *mut glp_prob, flags: ::libc::c_int) -> ();
414    pub fn glp_unscale_prob(P: *mut glp_prob) -> ();
415    pub fn glp_set_row_stat(P: *mut glp_prob, i: ::libc::c_int,
416                            stat: ::libc::c_int) -> ();
417    pub fn glp_set_col_stat(P: *mut glp_prob, j: ::libc::c_int,
418                            stat: ::libc::c_int) -> ();
419    pub fn glp_std_basis(P: *mut glp_prob) -> ();
420    pub fn glp_adv_basis(P: *mut glp_prob, flags: ::libc::c_int) -> ();
421    pub fn glp_cpx_basis(P: *mut glp_prob) -> ();
422    pub fn glp_simplex(P: *mut glp_prob, parm: *const glp_smcp)
423     -> ::libc::c_int;
424    pub fn glp_exact(P: *mut glp_prob, parm: *const glp_smcp)
425     -> ::libc::c_int;
426    pub fn glp_init_smcp(parm: *mut glp_smcp) -> ();
427    pub fn glp_get_status(P: *mut glp_prob) -> ::libc::c_int;
428    pub fn glp_get_prim_stat(P: *mut glp_prob) -> ::libc::c_int;
429    pub fn glp_get_dual_stat(P: *mut glp_prob) -> ::libc::c_int;
430    pub fn glp_get_obj_val(P: *mut glp_prob) -> ::libc::c_double;
431    pub fn glp_get_row_stat(P: *mut glp_prob, i: ::libc::c_int)
432     -> ::libc::c_int;
433    pub fn glp_get_row_prim(P: *mut glp_prob, i: ::libc::c_int)
434     -> ::libc::c_double;
435    pub fn glp_get_row_dual(P: *mut glp_prob, i: ::libc::c_int)
436     -> ::libc::c_double;
437    pub fn glp_get_col_stat(P: *mut glp_prob, j: ::libc::c_int)
438     -> ::libc::c_int;
439    pub fn glp_get_col_prim(P: *mut glp_prob, j: ::libc::c_int)
440     -> ::libc::c_double;
441    pub fn glp_get_col_dual(P: *mut glp_prob, j: ::libc::c_int)
442     -> ::libc::c_double;
443    pub fn glp_get_unbnd_ray(P: *mut glp_prob) -> ::libc::c_int;
444    pub fn glp_interior(P: *mut glp_prob, parm: *const glp_iptcp)
445     -> ::libc::c_int;
446    pub fn glp_init_iptcp(parm: *mut glp_iptcp) -> ();
447    pub fn glp_ipt_status(P: *mut glp_prob) -> ::libc::c_int;
448    pub fn glp_ipt_obj_val(P: *mut glp_prob) -> ::libc::c_double;
449    pub fn glp_ipt_row_prim(P: *mut glp_prob, i: ::libc::c_int)
450     -> ::libc::c_double;
451    pub fn glp_ipt_row_dual(P: *mut glp_prob, i: ::libc::c_int)
452     -> ::libc::c_double;
453    pub fn glp_ipt_col_prim(P: *mut glp_prob, j: ::libc::c_int)
454     -> ::libc::c_double;
455    pub fn glp_ipt_col_dual(P: *mut glp_prob, j: ::libc::c_int)
456     -> ::libc::c_double;
457    pub fn glp_set_col_kind(P: *mut glp_prob, j: ::libc::c_int,
458                            kind: ::libc::c_int) -> ();
459    pub fn glp_get_col_kind(P: *mut glp_prob, j: ::libc::c_int)
460     -> ::libc::c_int;
461    pub fn glp_get_num_int(P: *mut glp_prob) -> ::libc::c_int;
462    pub fn glp_get_num_bin(P: *mut glp_prob) -> ::libc::c_int;
463    pub fn glp_intopt(P: *mut glp_prob, parm: *const glp_iocp)
464     -> ::libc::c_int;
465    pub fn glp_init_iocp(parm: *mut glp_iocp) -> ();
466    pub fn glp_mip_status(P: *mut glp_prob) -> ::libc::c_int;
467    pub fn glp_mip_obj_val(P: *mut glp_prob) -> ::libc::c_double;
468    pub fn glp_mip_row_val(P: *mut glp_prob, i: ::libc::c_int)
469     -> ::libc::c_double;
470    pub fn glp_mip_col_val(P: *mut glp_prob, j: ::libc::c_int)
471     -> ::libc::c_double;
472    pub fn glp_print_sol(P: *mut glp_prob, fname: *const ::libc::c_char)
473     -> ::libc::c_int;
474    pub fn glp_read_sol(P: *mut glp_prob, fname: *const ::libc::c_char)
475     -> ::libc::c_int;
476    pub fn glp_write_sol(P: *mut glp_prob, fname: *const ::libc::c_char)
477     -> ::libc::c_int;
478    pub fn glp_print_ranges(P: *mut glp_prob, len: ::libc::c_int,
479                            list: *const ::libc::c_int, flags: ::libc::c_int,
480                            fname: *const ::libc::c_char) -> ::libc::c_int;
481    pub fn glp_print_ipt(P: *mut glp_prob, fname: *const ::libc::c_char)
482     -> ::libc::c_int;
483    pub fn glp_read_ipt(P: *mut glp_prob, fname: *const ::libc::c_char)
484     -> ::libc::c_int;
485    pub fn glp_write_ipt(P: *mut glp_prob, fname: *const ::libc::c_char)
486     -> ::libc::c_int;
487    pub fn glp_print_mip(P: *mut glp_prob, fname: *const ::libc::c_char)
488     -> ::libc::c_int;
489    pub fn glp_read_mip(P: *mut glp_prob, fname: *const ::libc::c_char)
490     -> ::libc::c_int;
491    pub fn glp_write_mip(P: *mut glp_prob, fname: *const ::libc::c_char)
492     -> ::libc::c_int;
493    pub fn glp_bf_exists(P: *mut glp_prob) -> ::libc::c_int;
494    pub fn glp_factorize(P: *mut glp_prob) -> ::libc::c_int;
495    pub fn glp_bf_updated(P: *mut glp_prob) -> ::libc::c_int;
496    pub fn glp_get_bfcp(P: *mut glp_prob, parm: *mut glp_bfcp) -> ();
497    pub fn glp_set_bfcp(P: *mut glp_prob, parm: *const glp_bfcp) -> ();
498    pub fn glp_get_bhead(P: *mut glp_prob, k: ::libc::c_int) -> ::libc::c_int;
499    pub fn glp_get_row_bind(P: *mut glp_prob, i: ::libc::c_int)
500     -> ::libc::c_int;
501    pub fn glp_get_col_bind(P: *mut glp_prob, j: ::libc::c_int)
502     -> ::libc::c_int;
503    pub fn glp_ftran(P: *mut glp_prob, x: *mut ::libc::c_double) -> ();
504    pub fn glp_btran(P: *mut glp_prob, x: *mut ::libc::c_double) -> ();
505    pub fn glp_warm_up(P: *mut glp_prob) -> ::libc::c_int;
506    pub fn glp_eval_tab_row(P: *mut glp_prob, k: ::libc::c_int,
507                            ind: *mut ::libc::c_int,
508                            val: *mut ::libc::c_double) -> ::libc::c_int;
509    pub fn glp_eval_tab_col(P: *mut glp_prob, k: ::libc::c_int,
510                            ind: *mut ::libc::c_int,
511                            val: *mut ::libc::c_double) -> ::libc::c_int;
512    pub fn glp_transform_row(P: *mut glp_prob, len: ::libc::c_int,
513                             ind: *mut ::libc::c_int,
514                             val: *mut ::libc::c_double) -> ::libc::c_int;
515    pub fn glp_transform_col(P: *mut glp_prob, len: ::libc::c_int,
516                             ind: *mut ::libc::c_int,
517                             val: *mut ::libc::c_double) -> ::libc::c_int;
518    pub fn glp_prim_rtest(P: *mut glp_prob, len: ::libc::c_int,
519                          ind: *const ::libc::c_int,
520                          val: *const ::libc::c_double, dir: ::libc::c_int,
521                          eps: ::libc::c_double) -> ::libc::c_int;
522    pub fn glp_dual_rtest(P: *mut glp_prob, len: ::libc::c_int,
523                          ind: *const ::libc::c_int,
524                          val: *const ::libc::c_double, dir: ::libc::c_int,
525                          eps: ::libc::c_double) -> ::libc::c_int;
526    pub fn glp_analyze_bound(P: *mut glp_prob, k: ::libc::c_int,
527                             value1: *mut ::libc::c_double,
528                             var1: *mut ::libc::c_int,
529                             value2: *mut ::libc::c_double,
530                             var2: *mut ::libc::c_int) -> ();
531    pub fn glp_analyze_coef(P: *mut glp_prob, k: ::libc::c_int,
532                            coef1: *mut ::libc::c_double,
533                            var1: *mut ::libc::c_int,
534                            value1: *mut ::libc::c_double,
535                            coef2: *mut ::libc::c_double,
536                            var2: *mut ::libc::c_int,
537                            value2: *mut ::libc::c_double) -> ();
538    pub fn glp_ios_reason(T: *mut glp_tree) -> ::libc::c_int;
539    pub fn glp_ios_get_prob(T: *mut glp_tree) -> *mut glp_prob;
540    pub fn glp_ios_tree_size(T: *mut glp_tree, a_cnt: *mut ::libc::c_int,
541                             n_cnt: *mut ::libc::c_int,
542                             t_cnt: *mut ::libc::c_int) -> ();
543    pub fn glp_ios_curr_node(T: *mut glp_tree) -> ::libc::c_int;
544    pub fn glp_ios_next_node(T: *mut glp_tree, p: ::libc::c_int)
545     -> ::libc::c_int;
546    pub fn glp_ios_prev_node(T: *mut glp_tree, p: ::libc::c_int)
547     -> ::libc::c_int;
548    pub fn glp_ios_up_node(T: *mut glp_tree, p: ::libc::c_int)
549     -> ::libc::c_int;
550    pub fn glp_ios_node_level(T: *mut glp_tree, p: ::libc::c_int)
551     -> ::libc::c_int;
552    pub fn glp_ios_node_bound(T: *mut glp_tree, p: ::libc::c_int)
553     -> ::libc::c_double;
554    pub fn glp_ios_best_node(T: *mut glp_tree) -> ::libc::c_int;
555    pub fn glp_ios_mip_gap(T: *mut glp_tree) -> ::libc::c_double;
556    pub fn glp_ios_node_data(T: *mut glp_tree, p: ::libc::c_int)
557     -> *mut ::libc::c_void;
558    pub fn glp_ios_row_attr(T: *mut glp_tree, i: ::libc::c_int,
559                            attr: *mut glp_attr) -> ();
560    pub fn glp_ios_pool_size(T: *mut glp_tree) -> ::libc::c_int;
561    pub fn glp_ios_add_row(T: *mut glp_tree, name: *const ::libc::c_char,
562                           klass: ::libc::c_int, flags: ::libc::c_int,
563                           len: ::libc::c_int, ind: *const ::libc::c_int,
564                           val: *const ::libc::c_double, _type: ::libc::c_int,
565                           rhs: ::libc::c_double) -> ::libc::c_int;
566    pub fn glp_ios_del_row(T: *mut glp_tree, i: ::libc::c_int) -> ();
567    pub fn glp_ios_clear_pool(T: *mut glp_tree) -> ();
568    pub fn glp_ios_can_branch(T: *mut glp_tree, j: ::libc::c_int)
569     -> ::libc::c_int;
570    pub fn glp_ios_branch_upon(T: *mut glp_tree, j: ::libc::c_int,
571                               sel: ::libc::c_int) -> ();
572    pub fn glp_ios_select_node(T: *mut glp_tree, p: ::libc::c_int) -> ();
573    pub fn glp_ios_heur_sol(T: *mut glp_tree, x: *const ::libc::c_double)
574     -> ::libc::c_int;
575    pub fn glp_ios_terminate(T: *mut glp_tree) -> ();
576    pub fn glp_init_mpscp(parm: *mut glp_mpscp) -> ();
577    pub fn glp_read_mps(P: *mut glp_prob, fmt: ::libc::c_int,
578                        parm: *const glp_mpscp, fname: *const ::libc::c_char)
579     -> ::libc::c_int;
580    pub fn glp_write_mps(P: *mut glp_prob, fmt: ::libc::c_int,
581                         parm: *const glp_mpscp, fname: *const ::libc::c_char)
582     -> ::libc::c_int;
583    pub fn glp_init_cpxcp(parm: *mut glp_cpxcp) -> ();
584    pub fn glp_read_lp(P: *mut glp_prob, parm: *const glp_cpxcp,
585                       fname: *const ::libc::c_char) -> ::libc::c_int;
586    pub fn glp_write_lp(P: *mut glp_prob, parm: *const glp_cpxcp,
587                        fname: *const ::libc::c_char) -> ::libc::c_int;
588    pub fn glp_read_prob(P: *mut glp_prob, flags: ::libc::c_int,
589                         fname: *const ::libc::c_char) -> ::libc::c_int;
590    pub fn glp_write_prob(P: *mut glp_prob, flags: ::libc::c_int,
591                          fname: *const ::libc::c_char) -> ::libc::c_int;
592    pub fn glp_mpl_alloc_wksp() -> *mut glp_tran;
593    pub fn glp_mpl_read_model(tran: *mut glp_tran,
594                              fname: *const ::libc::c_char,
595                              skip: ::libc::c_int) -> ::libc::c_int;
596    pub fn glp_mpl_read_data(tran: *mut glp_tran,
597                             fname: *const ::libc::c_char) -> ::libc::c_int;
598    pub fn glp_mpl_generate(tran: *mut glp_tran, fname: *const ::libc::c_char)
599     -> ::libc::c_int;
600    pub fn glp_mpl_build_prob(tran: *mut glp_tran, prob: *mut glp_prob) -> ();
601    pub fn glp_mpl_postsolve(tran: *mut glp_tran, prob: *mut glp_prob,
602                             sol: ::libc::c_int) -> ::libc::c_int;
603    pub fn glp_mpl_free_wksp(tran: *mut glp_tran) -> ();
604    pub fn glp_main(argc: ::libc::c_int, argv: *mut *const ::libc::c_char)
605     -> ::libc::c_int;
606    pub fn glp_init_env() -> ::libc::c_int;
607    pub fn glp_version() -> *const ::libc::c_char;
608    pub fn glp_free_env() -> ::libc::c_int;
609    pub fn glp_printf(fmt: *const ::libc::c_char, ...) -> ();
610    pub fn glp_vprintf(fmt: *const ::libc::c_char, arg: va_list) -> ();
611    pub fn glp_term_out(flag: ::libc::c_int) -> ::libc::c_int;
612    pub fn glp_term_hook(func:
613                             ::std::option::Option<extern "C" fn(info:
614                                                                     *mut ::libc::c_void,
615                                                                 s:
616                                                                     *const ::libc::c_char)
617                                                       -> ::libc::c_int>,
618                         info: *mut ::libc::c_void) -> ();
619    pub fn glp_open_tee(fname: *const ::libc::c_char) -> ::libc::c_int;
620    pub fn glp_close_tee() -> ::libc::c_int;
621    pub fn glp_error_(file: *const ::libc::c_char, line: ::libc::c_int)
622     -> _glp_error;
623    pub fn glp_assert_(expr: *const ::libc::c_char,
624                       file: *const ::libc::c_char, line: ::libc::c_int)
625     -> ();
626    pub fn glp_error_hook(func:
627                              ::std::option::Option<extern "C" fn(info:
628                                                                      *mut ::libc::c_void)
629                                                        -> ()>,
630                          info: *mut ::libc::c_void) -> ();
631    pub fn glp_malloc(size: ::libc::c_int) -> *mut ::libc::c_void;
632    pub fn glp_calloc(n: ::libc::c_int, size: ::libc::c_int)
633     -> *mut ::libc::c_void;
634    pub fn glp_free(ptr: *mut ::libc::c_void) -> ();
635    pub fn glp_mem_limit(limit: ::libc::c_int) -> ();
636    pub fn glp_mem_usage(count: *mut ::libc::c_int, cpeak: *mut ::libc::c_int,
637                         total: *mut glp_long, tpeak: *mut glp_long) -> ();
638    pub fn glp_time() -> glp_long;
639    pub fn glp_difftime(t1: glp_long, t0: glp_long) -> ::libc::c_double;
640    pub fn glp_sdf_open_file(fname: *const ::libc::c_char) -> *mut glp_data;
641    pub fn glp_sdf_set_jump(data: *mut glp_data, jump: *mut ::libc::c_void)
642     -> ();
643    pub fn glp_sdf_error(data: *mut glp_data, fmt: *const ::libc::c_char, ...)
644     -> ();
645    pub fn glp_sdf_warning(data: *mut glp_data,
646                           fmt: *const ::libc::c_char, ...) -> ();
647    pub fn glp_sdf_read_int(data: *mut glp_data) -> ::libc::c_int;
648    pub fn glp_sdf_read_num(data: *mut glp_data) -> ::libc::c_double;
649    pub fn glp_sdf_read_item(data: *mut glp_data) -> *const ::libc::c_char;
650    pub fn glp_sdf_read_text(data: *mut glp_data) -> *const ::libc::c_char;
651    pub fn glp_sdf_line(data: *mut glp_data) -> ::libc::c_int;
652    pub fn glp_sdf_close_file(data: *mut glp_data) -> ();
653    pub fn glp_create_graph(v_size: ::libc::c_int, a_size: ::libc::c_int)
654     -> *mut glp_graph;
655    pub fn glp_set_graph_name(G: *mut glp_graph, name: *const ::libc::c_char)
656     -> ();
657    pub fn glp_add_vertices(G: *mut glp_graph, nadd: ::libc::c_int)
658     -> ::libc::c_int;
659    pub fn glp_set_vertex_name(G: *mut glp_graph, i: ::libc::c_int,
660                               name: *const ::libc::c_char) -> ();
661    pub fn glp_add_arc(G: *mut glp_graph, i: ::libc::c_int, j: ::libc::c_int)
662     -> *mut glp_arc;
663    pub fn glp_del_vertices(G: *mut glp_graph, ndel: ::libc::c_int,
664                            num: *const ::libc::c_int) -> ();
665    pub fn glp_del_arc(G: *mut glp_graph, a: *mut glp_arc) -> ();
666    pub fn glp_erase_graph(G: *mut glp_graph, v_size: ::libc::c_int,
667                           a_size: ::libc::c_int) -> ();
668    pub fn glp_delete_graph(G: *mut glp_graph) -> ();
669    pub fn glp_create_v_index(G: *mut glp_graph) -> ();
670    pub fn glp_find_vertex(G: *mut glp_graph, name: *const ::libc::c_char)
671     -> ::libc::c_int;
672    pub fn glp_delete_v_index(G: *mut glp_graph) -> ();
673    pub fn glp_read_graph(G: *mut glp_graph, fname: *const ::libc::c_char)
674     -> ::libc::c_int;
675    pub fn glp_write_graph(G: *mut glp_graph, fname: *const ::libc::c_char)
676     -> ::libc::c_int;
677    pub fn glp_mincost_lp(P: *mut glp_prob, G: *mut glp_graph,
678                          names: ::libc::c_int, v_rhs: ::libc::c_int,
679                          a_low: ::libc::c_int, a_cap: ::libc::c_int,
680                          a_cost: ::libc::c_int) -> ();
681    pub fn glp_mincost_okalg(G: *mut glp_graph, v_rhs: ::libc::c_int,
682                             a_low: ::libc::c_int, a_cap: ::libc::c_int,
683                             a_cost: ::libc::c_int,
684                             sol: *mut ::libc::c_double, a_x: ::libc::c_int,
685                             v_pi: ::libc::c_int) -> ::libc::c_int;
686    pub fn glp_maxflow_lp(P: *mut glp_prob, G: *mut glp_graph,
687                          names: ::libc::c_int, s: ::libc::c_int,
688                          t: ::libc::c_int, a_cap: ::libc::c_int) -> ();
689    pub fn glp_maxflow_ffalg(G: *mut glp_graph, s: ::libc::c_int,
690                             t: ::libc::c_int, a_cap: ::libc::c_int,
691                             sol: *mut ::libc::c_double, a_x: ::libc::c_int,
692                             v_cut: ::libc::c_int) -> ::libc::c_int;
693    pub fn glp_check_asnprob(G: *mut glp_graph, v_set: ::libc::c_int)
694     -> ::libc::c_int;
695    pub fn glp_asnprob_lp(P: *mut glp_prob, form: ::libc::c_int,
696                          G: *mut glp_graph, names: ::libc::c_int,
697                          v_set: ::libc::c_int, a_cost: ::libc::c_int)
698     -> ::libc::c_int;
699    pub fn glp_asnprob_okalg(form: ::libc::c_int, G: *mut glp_graph,
700                             v_set: ::libc::c_int, a_cost: ::libc::c_int,
701                             sol: *mut ::libc::c_double, a_x: ::libc::c_int)
702     -> ::libc::c_int;
703    pub fn glp_asnprob_hall(G: *mut glp_graph, v_set: ::libc::c_int,
704                            a_x: ::libc::c_int) -> ::libc::c_int;
705    pub fn glp_cpp(G: *mut glp_graph, v_t: ::libc::c_int, v_es: ::libc::c_int,
706                   v_ls: ::libc::c_int) -> ::libc::c_double;
707    pub fn glp_read_mincost(G: *mut glp_graph, v_rhs: ::libc::c_int,
708                            a_low: ::libc::c_int, a_cap: ::libc::c_int,
709                            a_cost: ::libc::c_int,
710                            fname: *const ::libc::c_char) -> ::libc::c_int;
711    pub fn glp_write_mincost(G: *mut glp_graph, v_rhs: ::libc::c_int,
712                             a_low: ::libc::c_int, a_cap: ::libc::c_int,
713                             a_cost: ::libc::c_int,
714                             fname: *const ::libc::c_char) -> ::libc::c_int;
715    pub fn glp_read_maxflow(G: *mut glp_graph, s: *mut ::libc::c_int,
716                            t: *mut ::libc::c_int, a_cap: ::libc::c_int,
717                            fname: *const ::libc::c_char) -> ::libc::c_int;
718    pub fn glp_write_maxflow(G: *mut glp_graph, s: ::libc::c_int,
719                             t: ::libc::c_int, a_cap: ::libc::c_int,
720                             fname: *const ::libc::c_char) -> ::libc::c_int;
721    pub fn glp_read_asnprob(G: *mut glp_graph, v_set: ::libc::c_int,
722                            a_cost: ::libc::c_int,
723                            fname: *const ::libc::c_char) -> ::libc::c_int;
724    pub fn glp_write_asnprob(G: *mut glp_graph, v_set: ::libc::c_int,
725                             a_cost: ::libc::c_int,
726                             fname: *const ::libc::c_char) -> ::libc::c_int;
727    pub fn glp_read_ccdata(G: *mut glp_graph, v_wgt: ::libc::c_int,
728                           fname: *const ::libc::c_char) -> ::libc::c_int;
729    pub fn glp_write_ccdata(G: *mut glp_graph, v_wgt: ::libc::c_int,
730                            fname: *const ::libc::c_char) -> ::libc::c_int;
731    pub fn glp_netgen(G: *mut glp_graph, v_rhs: ::libc::c_int,
732                      a_cap: ::libc::c_int, a_cost: ::libc::c_int,
733                      parm: *mut ::libc::c_int) -> ::libc::c_int;
734    pub fn glp_gridgen(G: *mut glp_graph, v_rhs: ::libc::c_int,
735                       a_cap: ::libc::c_int, a_cost: ::libc::c_int,
736                       parm: *mut ::libc::c_int) -> ::libc::c_int;
737    pub fn glp_rmfgen(G: *mut glp_graph, s: *mut ::libc::c_int,
738                      t: *mut ::libc::c_int, a_cap: ::libc::c_int,
739                      parm: *mut ::libc::c_int) -> ::libc::c_int;
740    pub fn glp_weak_comp(G: *mut glp_graph, v_num: ::libc::c_int)
741     -> ::libc::c_int;
742    pub fn glp_strong_comp(G: *mut glp_graph, v_num: ::libc::c_int)
743     -> ::libc::c_int;
744    pub fn glp_top_sort(G: *mut glp_graph, v_num: ::libc::c_int)
745     -> ::libc::c_int;
746    pub fn glp_wclique_exact(G: *mut glp_graph, v_wgt: ::libc::c_int,
747                             sol: *mut ::libc::c_double, v_set: ::libc::c_int)
748     -> ::libc::c_int;
749    pub fn _glp_lpx_create_prob() -> *mut glp_prob;
750    pub fn _glp_lpx_set_prob_name(lp: *mut glp_prob,
751                                  name: *const ::libc::c_char) -> ();
752    pub fn _glp_lpx_set_obj_name(lp: *mut glp_prob,
753                                 name: *const ::libc::c_char) -> ();
754    pub fn _glp_lpx_set_obj_dir(lp: *mut glp_prob, dir: ::libc::c_int) -> ();
755    pub fn _glp_lpx_add_rows(lp: *mut glp_prob, nrs: ::libc::c_int)
756     -> ::libc::c_int;
757    pub fn _glp_lpx_add_cols(lp: *mut glp_prob, ncs: ::libc::c_int)
758     -> ::libc::c_int;
759    pub fn _glp_lpx_set_row_name(lp: *mut glp_prob, i: ::libc::c_int,
760                                 name: *const ::libc::c_char) -> ();
761    pub fn _glp_lpx_set_col_name(lp: *mut glp_prob, j: ::libc::c_int,
762                                 name: *const ::libc::c_char) -> ();
763    pub fn _glp_lpx_set_row_bnds(lp: *mut glp_prob, i: ::libc::c_int,
764                                 _type: ::libc::c_int, lb: ::libc::c_double,
765                                 ub: ::libc::c_double) -> ();
766    pub fn _glp_lpx_set_col_bnds(lp: *mut glp_prob, j: ::libc::c_int,
767                                 _type: ::libc::c_int, lb: ::libc::c_double,
768                                 ub: ::libc::c_double) -> ();
769    pub fn _glp_lpx_set_obj_coef(lp: *mut glp_prob, j: ::libc::c_int,
770                                 coef: ::libc::c_double) -> ();
771    pub fn _glp_lpx_set_mat_row(lp: *mut glp_prob, i: ::libc::c_int,
772                                len: ::libc::c_int, ind: *const ::libc::c_int,
773                                val: *const ::libc::c_double) -> ();
774    pub fn _glp_lpx_set_mat_col(lp: *mut glp_prob, j: ::libc::c_int,
775                                len: ::libc::c_int, ind: *const ::libc::c_int,
776                                val: *const ::libc::c_double) -> ();
777    pub fn _glp_lpx_load_matrix(lp: *mut glp_prob, ne: ::libc::c_int,
778                                ia: *const ::libc::c_int,
779                                ja: *const ::libc::c_int,
780                                ar: *const ::libc::c_double) -> ();
781    pub fn _glp_lpx_del_rows(lp: *mut glp_prob, nrs: ::libc::c_int,
782                             num: *const ::libc::c_int) -> ();
783    pub fn _glp_lpx_del_cols(lp: *mut glp_prob, ncs: ::libc::c_int,
784                             num: *const ::libc::c_int) -> ();
785    pub fn _glp_lpx_delete_prob(lp: *mut glp_prob) -> ();
786    pub fn _glp_lpx_get_prob_name(lp: *mut glp_prob) -> *const ::libc::c_char;
787    pub fn _glp_lpx_get_obj_name(lp: *mut glp_prob) -> *const ::libc::c_char;
788    pub fn _glp_lpx_get_obj_dir(lp: *mut glp_prob) -> ::libc::c_int;
789    pub fn _glp_lpx_get_num_rows(lp: *mut glp_prob) -> ::libc::c_int;
790    pub fn _glp_lpx_get_num_cols(lp: *mut glp_prob) -> ::libc::c_int;
791    pub fn _glp_lpx_get_row_name(lp: *mut glp_prob, i: ::libc::c_int)
792     -> *const ::libc::c_char;
793    pub fn _glp_lpx_get_col_name(lp: *mut glp_prob, j: ::libc::c_int)
794     -> *const ::libc::c_char;
795    pub fn _glp_lpx_get_row_type(lp: *mut glp_prob, i: ::libc::c_int)
796     -> ::libc::c_int;
797    pub fn _glp_lpx_get_row_lb(lp: *mut glp_prob, i: ::libc::c_int)
798     -> ::libc::c_double;
799    pub fn _glp_lpx_get_row_ub(lp: *mut glp_prob, i: ::libc::c_int)
800     -> ::libc::c_double;
801    pub fn _glp_lpx_get_row_bnds(lp: *mut glp_prob, i: ::libc::c_int,
802                                 typx: *mut ::libc::c_int,
803                                 lb: *mut ::libc::c_double,
804                                 ub: *mut ::libc::c_double) -> ();
805    pub fn _glp_lpx_get_col_type(lp: *mut glp_prob, j: ::libc::c_int)
806     -> ::libc::c_int;
807    pub fn _glp_lpx_get_col_lb(lp: *mut glp_prob, j: ::libc::c_int)
808     -> ::libc::c_double;
809    pub fn _glp_lpx_get_col_ub(lp: *mut glp_prob, j: ::libc::c_int)
810     -> ::libc::c_double;
811    pub fn _glp_lpx_get_col_bnds(lp: *mut glp_prob, j: ::libc::c_int,
812                                 typx: *mut ::libc::c_int,
813                                 lb: *mut ::libc::c_double,
814                                 ub: *mut ::libc::c_double) -> ();
815    pub fn _glp_lpx_get_obj_coef(lp: *mut glp_prob, j: ::libc::c_int)
816     -> ::libc::c_double;
817    pub fn _glp_lpx_get_num_nz(lp: *mut glp_prob) -> ::libc::c_int;
818    pub fn _glp_lpx_get_mat_row(lp: *mut glp_prob, i: ::libc::c_int,
819                                ind: *mut ::libc::c_int,
820                                val: *mut ::libc::c_double) -> ::libc::c_int;
821    pub fn _glp_lpx_get_mat_col(lp: *mut glp_prob, j: ::libc::c_int,
822                                ind: *mut ::libc::c_int,
823                                val: *mut ::libc::c_double) -> ::libc::c_int;
824    pub fn _glp_lpx_create_index(lp: *mut glp_prob) -> ();
825    pub fn _glp_lpx_find_row(lp: *mut glp_prob, name: *const ::libc::c_char)
826     -> ::libc::c_int;
827    pub fn _glp_lpx_find_col(lp: *mut glp_prob, name: *const ::libc::c_char)
828     -> ::libc::c_int;
829    pub fn _glp_lpx_delete_index(lp: *mut glp_prob) -> ();
830    pub fn _glp_lpx_scale_prob(lp: *mut glp_prob) -> ();
831    pub fn _glp_lpx_unscale_prob(lp: *mut glp_prob) -> ();
832    pub fn _glp_lpx_set_row_stat(lp: *mut glp_prob, i: ::libc::c_int,
833                                 stat: ::libc::c_int) -> ();
834    pub fn _glp_lpx_set_col_stat(lp: *mut glp_prob, j: ::libc::c_int,
835                                 stat: ::libc::c_int) -> ();
836    pub fn _glp_lpx_std_basis(lp: *mut glp_prob) -> ();
837    pub fn _glp_lpx_adv_basis(lp: *mut glp_prob) -> ();
838    pub fn _glp_lpx_cpx_basis(lp: *mut glp_prob) -> ();
839    pub fn _glp_lpx_simplex(lp: *mut glp_prob) -> ::libc::c_int;
840    pub fn _glp_lpx_exact(lp: *mut glp_prob) -> ::libc::c_int;
841    pub fn _glp_lpx_get_status(lp: *mut glp_prob) -> ::libc::c_int;
842    pub fn _glp_lpx_get_prim_stat(lp: *mut glp_prob) -> ::libc::c_int;
843    pub fn _glp_lpx_get_dual_stat(lp: *mut glp_prob) -> ::libc::c_int;
844    pub fn _glp_lpx_get_obj_val(lp: *mut glp_prob) -> ::libc::c_double;
845    pub fn _glp_lpx_get_row_stat(lp: *mut glp_prob, i: ::libc::c_int)
846     -> ::libc::c_int;
847    pub fn _glp_lpx_get_row_prim(lp: *mut glp_prob, i: ::libc::c_int)
848     -> ::libc::c_double;
849    pub fn _glp_lpx_get_row_dual(lp: *mut glp_prob, i: ::libc::c_int)
850     -> ::libc::c_double;
851    pub fn _glp_lpx_get_row_info(lp: *mut glp_prob, i: ::libc::c_int,
852                                 tagx: *mut ::libc::c_int,
853                                 vx: *mut ::libc::c_double,
854                                 dx: *mut ::libc::c_double) -> ();
855    pub fn _glp_lpx_get_col_stat(lp: *mut glp_prob, j: ::libc::c_int)
856     -> ::libc::c_int;
857    pub fn _glp_lpx_get_col_prim(lp: *mut glp_prob, j: ::libc::c_int)
858     -> ::libc::c_double;
859    pub fn _glp_lpx_get_col_dual(lp: *mut glp_prob, j: ::libc::c_int)
860     -> ::libc::c_double;
861    pub fn _glp_lpx_get_col_info(lp: *mut glp_prob, j: ::libc::c_int,
862                                 tagx: *mut ::libc::c_int,
863                                 vx: *mut ::libc::c_double,
864                                 dx: *mut ::libc::c_double) -> ();
865    pub fn _glp_lpx_get_ray_info(lp: *mut glp_prob) -> ::libc::c_int;
866    pub fn _glp_lpx_check_kkt(lp: *mut glp_prob, scaled: ::libc::c_int,
867                              kkt: *mut LPXKKT) -> ();
868    pub fn _glp_lpx_warm_up(lp: *mut glp_prob) -> ::libc::c_int;
869    pub fn _glp_lpx_eval_tab_row(lp: *mut glp_prob, k: ::libc::c_int,
870                                 ind: *mut ::libc::c_int,
871                                 val: *mut ::libc::c_double) -> ::libc::c_int;
872    pub fn _glp_lpx_eval_tab_col(lp: *mut glp_prob, k: ::libc::c_int,
873                                 ind: *mut ::libc::c_int,
874                                 val: *mut ::libc::c_double) -> ::libc::c_int;
875    pub fn _glp_lpx_transform_row(lp: *mut glp_prob, len: ::libc::c_int,
876                                  ind: *mut ::libc::c_int,
877                                  val: *mut ::libc::c_double)
878     -> ::libc::c_int;
879    pub fn _glp_lpx_transform_col(lp: *mut glp_prob, len: ::libc::c_int,
880                                  ind: *mut ::libc::c_int,
881                                  val: *mut ::libc::c_double)
882     -> ::libc::c_int;
883    pub fn _glp_lpx_prim_ratio_test(lp: *mut glp_prob, len: ::libc::c_int,
884                                    ind: *const ::libc::c_int,
885                                    val: *const ::libc::c_double,
886                                    how: ::libc::c_int, tol: ::libc::c_double)
887     -> ::libc::c_int;
888    pub fn _glp_lpx_dual_ratio_test(lp: *mut glp_prob, len: ::libc::c_int,
889                                    ind: *const ::libc::c_int,
890                                    val: *const ::libc::c_double,
891                                    how: ::libc::c_int, tol: ::libc::c_double)
892     -> ::libc::c_int;
893    pub fn _glp_lpx_interior(lp: *mut glp_prob) -> ::libc::c_int;
894    pub fn _glp_lpx_ipt_status(lp: *mut glp_prob) -> ::libc::c_int;
895    pub fn _glp_lpx_ipt_obj_val(lp: *mut glp_prob) -> ::libc::c_double;
896    pub fn _glp_lpx_ipt_row_prim(lp: *mut glp_prob, i: ::libc::c_int)
897     -> ::libc::c_double;
898    pub fn _glp_lpx_ipt_row_dual(lp: *mut glp_prob, i: ::libc::c_int)
899     -> ::libc::c_double;
900    pub fn _glp_lpx_ipt_col_prim(lp: *mut glp_prob, j: ::libc::c_int)
901     -> ::libc::c_double;
902    pub fn _glp_lpx_ipt_col_dual(lp: *mut glp_prob, j: ::libc::c_int)
903     -> ::libc::c_double;
904    pub fn _glp_lpx_set_class(lp: *mut glp_prob, klass: ::libc::c_int) -> ();
905    pub fn _glp_lpx_get_class(lp: *mut glp_prob) -> ::libc::c_int;
906    pub fn _glp_lpx_set_col_kind(lp: *mut glp_prob, j: ::libc::c_int,
907                                 kind: ::libc::c_int) -> ();
908    pub fn _glp_lpx_get_col_kind(lp: *mut glp_prob, j: ::libc::c_int)
909     -> ::libc::c_int;
910    pub fn _glp_lpx_get_num_int(lp: *mut glp_prob) -> ::libc::c_int;
911    pub fn _glp_lpx_get_num_bin(lp: *mut glp_prob) -> ::libc::c_int;
912    pub fn _glp_lpx_integer(lp: *mut glp_prob) -> ::libc::c_int;
913    pub fn _glp_lpx_intopt(lp: *mut glp_prob) -> ::libc::c_int;
914    pub fn _glp_lpx_mip_status(lp: *mut glp_prob) -> ::libc::c_int;
915    pub fn _glp_lpx_mip_obj_val(lp: *mut glp_prob) -> ::libc::c_double;
916    pub fn _glp_lpx_mip_row_val(lp: *mut glp_prob, i: ::libc::c_int)
917     -> ::libc::c_double;
918    pub fn _glp_lpx_mip_col_val(lp: *mut glp_prob, j: ::libc::c_int)
919     -> ::libc::c_double;
920    pub fn _glp_lpx_check_int(lp: *mut glp_prob, kkt: *mut LPXKKT) -> ();
921    pub fn _glp_lpx_reset_parms(lp: *mut glp_prob) -> ();
922    pub fn _glp_lpx_set_int_parm(lp: *mut glp_prob, parm: ::libc::c_int,
923                                 val: ::libc::c_int) -> ();
924    pub fn _glp_lpx_get_int_parm(lp: *mut glp_prob, parm: ::libc::c_int)
925     -> ::libc::c_int;
926    pub fn _glp_lpx_set_real_parm(lp: *mut glp_prob, parm: ::libc::c_int,
927                                  val: ::libc::c_double) -> ();
928    pub fn _glp_lpx_get_real_parm(lp: *mut glp_prob, parm: ::libc::c_int)
929     -> ::libc::c_double;
930    pub fn _glp_lpx_read_mps(fname: *const ::libc::c_char) -> *mut glp_prob;
931    pub fn _glp_lpx_write_mps(lp: *mut glp_prob, fname: *const ::libc::c_char)
932     -> ::libc::c_int;
933    pub fn _glp_lpx_read_bas(lp: *mut glp_prob, fname: *const ::libc::c_char)
934     -> ::libc::c_int;
935    pub fn _glp_lpx_write_bas(lp: *mut glp_prob, fname: *const ::libc::c_char)
936     -> ::libc::c_int;
937    pub fn _glp_lpx_read_freemps(fname: *const ::libc::c_char)
938     -> *mut glp_prob;
939    pub fn _glp_lpx_write_freemps(lp: *mut glp_prob,
940                                  fname: *const ::libc::c_char)
941     -> ::libc::c_int;
942    pub fn _glp_lpx_read_cpxlp(fname: *const ::libc::c_char) -> *mut glp_prob;
943    pub fn _glp_lpx_write_cpxlp(lp: *mut glp_prob,
944                                fname: *const ::libc::c_char)
945     -> ::libc::c_int;
946    pub fn _glp_lpx_read_model(model: *const ::libc::c_char,
947                               data: *const ::libc::c_char,
948                               output: *const ::libc::c_char)
949     -> *mut glp_prob;
950    pub fn _glp_lpx_print_prob(lp: *mut glp_prob,
951                               fname: *const ::libc::c_char) -> ::libc::c_int;
952    pub fn _glp_lpx_print_sol(lp: *mut glp_prob, fname: *const ::libc::c_char)
953     -> ::libc::c_int;
954    pub fn _glp_lpx_print_sens_bnds(lp: *mut glp_prob,
955                                    fname: *const ::libc::c_char)
956     -> ::libc::c_int;
957    pub fn _glp_lpx_print_ips(lp: *mut glp_prob, fname: *const ::libc::c_char)
958     -> ::libc::c_int;
959    pub fn _glp_lpx_print_mip(lp: *mut glp_prob, fname: *const ::libc::c_char)
960     -> ::libc::c_int;
961    pub fn _glp_lpx_is_b_avail(lp: *mut glp_prob) -> ::libc::c_int;
962    pub fn _glp_lpx_write_pb(lp: *mut glp_prob, fname: *const ::libc::c_char,
963                             normalized: ::libc::c_int,
964                             binarize: ::libc::c_int) -> ::libc::c_int;
965    pub fn _glp_lpx_main(argc: ::libc::c_int,
966                         argv: *mut *const ::libc::c_char) -> ::libc::c_int;
967}