#![no_std]
#![allow(bad_style)]
extern crate libc;
pub type lprec = Struct__lprec;
pub enum Struct__INVrec { }
pub type INVrec = Struct__INVrec;
pub enum Union_QSORTrec { }
#[repr(C)]
#[derive(Copy)]
pub struct Struct__B4rec {
pub B4_var: *mut libc::c_int,
pub var_B4: *mut libc::c_int,
pub B4_row: *mut libc::c_int,
pub row_B4: *mut libc::c_int,
pub wcol: *mut libc::c_double,
pub nzwcol: *mut libc::c_int,
}
impl ::core::clone::Clone for Struct__B4rec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__B4rec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type B4rec = Struct__B4rec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__OBJmonrec {
pub lp: *mut lprec,
pub oldpivstrategy: libc::c_int,
pub oldpivrule: libc::c_int,
pub pivrule: libc::c_int,
pub ruleswitches: libc::c_int,
pub limitstall: [libc::c_int; 2usize],
pub limitruleswitches: libc::c_int,
pub idxstep: [libc::c_int; 5usize],
pub countstep: libc::c_int,
pub startstep: libc::c_int,
pub currentstep: libc::c_int,
pub Rcycle: libc::c_int,
pub Ccycle: libc::c_int,
pub Ncycle: libc::c_int,
pub Mcycle: libc::c_int,
pub Icount: libc::c_int,
pub thisobj: libc::c_double,
pub prevobj: libc::c_double,
pub objstep: [libc::c_double; 5usize],
pub thisinfeas: libc::c_double,
pub previnfeas: libc::c_double,
pub epsvalue: libc::c_double,
pub spxfunc: [libc::c_char; 10usize],
pub pivdynamic: libc::c_uchar,
pub isdual: libc::c_uchar,
pub active: libc::c_uchar,
}
impl ::core::clone::Clone for Struct__OBJmonrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__OBJmonrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type OBJmonrec = Struct__OBJmonrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__edgerec {
pub edgeVector: *mut libc::c_double,
}
impl ::core::clone::Clone for Struct__edgerec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__edgerec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type edgerec = Struct__edgerec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__pricerec {
pub theta: libc::c_double,
pub pivot: libc::c_double,
pub epspivot: libc::c_double,
pub varno: libc::c_int,
pub lp: *mut lprec,
pub isdual: libc::c_uchar,
}
impl ::core::clone::Clone for Struct__pricerec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__pricerec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type pricerec = Struct__pricerec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__multirec {
pub lp: *mut lprec,
pub size: libc::c_int,
pub used: libc::c_int,
pub limit: libc::c_int,
pub items: *mut pricerec,
pub freeList: *mut libc::c_int,
pub sortedList: *mut Union_QSORTrec,
pub stepList: *mut libc::c_double,
pub valueList: *mut libc::c_double,
pub indexSet: *mut libc::c_int,
pub active: libc::c_int,
pub retries: libc::c_int,
pub step_base: libc::c_double,
pub step_last: libc::c_double,
pub obj_base: libc::c_double,
pub obj_last: libc::c_double,
pub epszero: libc::c_double,
pub maxpivot: libc::c_double,
pub maxbound: libc::c_double,
pub sorted: libc::c_uchar,
pub truncinf: libc::c_uchar,
pub objcheck: libc::c_uchar,
pub dirty: libc::c_uchar,
}
impl ::core::clone::Clone for Struct__multirec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__multirec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type multirec = Struct__multirec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__workarraysrec {
pub lp: *mut lprec,
pub size: libc::c_int,
pub count: libc::c_int,
pub vectorarray: *mut *mut libc::c_char,
pub vectorsize: *mut libc::c_int,
}
impl ::core::clone::Clone for Struct__workarraysrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__workarraysrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type workarraysrec = Struct__workarraysrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__LLrec {
pub size: libc::c_int,
pub count: libc::c_int,
pub firstitem: libc::c_int,
pub lastitem: libc::c_int,
pub map: *mut libc::c_int,
}
impl ::core::clone::Clone for Struct__LLrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__LLrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type LLrec = Struct__LLrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__PVrec {
pub count: libc::c_int,
pub startpos: *mut libc::c_int,
pub value: *mut libc::c_double,
pub parent: *mut Struct__PVrec,
}
impl ::core::clone::Clone for Struct__PVrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__PVrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type PVrec = Struct__PVrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__hashelem {
pub name: *mut libc::c_char,
pub index: libc::c_int,
pub next: *mut Struct__hashelem,
pub nextelem: *mut Struct__hashelem,
}
impl ::core::clone::Clone for Struct__hashelem {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__hashelem {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type hashelem = Struct__hashelem;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed1 {
pub table: *mut *mut hashelem,
pub size: libc::c_int,
pub base: libc::c_int,
pub count: libc::c_int,
pub first: *mut Struct__hashelem,
pub last: *mut Struct__hashelem,
}
impl ::core::clone::Clone for Struct_Unnamed1 {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct_Unnamed1 {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type hashtable = Struct_Unnamed1;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__MATitem {
pub rownr: libc::c_int,
pub colnr: libc::c_int,
pub value: libc::c_double,
}
impl ::core::clone::Clone for Struct__MATitem {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__MATitem {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type MATitem = Struct__MATitem;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__MATrec {
pub lp: *mut lprec,
pub rows: libc::c_int,
pub columns: libc::c_int,
pub rows_alloc: libc::c_int,
pub columns_alloc: libc::c_int,
pub mat_alloc: libc::c_int,
pub col_mat_colnr: *mut libc::c_int,
pub col_mat_rownr: *mut libc::c_int,
pub col_mat_value: *mut libc::c_double,
pub col_end: *mut libc::c_int,
pub col_tag: *mut libc::c_int,
pub row_mat: *mut libc::c_int,
pub row_end: *mut libc::c_int,
pub row_tag: *mut libc::c_int,
pub colmax: *mut libc::c_double,
pub rowmax: *mut libc::c_double,
pub epsvalue: libc::c_double,
pub infnorm: libc::c_double,
pub dynrange: libc::c_double,
pub row_end_valid: libc::c_uchar,
pub is_roworder: libc::c_uchar,
}
impl ::core::clone::Clone for Struct__MATrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__MATrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type MATrec = Struct__MATrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__DeltaVrec {
pub lp: *mut lprec,
pub activelevel: libc::c_int,
pub tracker: *mut MATrec,
}
impl ::core::clone::Clone for Struct__DeltaVrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__DeltaVrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type DeltaVrec = Struct__DeltaVrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__basisrec {
pub level: libc::c_int,
pub var_basic: *mut libc::c_int,
pub is_basic: *mut libc::c_uchar,
pub is_lower: *mut libc::c_uchar,
pub pivots: libc::c_int,
pub previous: *mut Struct__basisrec,
}
impl ::core::clone::Clone for Struct__basisrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__basisrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type basisrec = Struct__basisrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__presolveundorec {
pub lp: *mut lprec,
pub orig_rows: libc::c_int,
pub orig_columns: libc::c_int,
pub orig_sum: libc::c_int,
pub var_to_orig: *mut libc::c_int,
pub orig_to_var: *mut libc::c_int,
pub fixed_rhs: *mut libc::c_double,
pub fixed_obj: *mut libc::c_double,
pub deletedA: *mut DeltaVrec,
pub primalundo: *mut DeltaVrec,
pub dualundo: *mut DeltaVrec,
pub OFcolsdeleted: libc::c_uchar,
}
impl ::core::clone::Clone for Struct__presolveundorec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__presolveundorec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type presolveundorec = Struct__presolveundorec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__BBPSrec {
pub lp: *mut lprec,
pub pseodotype: libc::c_int,
pub updatelimit: libc::c_int,
pub updatesfinished: libc::c_int,
pub restartlimit: libc::c_double,
pub UPcost: *mut MATitem,
pub LOcost: *mut MATitem,
pub secondary: *mut Struct__BBPSrec,
}
impl ::core::clone::Clone for Struct__BBPSrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__BBPSrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type BBPSrec = Struct__BBPSrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__BBrec {
pub parent: *mut Struct__BBrec,
pub child: *mut Struct__BBrec,
pub lp: *mut lprec,
pub varno: libc::c_int,
pub vartype: libc::c_int,
pub lastvarcus: libc::c_int,
pub lastrcf: libc::c_int,
pub nodesleft: libc::c_int,
pub nodessolved: libc::c_int,
pub nodestatus: libc::c_int,
pub noderesult: libc::c_double,
pub lastsolution: libc::c_double,
pub sc_bound: libc::c_double,
pub upbo: *mut libc::c_double,
pub lowbo: *mut libc::c_double,
pub UPbound: libc::c_double,
pub LObound: libc::c_double,
pub UBtrack: libc::c_int,
pub LBtrack: libc::c_int,
pub contentmode: libc::c_uchar,
pub sc_canset: libc::c_uchar,
pub isSOS: libc::c_uchar,
pub isGUB: libc::c_uchar,
pub varmanaged: *mut libc::c_int,
pub isfloor: libc::c_uchar,
pub UBzerobased: libc::c_uchar,
}
impl ::core::clone::Clone for Struct__BBrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__BBrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type BBrec = Struct__BBrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__partialrec {
pub lp: *mut lprec,
pub blockcount: libc::c_int,
pub blocknow: libc::c_int,
pub blockend: *mut libc::c_int,
pub blockpos: *mut libc::c_int,
pub isrow: libc::c_uchar,
}
impl ::core::clone::Clone for Struct__partialrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__partialrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type partialrec = Struct__partialrec;
pub type SOSgroup = Struct__SOSgroup;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__SOSrec {
pub parent: *mut SOSgroup,
pub tagorder: libc::c_int,
pub name: *mut libc::c_char,
pub _type: libc::c_int,
pub isGUB: libc::c_uchar,
pub size: libc::c_int,
pub priority: libc::c_int,
pub members: *mut libc::c_int,
pub weights: *mut libc::c_double,
pub membersSorted: *mut libc::c_int,
pub membersMapped: *mut libc::c_int,
}
impl ::core::clone::Clone for Struct__SOSrec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__SOSrec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type SOSrec = Struct__SOSrec;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__SOSgroup {
pub lp: *mut lprec,
pub sos_list: *mut *mut SOSrec,
pub sos_alloc: libc::c_int,
pub sos_count: libc::c_int,
pub maxorder: libc::c_int,
pub sos1_count: libc::c_int,
pub membership: *mut libc::c_int,
pub memberpos: *mut libc::c_int,
}
impl ::core::clone::Clone for Struct__SOSgroup {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__SOSgroup {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
pub type lphandle_intfunc =
unsafe extern "C" fn(lp: *mut lprec,
userhandle: *mut libc::c_void)
-> libc::c_int;
pub type lphandlestr_func =
unsafe extern "C" fn(lp: *mut lprec,
userhandle: *mut libc::c_void,
buf: *mut libc::c_char);
pub type lphandleint_func =
unsafe extern "C" fn(lp: *mut lprec,
userhandle: *mut libc::c_void,
message: libc::c_int);
pub type lphandleint_intfunc =
unsafe extern "C" fn(lp: *mut lprec,
userhandle: *mut libc::c_void,
message: libc::c_int)
-> libc::c_int;
pub type add_column_func =
unsafe extern "C" fn(lp: *mut lprec,
column: *mut libc::c_double)
-> libc::c_uchar;
pub type add_columnex_func =
unsafe extern "C" fn(lp: *mut lprec, count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int)
-> libc::c_uchar;
pub type add_constraint_func =
unsafe extern "C" fn(lp: *mut lprec, row: *mut libc::c_double,
constr_type: libc::c_int,
rh: libc::c_double)
-> libc::c_uchar;
pub type add_constraintex_func =
unsafe extern "C" fn(lp: *mut lprec, count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int,
constr_type: libc::c_int,
rh: libc::c_double)
-> libc::c_uchar;
pub type add_lag_con_func =
unsafe extern "C" fn(lp: *mut lprec, row: *mut libc::c_double,
con_type: libc::c_int,
rhs: libc::c_double)
-> libc::c_uchar;
pub type add_SOS_func =
unsafe extern "C" fn(lp: *mut lprec, name: *mut libc::c_char,
sostype: libc::c_int,
priority: libc::c_int,
count: libc::c_int,
sosvars: *mut libc::c_int,
weights: *mut libc::c_double)
-> libc::c_int;
pub type column_in_lp_func =
unsafe extern "C" fn(lp: *mut lprec,
column: *mut libc::c_double)
-> libc::c_int;
pub type copy_lp_func =
unsafe extern "C" fn(lp: *mut lprec) -> *mut Struct__lprec;
pub type default_basis_func = unsafe extern "C" fn(lp: *mut lprec);
pub type del_column_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub type del_constraint_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_uchar;
pub type delete_lp_func = unsafe extern "C" fn(lp: *mut lprec);
pub type dualize_lp_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type free_lp_func = unsafe extern "C" fn(plp: *mut *mut lprec);
pub type get_anti_degen_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_basis_func =
unsafe extern "C" fn(lp: *mut lprec,
bascolumn: *mut libc::c_int,
nonbasic: libc::c_uchar)
-> libc::c_uchar;
pub type get_basiscrash_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_bb_depthlimit_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_bb_floorfirst_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_bb_rule_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_bounds_tighter_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type get_break_at_value_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_col_name_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> *mut libc::c_char;
pub type get_column_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
column: *mut libc::c_double)
-> libc::c_uchar;
pub type get_columnex_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
column: *mut libc::c_double,
nzrow: *mut libc::c_int)
-> libc::c_int;
pub type get_constr_type_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_int;
pub type get_constr_value_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
count: libc::c_int,
primsolution: *mut libc::c_double,
nzindex: *mut libc::c_int)
-> libc::c_double;
pub type get_constraints_func =
unsafe extern "C" fn(lp: *mut lprec,
constr: *mut libc::c_double)
-> libc::c_uchar;
pub type get_dual_solution_func =
unsafe extern "C" fn(lp: *mut lprec, rc: *mut libc::c_double)
-> libc::c_uchar;
pub type get_epsb_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_epsd_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_epsel_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_epsint_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_epsperturb_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_epspivot_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_improve_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_infinite_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_lambda_func =
unsafe extern "C" fn(lp: *mut lprec,
lambda: *mut libc::c_double)
-> libc::c_uchar;
pub type get_lowbo_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_double;
pub type get_lp_index_func =
unsafe extern "C" fn(lp: *mut lprec, orig_index: libc::c_int)
-> libc::c_int;
pub type get_lp_name_func =
unsafe extern "C" fn(lp: *mut lprec) -> *mut libc::c_char;
pub type get_Lrows_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_mat_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
colnr: libc::c_int)
-> libc::c_double;
pub type get_mat_byindex_func =
unsafe extern "C" fn(lp: *mut lprec, matindex: libc::c_int,
isrow: libc::c_uchar,
adjustsign: libc::c_uchar)
-> libc::c_double;
pub type get_max_level_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_maxpivot_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_mip_gap_func =
unsafe extern "C" fn(lp: *mut lprec, absolute: libc::c_uchar)
-> libc::c_double;
pub type get_multiprice_func =
unsafe extern "C" fn(lp: *mut lprec, getabssize: libc::c_uchar)
-> libc::c_int;
pub type is_use_names_func =
unsafe extern "C" fn(lp: *mut lprec, isrow: libc::c_uchar)
-> libc::c_uchar;
pub type set_use_names_func =
unsafe extern "C" fn(lp: *mut lprec, isrow: libc::c_uchar,
use_names: libc::c_uchar);
pub type get_nameindex_func =
unsafe extern "C" fn(lp: *mut lprec, varname: *mut libc::c_char,
isrow: libc::c_uchar)
-> libc::c_int;
pub type get_Ncolumns_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_negrange_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_nz_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_Norig_columns_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_Norig_rows_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_Nrows_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_obj_bound_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_objective_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_orig_index_func =
unsafe extern "C" fn(lp: *mut lprec, lp_index: libc::c_int)
-> libc::c_int;
pub type get_origcol_name_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> *mut libc::c_char;
pub type get_origrow_name_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
-> *mut libc::c_char;
pub type get_partialprice_func =
unsafe extern "C" fn(lp: *mut lprec,
blockcount: *mut libc::c_int,
blockstart: *mut libc::c_int,
isrow: libc::c_uchar);
pub type get_pivoting_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_presolve_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_presolveloops_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_primal_solution_func =
unsafe extern "C" fn(lp: *mut lprec, pv: *mut libc::c_double)
-> libc::c_uchar;
pub type get_print_sol_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_pseudocosts_func =
unsafe extern "C" fn(lp: *mut lprec,
clower: *mut libc::c_double,
cupper: *mut libc::c_double,
updatelimit: *mut libc::c_int)
-> libc::c_uchar;
pub type get_ptr_constraints_func =
unsafe extern "C" fn(lp: *mut lprec,
constr: *mut *mut libc::c_double)
-> libc::c_uchar;
pub type get_ptr_dual_solution_func =
unsafe extern "C" fn(lp: *mut lprec,
rc: *mut *mut libc::c_double)
-> libc::c_uchar;
pub type get_ptr_lambda_func =
unsafe extern "C" fn(lp: *mut lprec,
lambda: *mut *mut libc::c_double)
-> libc::c_uchar;
pub type get_ptr_primal_solution_func =
unsafe extern "C" fn(lp: *mut lprec,
pv: *mut *mut libc::c_double)
-> libc::c_uchar;
pub type get_ptr_sensitivity_obj_func =
unsafe extern "C" fn(lp: *mut lprec,
objfrom: *mut *mut libc::c_double,
objtill: *mut *mut libc::c_double)
-> libc::c_uchar;
pub type get_ptr_sensitivity_objex_func =
unsafe extern "C" fn(lp: *mut lprec,
objfrom: *mut *mut libc::c_double,
objtill: *mut *mut libc::c_double,
objfromvalue: *mut *mut libc::c_double,
objtillvalue: *mut *mut libc::c_double)
-> libc::c_uchar;
pub type get_ptr_sensitivity_rhs_func =
unsafe extern "C" fn(lp: *mut lprec,
duals: *mut *mut libc::c_double,
dualsfrom: *mut *mut libc::c_double,
dualstill: *mut *mut libc::c_double)
-> libc::c_uchar;
pub type get_ptr_variables_func =
unsafe extern "C" fn(lp: *mut lprec,
var: *mut *mut libc::c_double)
-> libc::c_uchar;
pub type get_rh_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub type get_rh_range_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub type get_rowex_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_int;
pub type get_row_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
row: *mut libc::c_double)
-> libc::c_uchar;
pub type get_row_name_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int)
-> *mut libc::c_char;
pub type get_scalelimit_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type get_scaling_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_sensitivity_obj_func =
unsafe extern "C" fn(lp: *mut lprec,
objfrom: *mut libc::c_double,
objtill: *mut libc::c_double)
-> libc::c_uchar;
pub type get_sensitivity_objex_func =
unsafe extern "C" fn(lp: *mut lprec,
objfrom: *mut libc::c_double,
objtill: *mut libc::c_double,
objfromvalue: *mut libc::c_double,
objtillvalue: *mut libc::c_double)
-> libc::c_uchar;
pub type get_sensitivity_rhs_func =
unsafe extern "C" fn(lp: *mut lprec, duals: *mut libc::c_double,
dualsfrom: *mut libc::c_double,
dualstill: *mut libc::c_double)
-> libc::c_uchar;
pub type get_simplextype_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_solutioncount_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_solutionlimit_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_status_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type get_statustext_func =
unsafe extern "C" fn(lp: *mut lprec, statuscode: libc::c_int)
-> *mut libc::c_char;
pub type get_timeout_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_long;
pub type get_total_iter_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_longlong;
pub type get_total_nodes_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_longlong;
pub type get_upbo_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_double;
pub type get_var_branch_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_int;
pub type get_var_dualresult_func =
unsafe extern "C" fn(lp: *mut lprec, index: libc::c_int)
-> libc::c_double;
pub type get_var_primalresult_func =
unsafe extern "C" fn(lp: *mut lprec, index: libc::c_int)
-> libc::c_double;
pub type get_var_priority_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_int;
pub type get_variables_func =
unsafe extern "C" fn(lp: *mut lprec, var: *mut libc::c_double)
-> libc::c_uchar;
pub type get_verbose_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type guess_basis_func =
unsafe extern "C" fn(lp: *mut lprec,
guessvector: *mut libc::c_double,
basisvector: *mut libc::c_int)
-> libc::c_uchar;
pub type get_working_objective_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type has_BFP_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type has_XLI_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_add_rowmode_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_anti_degen_func =
unsafe extern "C" fn(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub type is_binary_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub type is_break_at_first_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_constr_type_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
mask: libc::c_int)
-> libc::c_uchar;
pub type is_debug_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_feasible_func =
unsafe extern "C" fn(lp: *mut lprec,
values: *mut libc::c_double,
threshold: libc::c_double)
-> libc::c_uchar;
pub type is_unbounded_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub type is_infinite_func =
unsafe extern "C" fn(lp: *mut lprec, value: libc::c_double)
-> libc::c_uchar;
pub type is_int_func =
unsafe extern "C" fn(lp: *mut lprec, column: libc::c_int)
-> libc::c_uchar;
pub type is_integerscaling_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_lag_trace_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_maxim_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_nativeBFP_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_nativeXLI_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_negative_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub type is_obj_in_basis_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type is_piv_mode_func =
unsafe extern "C" fn(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub type is_piv_rule_func =
unsafe extern "C" fn(lp: *mut lprec, rule: libc::c_int)
-> libc::c_uchar;
pub type is_presolve_func =
unsafe extern "C" fn(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub type is_scalemode_func =
unsafe extern "C" fn(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub type is_scaletype_func =
unsafe extern "C" fn(lp: *mut lprec, scaletype: libc::c_int)
-> libc::c_uchar;
pub type is_semicont_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub type is_SOS_var_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub type is_trace_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type lp_solve_version_func =
unsafe extern "C" fn(majorversion: *mut libc::c_int,
minorversion: *mut libc::c_int,
release: *mut libc::c_int,
build: *mut libc::c_int);
pub type make_lp_func =
extern "C" fn(rows: libc::c_int, columns: libc::c_int)
-> *mut Struct__lprec;
pub type print_constraints_func =
unsafe extern "C" fn(lp: *mut lprec, columns: libc::c_int);
pub type print_debugdump_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub type print_duals_func = unsafe extern "C" fn(lp: *mut lprec);
pub type print_lp_func = unsafe extern "C" fn(lp: *mut lprec);
pub type print_objective_func = unsafe extern "C" fn(lp: *mut lprec);
pub type print_scales_func = unsafe extern "C" fn(lp: *mut lprec);
pub type print_solution_func =
unsafe extern "C" fn(lp: *mut lprec, columns: libc::c_int);
pub type print_str_func =
unsafe extern "C" fn(lp: *mut lprec, str: *mut libc::c_char);
pub type print_tableau_func = unsafe extern "C" fn(lp: *mut lprec);
pub type put_abortfunc_func =
unsafe extern "C" fn(lp: *mut lprec, newctrlc: lphandle_intfunc,
ctrlchandle: *mut libc::c_void);
pub type put_bb_nodefunc_func =
unsafe extern "C" fn(lp: *mut lprec, newnode: lphandleint_intfunc,
bbnodehandle: *mut libc::c_void);
pub type put_bb_branchfunc_func =
unsafe extern "C" fn(lp: *mut lprec, newbranch: lphandleint_intfunc,
bbbranchhandle: *mut libc::c_void);
pub type put_logfunc_func =
unsafe extern "C" fn(lp: *mut lprec, newlog: lphandlestr_func,
loghandle: *mut libc::c_void);
pub type put_msgfunc_func =
unsafe extern "C" fn(lp: *mut lprec, newmsg: lphandleint_func,
msghandle: *mut libc::c_void,
mask: libc::c_int);
pub type read_LP_func =
unsafe extern "C" fn(filename: *mut libc::c_char,
verbose: libc::c_int,
lp_name: *mut libc::c_char)
-> *mut Struct__lprec;
pub type read_MPS_func =
unsafe extern "C" fn(filename: *mut libc::c_char,
options: libc::c_int)
-> *mut Struct__lprec;
pub type read_XLI_func =
unsafe extern "C" fn(xliname: *mut libc::c_char,
modelname: *mut libc::c_char,
dataname: *mut libc::c_char,
options: *mut libc::c_char,
verbose: libc::c_int)
-> *mut Struct__lprec;
pub type read_basis_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char,
info: *mut libc::c_char)
-> libc::c_uchar;
pub type reset_basis_func = unsafe extern "C" fn(lp: *mut lprec);
pub type read_params_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char,
options: *mut libc::c_char)
-> libc::c_uchar;
pub type reset_params_func = unsafe extern "C" fn(lp: *mut lprec);
pub type resize_lp_func =
unsafe extern "C" fn(lp: *mut lprec, rows: libc::c_int,
columns: libc::c_int)
-> libc::c_uchar;
pub type set_add_rowmode_func =
unsafe extern "C" fn(lp: *mut lprec, turnon: libc::c_uchar)
-> libc::c_uchar;
pub type set_anti_degen_func =
unsafe extern "C" fn(lp: *mut lprec, anti_degen: libc::c_int);
pub type set_basisvar_func =
unsafe extern "C" fn(lp: *mut lprec, basisPos: libc::c_int,
enteringCol: libc::c_int)
-> libc::c_int;
pub type set_basis_func =
unsafe extern "C" fn(lp: *mut lprec,
bascolumn: *mut libc::c_int,
nonbasic: libc::c_uchar)
-> libc::c_uchar;
pub type set_basiscrash_func =
unsafe extern "C" fn(lp: *mut lprec, mode: libc::c_int);
pub type set_bb_depthlimit_func =
unsafe extern "C" fn(lp: *mut lprec, bb_maxlevel: libc::c_int);
pub type set_bb_floorfirst_func =
unsafe extern "C" fn(lp: *mut lprec,
bb_floorfirst: libc::c_int);
pub type set_bb_rule_func =
unsafe extern "C" fn(lp: *mut lprec, bb_rule: libc::c_int);
pub type set_BFP_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub type set_binary_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
must_be_bin: libc::c_uchar)
-> libc::c_uchar;
pub type set_bounds_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
lower: libc::c_double,
upper: libc::c_double)
-> libc::c_uchar;
pub type set_bounds_tighter_func =
unsafe extern "C" fn(lp: *mut lprec, tighten: libc::c_uchar);
pub type set_break_at_first_func =
unsafe extern "C" fn(lp: *mut lprec,
break_at_first: libc::c_uchar);
pub type set_break_at_value_func =
unsafe extern "C" fn(lp: *mut lprec,
break_at_value: libc::c_double);
pub type set_column_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
column: *mut libc::c_double)
-> libc::c_uchar;
pub type set_columnex_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int)
-> libc::c_uchar;
pub type set_col_name_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
new_name: *mut libc::c_char)
-> libc::c_uchar;
pub type set_constr_type_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
con_type: libc::c_int)
-> libc::c_uchar;
pub type set_debug_func =
unsafe extern "C" fn(lp: *mut lprec, debug: libc::c_uchar);
pub type set_epsb_func =
unsafe extern "C" fn(lp: *mut lprec, epsb: libc::c_double);
pub type set_epsd_func =
unsafe extern "C" fn(lp: *mut lprec, epsd: libc::c_double);
pub type set_epsel_func =
unsafe extern "C" fn(lp: *mut lprec, epsel: libc::c_double);
pub type set_epsint_func =
unsafe extern "C" fn(lp: *mut lprec, epsint: libc::c_double);
pub type set_epslevel_func =
unsafe extern "C" fn(lp: *mut lprec, epslevel: libc::c_int)
-> libc::c_uchar;
pub type set_epsperturb_func =
unsafe extern "C" fn(lp: *mut lprec,
epsperturb: libc::c_double);
pub type set_epspivot_func =
unsafe extern "C" fn(lp: *mut lprec, epspivot: libc::c_double);
pub type set_unbounded_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub type set_improve_func =
unsafe extern "C" fn(lp: *mut lprec, improve: libc::c_int);
pub type set_infinite_func =
unsafe extern "C" fn(lp: *mut lprec, infinite: libc::c_double);
pub type set_int_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
must_be_int: libc::c_uchar)
-> libc::c_uchar;
pub type set_lag_trace_func =
unsafe extern "C" fn(lp: *mut lprec, lag_trace: libc::c_uchar);
pub type set_lowbo_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub type set_lp_name_func =
unsafe extern "C" fn(lp: *mut lprec, lpname: *mut libc::c_char)
-> libc::c_uchar;
pub type set_mat_func =
unsafe extern "C" fn(lp: *mut lprec, row: libc::c_int,
column: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub type set_maxim_func = unsafe extern "C" fn(lp: *mut lprec);
pub type set_maxpivot_func =
unsafe extern "C" fn(lp: *mut lprec, max_num_inv: libc::c_int);
pub type set_minim_func = unsafe extern "C" fn(lp: *mut lprec);
pub type set_mip_gap_func =
unsafe extern "C" fn(lp: *mut lprec, absolute: libc::c_uchar,
mip_gap: libc::c_double);
pub type set_multiprice_func =
unsafe extern "C" fn(lp: *mut lprec, multiblockdiv: libc::c_int)
-> libc::c_uchar;
pub type set_negrange_func =
unsafe extern "C" fn(lp: *mut lprec, negrange: libc::c_double);
pub type set_obj_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub type set_obj_bound_func =
unsafe extern "C" fn(lp: *mut lprec, obj_bound: libc::c_double);
pub type set_obj_fn_func =
unsafe extern "C" fn(lp: *mut lprec, row: *mut libc::c_double)
-> libc::c_uchar;
pub type set_obj_fnex_func =
unsafe extern "C" fn(lp: *mut lprec, count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_uchar;
pub type set_obj_in_basis_func =
unsafe extern "C" fn(lp: *mut lprec,
obj_in_basis: libc::c_uchar);
pub type set_outputfile_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub type set_outputstream_func =
unsafe extern "C" fn(lp: *mut lprec, stream: *mut libc::FILE);
pub type set_partialprice_func =
unsafe extern "C" fn(lp: *mut lprec, blockcount: libc::c_int,
blockstart: *mut libc::c_int,
isrow: libc::c_uchar)
-> libc::c_uchar;
pub type set_pivoting_func =
unsafe extern "C" fn(lp: *mut lprec, piv_rule: libc::c_int);
pub type set_preferdual_func =
unsafe extern "C" fn(lp: *mut lprec, dodual: libc::c_uchar);
pub type set_presolve_func =
unsafe extern "C" fn(lp: *mut lprec, presolvemode: libc::c_int,
maxloops: libc::c_int);
pub type set_print_sol_func =
unsafe extern "C" fn(lp: *mut lprec, print_sol: libc::c_int);
pub type set_pseudocosts_func =
unsafe extern "C" fn(lp: *mut lprec,
clower: *mut libc::c_double,
cupper: *mut libc::c_double,
updatelimit: *mut libc::c_int)
-> libc::c_uchar;
pub type set_rh_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub type set_rh_range_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
deltavalue: libc::c_double)
-> libc::c_uchar;
pub type set_rh_vec_func =
unsafe extern "C" fn(lp: *mut lprec, rh: *mut libc::c_double);
pub type set_row_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
row: *mut libc::c_double)
-> libc::c_uchar;
pub type set_rowex_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_uchar;
pub type set_row_name_func =
unsafe extern "C" fn(lp: *mut lprec, rownr: libc::c_int,
new_name: *mut libc::c_char)
-> libc::c_uchar;
pub type set_scalelimit_func =
unsafe extern "C" fn(lp: *mut lprec,
scalelimit: libc::c_double);
pub type set_scaling_func =
unsafe extern "C" fn(lp: *mut lprec, scalemode: libc::c_int);
pub type set_semicont_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
must_be_sc: libc::c_uchar)
-> libc::c_uchar;
pub type set_sense_func =
unsafe extern "C" fn(lp: *mut lprec, maximize: libc::c_uchar);
pub type set_simplextype_func =
unsafe extern "C" fn(lp: *mut lprec, simplextype: libc::c_int);
pub type set_solutionlimit_func =
unsafe extern "C" fn(lp: *mut lprec, limit: libc::c_int);
pub type set_timeout_func =
unsafe extern "C" fn(lp: *mut lprec, sectimeout: libc::c_long);
pub type set_trace_func =
unsafe extern "C" fn(lp: *mut lprec, trace: libc::c_uchar);
pub type set_upbo_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub type set_var_branch_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
branch_mode: libc::c_int)
-> libc::c_uchar;
pub type set_var_weights_func =
unsafe extern "C" fn(lp: *mut lprec,
weights: *mut libc::c_double)
-> libc::c_uchar;
pub type set_verbose_func =
unsafe extern "C" fn(lp: *mut lprec, verbose: libc::c_int);
pub type set_XLI_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub type solve_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type str_add_column_func =
unsafe extern "C" fn(lp: *mut lprec,
col_string: *mut libc::c_char)
-> libc::c_uchar;
pub type str_add_constraint_func =
unsafe extern "C" fn(lp: *mut lprec,
row_string: *mut libc::c_char,
constr_type: libc::c_int,
rh: libc::c_double)
-> libc::c_uchar;
pub type str_add_lag_con_func =
unsafe extern "C" fn(lp: *mut lprec,
row_string: *mut libc::c_char,
con_type: libc::c_int,
rhs: libc::c_double)
-> libc::c_uchar;
pub type str_set_obj_fn_func =
unsafe extern "C" fn(lp: *mut lprec,
row_string: *mut libc::c_char)
-> libc::c_uchar;
pub type str_set_rh_vec_func =
unsafe extern "C" fn(lp: *mut lprec,
rh_string: *mut libc::c_char)
-> libc::c_uchar;
pub type time_elapsed_func =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type unscale_func = unsafe extern "C" fn(lp: *mut lprec);
pub type write_lp_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub type write_LP_func =
unsafe extern "C" fn(lp: *mut lprec, output: *mut libc::FILE)
-> libc::c_uchar;
pub type write_mps_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub type write_MPS_func =
unsafe extern "C" fn(lp: *mut lprec, output: *mut libc::FILE)
-> libc::c_uchar;
pub type write_freemps_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub type write_freeMPS_func =
unsafe extern "C" fn(lp: *mut lprec, output: *mut libc::FILE)
-> libc::c_uchar;
pub type write_XLI_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char,
options: *mut libc::c_char,
results: libc::c_uchar)
-> libc::c_uchar;
pub type write_basis_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub type write_params_func =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char,
options: *mut libc::c_char)
-> libc::c_uchar;
pub type userabortfunc =
unsafe extern "C" fn(lp: *mut lprec, level: libc::c_int)
-> libc::c_uchar;
pub type reportfunc =
unsafe extern "C" fn(lp: *mut lprec, level: libc::c_int,
format: *mut libc::c_char, ...);
pub type explainfunc =
unsafe extern "C" fn(lp: *mut lprec,
format: *mut libc::c_char, ...)
-> *mut libc::c_char;
pub type getvectorfunc =
unsafe extern "C" fn(lp: *mut lprec, varin: libc::c_int,
pcol: *mut libc::c_double,
nzlist: *mut libc::c_int,
maxabs: *mut libc::c_int)
-> libc::c_int;
pub type getpackedfunc =
unsafe extern "C" fn(lp: *mut lprec, j: libc::c_int,
rn: *mut libc::c_int,
bj: *mut libc::c_double)
-> libc::c_int;
pub type get_OF_activefunc =
unsafe extern "C" fn(lp: *mut lprec, varnr: libc::c_int,
mult: libc::c_double)
-> libc::c_double;
pub type getMDOfunc =
unsafe extern "C" fn(lp: *mut lprec,
usedpos: *mut libc::c_uchar,
colorder: *mut libc::c_int,
size: *mut libc::c_int,
symmetric: libc::c_uchar)
-> libc::c_int;
pub type invertfunc =
unsafe extern "C" fn(lp: *mut lprec, shiftbounds: libc::c_uchar,
_final: libc::c_uchar)
-> libc::c_uchar;
pub type set_actionfunc =
unsafe extern "C" fn(actionvar: *mut libc::c_int,
actionmask: libc::c_int);
pub type is_actionfunc =
extern "C" fn(actionvar: libc::c_int,
testmask: libc::c_int) -> libc::c_uchar;
pub type clear_actionfunc =
unsafe extern "C" fn(actionvar: *mut libc::c_int,
actionmask: libc::c_int);
pub type BFPchar = extern "C" fn() -> *mut libc::c_char;
pub type BFP_lp = unsafe extern "C" fn(lp: *mut lprec);
pub type BFP_lpint =
unsafe extern "C" fn(lp: *mut lprec, newsize: libc::c_int);
pub type BFPint_lp =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_int;
pub type BFPint_lpint =
unsafe extern "C" fn(lp: *mut lprec, kind: libc::c_int)
-> libc::c_int;
pub type BFPreal_lp =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_double;
pub type BFPrealp_lp =
unsafe extern "C" fn(lp: *mut lprec) -> *mut libc::c_double;
pub type BFP_lpbool =
unsafe extern "C" fn(lp: *mut lprec, maximum: libc::c_uchar);
pub type BFPint_lpbool =
unsafe extern "C" fn(lp: *mut lprec, maximum: libc::c_uchar)
-> libc::c_int;
pub type BFPint_lpintintboolbool =
unsafe extern "C" fn(lp: *mut lprec, uservars: libc::c_int,
Bsize: libc::c_int,
usedpos: *mut libc::c_uchar,
_final: libc::c_uchar)
-> libc::c_int;
pub type BFP_lprealint =
unsafe extern "C" fn(lp: *mut lprec, pcol: *mut libc::c_double,
nzidx: *mut libc::c_int);
pub type BFP_lprealintrealint =
unsafe extern "C" fn(lp: *mut lprec, prow: *mut libc::c_double,
pnzidx: *mut libc::c_int,
drow: *mut libc::c_double,
dnzidx: *mut libc::c_int);
pub type BFPbool_lp =
unsafe extern "C" fn(lp: *mut lprec) -> libc::c_uchar;
pub type BFPbool_lpbool =
unsafe extern "C" fn(lp: *mut lprec, changesign: libc::c_uchar)
-> libc::c_uchar;
pub type BFPbool_lpint =
unsafe extern "C" fn(lp: *mut lprec, size: libc::c_int)
-> libc::c_uchar;
pub type BFPbool_lpintintchar =
unsafe extern "C" fn(lp: *mut lprec, size: libc::c_int,
deltasize: libc::c_int,
options: *mut libc::c_char)
-> libc::c_uchar;
pub type BFPbool_lpintintint =
unsafe extern "C" fn(lp: *mut lprec, size: libc::c_int,
deltasize: libc::c_int,
sizeofvar: libc::c_int)
-> libc::c_uchar;
pub type BFPlreal_lpintintreal =
unsafe extern "C" fn(lp: *mut lprec, row_nr: libc::c_int,
col_nr: libc::c_int,
pcol: *mut libc::c_double)
-> libc::c_double;
pub type BFPreal_lplrealreal =
unsafe extern "C" fn(lp: *mut lprec, theta: libc::c_double,
pcol: *mut libc::c_double)
-> libc::c_double;
pub type getcolumnex_func =
unsafe extern "C" fn(lp: *mut lprec, colnr: libc::c_int,
nzvalues: *mut libc::c_double,
nzrows: *mut libc::c_int,
mapin: *mut libc::c_int)
-> libc::c_int;
pub type BFPint_lpintrealcbintint =
unsafe extern "C" fn(lp: *mut lprec, items: libc::c_int,
cb: getcolumnex_func,
maprow: *mut libc::c_int,
mapcol: *mut libc::c_int)
-> libc::c_int;
pub type XLIchar = extern "C" fn() -> *mut libc::c_char;
pub type XLIbool_lpintintint =
unsafe extern "C" fn(lp: *mut lprec, size: libc::c_int,
deltasize: libc::c_int,
sizevar: libc::c_int)
-> libc::c_uchar;
pub type XLIbool_lpcharcharcharint =
unsafe extern "C" fn(lp: *mut lprec,
modelname: *mut libc::c_char,
dataname: *mut libc::c_char,
options: *mut libc::c_char,
verbose: libc::c_int)
-> libc::c_uchar;
pub type XLIbool_lpcharcharbool =
unsafe extern "C" fn(lp: *mut lprec,
filename: *mut libc::c_char,
options: *mut libc::c_char,
results: libc::c_uchar)
-> libc::c_uchar;
#[repr(C)]
#[derive(Copy)]
pub struct Struct__lprec {
pub add_column: *mut add_column_func,
pub add_columnex: *mut add_columnex_func,
pub add_constraint: *mut add_constraint_func,
pub add_constraintex: *mut add_constraintex_func,
pub add_lag_con: *mut add_lag_con_func,
pub add_SOS: *mut add_SOS_func,
pub column_in_lp: *mut column_in_lp_func,
pub copy_lp: *mut copy_lp_func,
pub default_basis: *mut default_basis_func,
pub del_column: *mut del_column_func,
pub del_constraint: *mut del_constraint_func,
pub delete_lp: *mut delete_lp_func,
pub dualize_lp: *mut dualize_lp_func,
pub free_lp: *mut free_lp_func,
pub get_anti_degen: *mut get_anti_degen_func,
pub get_basis: *mut get_basis_func,
pub get_basiscrash: *mut get_basiscrash_func,
pub get_bb_depthlimit: *mut get_bb_depthlimit_func,
pub get_bb_floorfirst: *mut get_bb_floorfirst_func,
pub get_bb_rule: *mut get_bb_rule_func,
pub get_bounds_tighter: *mut get_bounds_tighter_func,
pub get_break_at_value: *mut get_break_at_value_func,
pub get_col_name: *mut get_col_name_func,
pub get_columnex: *mut get_columnex_func,
pub get_constr_type: *mut get_constr_type_func,
pub get_constr_value: *mut get_constr_value_func,
pub get_constraints: *mut get_constraints_func,
pub get_dual_solution: *mut get_dual_solution_func,
pub get_epsb: *mut get_epsb_func,
pub get_epsd: *mut get_epsd_func,
pub get_epsel: *mut get_epsel_func,
pub get_epsint: *mut get_epsint_func,
pub get_epsperturb: *mut get_epsperturb_func,
pub get_epspivot: *mut get_epspivot_func,
pub get_improve: *mut get_improve_func,
pub get_infinite: *mut get_infinite_func,
pub get_lambda: *mut get_lambda_func,
pub get_lowbo: *mut get_lowbo_func,
pub get_lp_index: *mut get_lp_index_func,
pub get_lp_name: *mut get_lp_name_func,
pub get_Lrows: *mut get_Lrows_func,
pub get_mat: *mut get_mat_func,
pub get_mat_byindex: *mut get_mat_byindex_func,
pub get_max_level: *mut get_max_level_func,
pub get_maxpivot: *mut get_maxpivot_func,
pub get_mip_gap: *mut get_mip_gap_func,
pub get_multiprice: *mut get_multiprice_func,
pub get_nameindex: *mut get_nameindex_func,
pub get_Ncolumns: *mut get_Ncolumns_func,
pub get_negrange: *mut get_negrange_func,
pub get_nonzeros: *mut get_nz_func,
pub get_Norig_columns: *mut get_Norig_columns_func,
pub get_Norig_rows: *mut get_Norig_rows_func,
pub get_Nrows: *mut get_Nrows_func,
pub get_obj_bound: *mut get_obj_bound_func,
pub get_objective: *mut get_objective_func,
pub get_orig_index: *mut get_orig_index_func,
pub get_origcol_name: *mut get_origcol_name_func,
pub get_origrow_name: *mut get_origrow_name_func,
pub get_partialprice: *mut get_partialprice_func,
pub get_pivoting: *mut get_pivoting_func,
pub get_presolve: *mut get_presolve_func,
pub get_presolveloops: *mut get_presolveloops_func,
pub get_primal_solution: *mut get_primal_solution_func,
pub get_print_sol: *mut get_print_sol_func,
pub get_pseudocosts: *mut get_pseudocosts_func,
pub get_ptr_constraints: *mut get_ptr_constraints_func,
pub get_ptr_dual_solution: *mut get_ptr_dual_solution_func,
pub get_ptr_lambda: *mut get_ptr_lambda_func,
pub get_ptr_primal_solution: *mut get_ptr_primal_solution_func,
pub get_ptr_sensitivity_obj: *mut get_ptr_sensitivity_obj_func,
pub get_ptr_sensitivity_objex: *mut get_ptr_sensitivity_objex_func,
pub get_ptr_sensitivity_rhs: *mut get_ptr_sensitivity_rhs_func,
pub get_ptr_variables: *mut get_ptr_variables_func,
pub get_rh: *mut get_rh_func,
pub get_rh_range: *mut get_rh_range_func,
pub get_row: *mut get_row_func,
pub get_rowex: *mut get_rowex_func,
pub get_row_name: *mut get_row_name_func,
pub get_scalelimit: *mut get_scalelimit_func,
pub get_scaling: *mut get_scaling_func,
pub get_sensitivity_obj: *mut get_sensitivity_obj_func,
pub get_sensitivity_objex: *mut get_sensitivity_objex_func,
pub get_sensitivity_rhs: *mut get_sensitivity_rhs_func,
pub get_simplextype: *mut get_simplextype_func,
pub get_solutioncount: *mut get_solutioncount_func,
pub get_solutionlimit: *mut get_solutionlimit_func,
pub get_status: *mut get_status_func,
pub get_statustext: *mut get_statustext_func,
pub get_timeout: *mut get_timeout_func,
pub get_total_iter: *mut get_total_iter_func,
pub get_total_nodes: *mut get_total_nodes_func,
pub get_upbo: *mut get_upbo_func,
pub get_var_branch: *mut get_var_branch_func,
pub get_var_dualresult: *mut get_var_dualresult_func,
pub get_var_primalresult: *mut get_var_primalresult_func,
pub get_var_priority: *mut get_var_priority_func,
pub get_variables: *mut get_variables_func,
pub get_verbose: *mut get_verbose_func,
pub get_working_objective: *mut get_working_objective_func,
pub has_BFP: *mut has_BFP_func,
pub has_XLI: *mut has_XLI_func,
pub is_add_rowmode: *mut is_add_rowmode_func,
pub is_anti_degen: *mut is_anti_degen_func,
pub is_binary: *mut is_binary_func,
pub is_break_at_first: *mut is_break_at_first_func,
pub is_constr_type: *mut is_constr_type_func,
pub is_debug: *mut is_debug_func,
pub is_feasible: *mut is_feasible_func,
pub is_infinite: *mut is_infinite_func,
pub is_int: *mut is_int_func,
pub is_integerscaling: *mut is_integerscaling_func,
pub is_lag_trace: *mut is_lag_trace_func,
pub is_maxim: *mut is_maxim_func,
pub is_nativeBFP: *mut is_nativeBFP_func,
pub is_nativeXLI: *mut is_nativeXLI_func,
pub is_negative: *mut is_negative_func,
pub is_obj_in_basis: *mut is_obj_in_basis_func,
pub is_piv_mode: *mut is_piv_mode_func,
pub is_piv_rule: *mut is_piv_rule_func,
pub is_presolve: *mut is_presolve_func,
pub is_scalemode: *mut is_scalemode_func,
pub is_scaletype: *mut is_scaletype_func,
pub is_semicont: *mut is_semicont_func,
pub is_SOS_var: *mut is_SOS_var_func,
pub is_trace: *mut is_trace_func,
pub is_unbounded: *mut is_unbounded_func,
pub is_use_names: *mut is_use_names_func,
pub lp_solve_version: *mut lp_solve_version_func,
pub make_lp: *mut make_lp_func,
pub print_constraints: *mut print_constraints_func,
pub print_debugdump: *mut print_debugdump_func,
pub print_duals: *mut print_duals_func,
pub print_lp: *mut print_lp_func,
pub print_objective: *mut print_objective_func,
pub print_scales: *mut print_scales_func,
pub print_solution: *mut print_solution_func,
pub print_str: *mut print_str_func,
pub print_tableau: *mut print_tableau_func,
pub put_abortfunc: *mut put_abortfunc_func,
pub put_bb_nodefunc: *mut put_bb_nodefunc_func,
pub put_bb_branchfunc: *mut put_bb_branchfunc_func,
pub put_logfunc: *mut put_logfunc_func,
pub put_msgfunc: *mut put_msgfunc_func,
pub read_LP: *mut read_LP_func,
pub read_MPS: *mut read_MPS_func,
pub read_XLI: *mut read_XLI_func,
pub read_params: *mut read_params_func,
pub read_basis: *mut read_basis_func,
pub reset_basis: *mut reset_basis_func,
pub reset_params: *mut reset_params_func,
pub resize_lp: *mut resize_lp_func,
pub set_add_rowmode: *mut set_add_rowmode_func,
pub set_anti_degen: *mut set_anti_degen_func,
pub set_basisvar: *mut set_basisvar_func,
pub set_basis: *mut set_basis_func,
pub set_basiscrash: *mut set_basiscrash_func,
pub set_bb_depthlimit: *mut set_bb_depthlimit_func,
pub set_bb_floorfirst: *mut set_bb_floorfirst_func,
pub set_bb_rule: *mut set_bb_rule_func,
pub set_BFP: *mut set_BFP_func,
pub set_binary: *mut set_binary_func,
pub set_bounds: *mut set_bounds_func,
pub set_bounds_tighter: *mut set_bounds_tighter_func,
pub set_break_at_first: *mut set_break_at_first_func,
pub set_break_at_value: *mut set_break_at_value_func,
pub set_column: *mut set_column_func,
pub set_columnex: *mut set_columnex_func,
pub set_col_name: *mut set_col_name_func,
pub set_constr_type: *mut set_constr_type_func,
pub set_debug: *mut set_debug_func,
pub set_epsb: *mut set_epsb_func,
pub set_epsd: *mut set_epsd_func,
pub set_epsel: *mut set_epsel_func,
pub set_epsint: *mut set_epsint_func,
pub set_epslevel: *mut set_epslevel_func,
pub set_epsperturb: *mut set_epsperturb_func,
pub set_epspivot: *mut set_epspivot_func,
pub set_unbounded: *mut set_unbounded_func,
pub set_improve: *mut set_improve_func,
pub set_infinite: *mut set_infinite_func,
pub set_int: *mut set_int_func,
pub set_lag_trace: *mut set_lag_trace_func,
pub set_lowbo: *mut set_lowbo_func,
pub set_lp_name: *mut set_lp_name_func,
pub set_mat: *mut set_mat_func,
pub set_maxim: *mut set_maxim_func,
pub set_maxpivot: *mut set_maxpivot_func,
pub set_minim: *mut set_minim_func,
pub set_mip_gap: *mut set_mip_gap_func,
pub set_multiprice: *mut set_multiprice_func,
pub set_negrange: *mut set_negrange_func,
pub set_obj_bound: *mut set_obj_bound_func,
pub set_obj_fn: *mut set_obj_fn_func,
pub set_obj_fnex: *mut set_obj_fnex_func,
pub set_obj: *mut set_obj_func,
pub set_obj_in_basis: *mut set_obj_in_basis_func,
pub set_outputfile: *mut set_outputfile_func,
pub set_outputstream: *mut set_outputstream_func,
pub set_partialprice: *mut set_partialprice_func,
pub set_pivoting: *mut set_pivoting_func,
pub set_preferdual: *mut set_preferdual_func,
pub set_presolve: *mut set_presolve_func,
pub set_print_sol: *mut set_print_sol_func,
pub set_pseudocosts: *mut set_pseudocosts_func,
pub set_rh: *mut set_rh_func,
pub set_rh_range: *mut set_rh_range_func,
pub set_rh_vec: *mut set_rh_vec_func,
pub set_row: *mut set_row_func,
pub set_rowex: *mut set_rowex_func,
pub set_row_name: *mut set_row_name_func,
pub set_scalelimit: *mut set_scalelimit_func,
pub set_scaling: *mut set_scaling_func,
pub set_semicont: *mut set_semicont_func,
pub set_sense: *mut set_sense_func,
pub set_simplextype: *mut set_simplextype_func,
pub set_solutionlimit: *mut set_solutionlimit_func,
pub set_timeout: *mut set_timeout_func,
pub set_trace: *mut set_trace_func,
pub set_upbo: *mut set_upbo_func,
pub set_use_names: *mut set_use_names_func,
pub set_var_branch: *mut set_var_branch_func,
pub set_var_weights: *mut set_var_weights_func,
pub set_verbose: *mut set_verbose_func,
pub set_XLI: *mut set_XLI_func,
pub solve: *mut solve_func,
pub str_add_column: *mut str_add_column_func,
pub str_add_constraint: *mut str_add_constraint_func,
pub str_add_lag_con: *mut str_add_lag_con_func,
pub str_set_obj_fn: *mut str_set_obj_fn_func,
pub str_set_rh_vec: *mut str_set_rh_vec_func,
pub time_elapsed: *mut time_elapsed_func,
pub unscale: *mut unscale_func,
pub write_lp: *mut write_lp_func,
pub write_LP: *mut write_LP_func,
pub write_mps: *mut write_mps_func,
pub write_MPS: *mut write_MPS_func,
pub write_freemps: *mut write_freemps_func,
pub write_freeMPS: *mut write_freeMPS_func,
pub write_XLI: *mut write_XLI_func,
pub write_basis: *mut write_basis_func,
pub write_params: *mut write_params_func,
pub alignmentspacer: *mut libc::c_int,
pub lp_name: *mut libc::c_char,
pub sum: libc::c_int,
pub rows: libc::c_int,
pub columns: libc::c_int,
pub equalities: libc::c_int,
pub boundedvars: libc::c_int,
pub INTfuture1: libc::c_int,
pub sum_alloc: libc::c_int,
pub rows_alloc: libc::c_int,
pub columns_alloc: libc::c_int,
pub source_is_file: libc::c_uchar,
pub model_is_pure: libc::c_uchar,
pub model_is_valid: libc::c_uchar,
pub tighten_on_set: libc::c_uchar,
pub names_used: libc::c_uchar,
pub use_row_names: libc::c_uchar,
pub use_col_names: libc::c_uchar,
pub lag_trace: libc::c_uchar,
pub spx_trace: libc::c_uchar,
pub bb_trace: libc::c_uchar,
pub streamowned: libc::c_uchar,
pub obj_in_basis: libc::c_uchar,
pub spx_status: libc::c_int,
pub lag_status: libc::c_int,
pub solutioncount: libc::c_int,
pub solutionlimit: libc::c_int,
pub real_solution: libc::c_double,
pub solution: *mut libc::c_double,
pub best_solution: *mut libc::c_double,
pub full_solution: *mut libc::c_double,
pub edgeVector: *mut libc::c_double,
pub drow: *mut libc::c_double,
pub nzdrow: *mut libc::c_int,
pub duals: *mut libc::c_double,
pub full_duals: *mut libc::c_double,
pub dualsfrom: *mut libc::c_double,
pub dualstill: *mut libc::c_double,
pub objfrom: *mut libc::c_double,
pub objtill: *mut libc::c_double,
pub objfromvalue: *mut libc::c_double,
pub orig_obj: *mut libc::c_double,
pub obj: *mut libc::c_double,
pub current_iter: libc::c_longlong,
pub total_iter: libc::c_longlong,
pub current_bswap: libc::c_longlong,
pub total_bswap: libc::c_longlong,
pub solvecount: libc::c_int,
pub max_pivots: libc::c_int,
pub simplex_strategy: libc::c_int,
pub simplex_mode: libc::c_int,
pub verbose: libc::c_int,
pub print_sol: libc::c_int,
pub outstream: *mut libc::FILE,
pub bb_varbranch: *mut libc::c_uchar,
pub piv_strategy: libc::c_int,
pub _piv_rule_: libc::c_int,
pub bb_rule: libc::c_int,
pub bb_floorfirst: libc::c_uchar,
pub bb_breakfirst: libc::c_uchar,
pub _piv_left_: libc::c_uchar,
pub BOOLfuture1: libc::c_uchar,
pub scalelimit: libc::c_double,
pub scalemode: libc::c_int,
pub improve: libc::c_int,
pub anti_degen: libc::c_int,
pub do_presolve: libc::c_int,
pub presolveloops: libc::c_int,
pub perturb_count: libc::c_int,
pub row_name: *mut *mut hashelem,
pub col_name: *mut *mut hashelem,
pub rowname_hashtab: *mut hashtable,
pub colname_hashtab: *mut hashtable,
pub rowblocks: *mut partialrec,
pub colblocks: *mut partialrec,
pub var_type: *mut libc::c_uchar,
pub multivars: *mut multirec,
pub multiblockdiv: libc::c_int,
pub fixedvars: libc::c_int,
pub int_vars: libc::c_int,
pub sc_vars: libc::c_int,
pub sc_lobound: *mut libc::c_double,
pub var_is_free: *mut libc::c_int,
pub var_priority: *mut libc::c_int,
pub GUB: *mut SOSgroup,
pub sos_vars: libc::c_int,
pub sos_ints: libc::c_int,
pub SOS: *mut SOSgroup,
pub sos_priority: *mut libc::c_int,
pub bsolveVal: *mut libc::c_double,
pub bsolveIdx: *mut libc::c_int,
pub orig_rhs: *mut libc::c_double,
pub rhs: *mut libc::c_double,
pub row_type: *mut libc::c_int,
pub longsteps: *mut multirec,
pub orig_upbo: *mut libc::c_double,
pub upbo: *mut libc::c_double,
pub orig_lowbo: *mut libc::c_double,
pub lowbo: *mut libc::c_double,
pub matA: *mut MATrec,
pub invB: *mut INVrec,
pub bb_bounds: *mut BBrec,
pub rootbounds: *mut BBrec,
pub bb_basis: *mut basisrec,
pub rootbasis: *mut basisrec,
pub monitor: *mut OBJmonrec,
pub scalars: *mut libc::c_double,
pub scaling_used: libc::c_uchar,
pub columns_scaled: libc::c_uchar,
pub varmap_locked: libc::c_uchar,
pub basis_valid: libc::c_uchar,
pub crashmode: libc::c_int,
pub var_basic: *mut libc::c_int,
pub val_nonbasic: *mut libc::c_double,
pub is_basic: *mut libc::c_uchar,
pub is_lower: *mut libc::c_uchar,
pub rejectpivot: *mut libc::c_int,
pub bb_PseudoCost: *mut BBPSrec,
pub bb_PseudoUpdates: libc::c_int,
pub bb_strongbranches: libc::c_int,
pub is_strongbranch: libc::c_int,
pub bb_improvements: libc::c_int,
pub rhsmax: libc::c_double,
pub suminfeas: libc::c_double,
pub bigM: libc::c_double,
pub P1extraVal: libc::c_double,
pub P1extraDim: libc::c_int,
pub spx_action: libc::c_int,
pub spx_perturbed: libc::c_uchar,
pub bb_break: libc::c_uchar,
pub wasPreprocessed: libc::c_uchar,
pub wasPresolved: libc::c_uchar,
pub INTfuture2: libc::c_int,
pub matL: *mut MATrec,
pub lag_rhs: *mut libc::c_double,
pub lag_con_type: *mut libc::c_int,
pub lambda: *mut libc::c_double,
pub lag_bound: libc::c_double,
pub lag_accept: libc::c_double,
pub infinite: libc::c_double,
pub negrange: libc::c_double,
pub epsmachine: libc::c_double,
pub epsvalue: libc::c_double,
pub epsprimal: libc::c_double,
pub epsdual: libc::c_double,
pub epspivot: libc::c_double,
pub epsperturb: libc::c_double,
pub epssolution: libc::c_double,
pub bb_status: libc::c_int,
pub bb_level: libc::c_int,
pub bb_maxlevel: libc::c_int,
pub bb_limitlevel: libc::c_int,
pub bb_totalnodes: libc::c_longlong,
pub bb_solutionlevel: libc::c_int,
pub bb_cutpoolsize: libc::c_int,
pub bb_cutpoolused: libc::c_int,
pub bb_constraintOF: libc::c_int,
pub bb_cuttype: *mut libc::c_int,
pub bb_varactive: *mut libc::c_int,
pub bb_upperchange: *mut DeltaVrec,
pub bb_lowerchange: *mut DeltaVrec,
pub bb_deltaOF: libc::c_double,
pub bb_breakOF: libc::c_double,
pub bb_limitOF: libc::c_double,
pub bb_heuristicOF: libc::c_double,
pub bb_parentOF: libc::c_double,
pub bb_workOF: libc::c_double,
pub presolve_undo: *mut presolveundorec,
pub workarrays: *mut workarraysrec,
pub epsint: libc::c_double,
pub mip_absgap: libc::c_double,
pub mip_relgap: libc::c_double,
pub timecreate: libc::c_double,
pub timestart: libc::c_double,
pub timeheuristic: libc::c_double,
pub timepresolved: libc::c_double,
pub timeend: libc::c_double,
pub sectimeout: libc::c_long,
pub ex_status: *mut libc::c_char,
pub hBFP: *mut libc::c_void,
pub bfp_name: *mut BFPchar,
pub bfp_compatible: *mut BFPbool_lpintintint,
pub bfp_init: *mut BFPbool_lpintintchar,
pub bfp_free: *mut BFP_lp,
pub bfp_resize: *mut BFPbool_lpint,
pub bfp_memallocated: *mut BFPint_lp,
pub bfp_restart: *mut BFPbool_lp,
pub bfp_mustrefactorize: *mut BFPbool_lp,
pub bfp_preparefactorization: *mut BFPint_lp,
pub bfp_factorize: *mut BFPint_lpintintboolbool,
pub bfp_finishfactorization: *mut BFP_lp,
pub bfp_updaterefactstats: *mut BFP_lp,
pub bfp_prepareupdate: *mut BFPlreal_lpintintreal,
pub bfp_pivotRHS: *mut BFPreal_lplrealreal,
pub bfp_finishupdate: *mut BFPbool_lpbool,
pub bfp_ftran_prepare: *mut BFP_lprealint,
pub bfp_ftran_normal: *mut BFP_lprealint,
pub bfp_btran_normal: *mut BFP_lprealint,
pub bfp_btran_double: *mut BFP_lprealintrealint,
pub bfp_status: *mut BFPint_lp,
pub bfp_nonzeros: *mut BFPint_lpbool,
pub bfp_implicitslack: *mut BFPbool_lp,
pub bfp_indexbase: *mut BFPint_lp,
pub bfp_rowoffset: *mut BFPint_lp,
pub bfp_pivotmax: *mut BFPint_lp,
pub bfp_pivotalloc: *mut BFPbool_lpint,
pub bfp_colcount: *mut BFPint_lp,
pub bfp_canresetbasis: *mut BFPbool_lp,
pub bfp_efficiency: *mut BFPreal_lp,
pub bfp_pivotvector: *mut BFPrealp_lp,
pub bfp_pivotcount: *mut BFPint_lp,
pub bfp_refactcount: *mut BFPint_lpint,
pub bfp_isSetI: *mut BFPbool_lp,
pub bfp_findredundant: *mut BFPint_lpintrealcbintint,
pub hXLI: *mut libc::c_void,
pub xli_name: *mut XLIchar,
pub xli_compatible: *mut XLIbool_lpintintint,
pub xli_readmodel: *mut XLIbool_lpcharcharcharint,
pub xli_writemodel: *mut XLIbool_lpcharcharbool,
pub userabort: *mut userabortfunc,
pub report: *mut reportfunc,
pub explain: *mut explainfunc,
pub get_lpcolumn: *mut getvectorfunc,
pub get_basiscolumn: *mut getpackedfunc,
pub get_OF_active: *mut get_OF_activefunc,
pub getMDO: *mut getMDOfunc,
pub invert: *mut invertfunc,
pub set_action: *mut set_actionfunc,
pub is_action: *mut is_actionfunc,
pub clear_action: *mut clear_actionfunc,
pub ctrlc: *mut lphandle_intfunc,
pub ctrlchandle: *mut libc::c_void,
pub writelog: *mut lphandlestr_func,
pub loghandle: *mut libc::c_void,
pub debuginfo: *mut lphandlestr_func,
pub usermessage: *mut lphandleint_func,
pub msgmask: libc::c_int,
pub msghandle: *mut libc::c_void,
pub bb_usenode: *mut lphandleint_intfunc,
pub bb_nodehandle: *mut libc::c_void,
pub bb_usebranch: *mut lphandleint_intfunc,
pub bb_branchhandle: *mut libc::c_void,
pub rowcol_name: *mut libc::c_char,
}
impl ::core::clone::Clone for Struct__lprec {
fn clone(&self) -> Self { *self }
}
impl ::core::default::Default for Struct__lprec {
fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
#[cfg(not(windows))]
pub type read_modeldata_func =
unsafe extern "C" fn(userhandle: *mut libc::c_void,
buf: *mut libc::c_char,
max_size: libc::c_int)
-> libc::c_int;
#[cfg(not(windows))]
pub type write_modeldata_func =
unsafe extern "C" fn(userhandle: *mut libc::c_void,
buf: *mut libc::c_char)
-> libc::c_int;
#[cfg(windows)]
pub type read_modeldata_func =
unsafe extern "stdcall" fn(userhandle: *mut libc::c_void,
buf: *mut libc::c_char,
max_size: libc::c_int)
-> libc::c_int;
#[cfg(windows)]
pub type write_modeldata_func =
unsafe extern "stdcall" fn(userhandle: *mut libc::c_void,
buf: *mut libc::c_char)
-> libc::c_int;
#[cfg(not(windows))]
extern "C" {
pub fn allocCHAR(lp: *mut lprec, ptr: *mut *mut libc::c_char,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocMYBOOL(lp: *mut lprec, ptr: *mut *mut libc::c_uchar,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocINT(lp: *mut lprec, ptr: *mut *mut libc::c_int,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocREAL(lp: *mut lprec, ptr: *mut *mut libc::c_double,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocLREAL(lp: *mut lprec, ptr: *mut *mut libc::c_double,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocFREE(lp: *mut lprec, ptr: *mut *mut libc::c_void)
-> libc::c_uchar;
pub fn cloneREAL(lp: *mut lprec, origlist: *mut libc::c_double,
size: libc::c_int)
-> *mut libc::c_double;
pub fn cloneMYBOOL(lp: *mut lprec, origlist: *mut libc::c_uchar,
size: libc::c_int)
-> *mut libc::c_uchar;
pub fn cloneINT(lp: *mut lprec, origlist: *mut libc::c_int,
size: libc::c_int)
-> *mut libc::c_int;
pub fn comp_bits(bitarray1: *mut libc::c_uchar,
bitarray2: *mut libc::c_uchar,
items: libc::c_int) -> libc::c_int;
pub fn mempool_create(lp: *mut lprec) -> *mut workarraysrec;
pub fn mempool_obtainVector(mempool: *mut workarraysrec,
count: libc::c_int,
unitsize: libc::c_int)
-> *mut libc::c_char;
pub fn mempool_releaseVector(mempool: *mut workarraysrec,
memvector: *mut libc::c_char,
forcefree: libc::c_uchar)
-> libc::c_uchar;
pub fn mempool_free(mempool: *mut *mut workarraysrec)
-> libc::c_uchar;
pub fn roundVector(myvector: *mut libc::c_double,
endpos: libc::c_int,
roundzero: libc::c_double);
pub fn normalizeVector(myvector: *mut libc::c_double,
endpos: libc::c_int)
-> libc::c_double;
pub fn swapINT(item1: *mut libc::c_int,
item2: *mut libc::c_int);
pub fn swapREAL(item1: *mut libc::c_double,
item2: *mut libc::c_double);
pub fn swapPTR(item1: *mut *mut libc::c_void,
item2: *mut *mut libc::c_void);
pub fn restoreINT(valREAL: libc::c_double,
epsilon: libc::c_double)
-> libc::c_double;
pub fn roundToPrecision(value: libc::c_double,
precision: libc::c_double)
-> libc::c_double;
pub fn searchFor(target: libc::c_int,
attributes: *mut libc::c_int,
size: libc::c_int,
offset: libc::c_int,
absolute: libc::c_uchar)
-> libc::c_int;
pub fn isINT(lp: *mut lprec, value: libc::c_double)
-> libc::c_uchar;
pub fn isOrigFixed(lp: *mut lprec, varno: libc::c_int)
-> libc::c_uchar;
pub fn chsign_bounds(lobound: *mut libc::c_double,
upbound: *mut libc::c_double);
pub fn rand_uniform(lp: *mut lprec, range: libc::c_double)
-> libc::c_double;
pub fn createLink(size: libc::c_int, linkmap: *mut *mut LLrec,
usedpos: *mut libc::c_uchar)
-> libc::c_int;
pub fn freeLink(linkmap: *mut *mut LLrec) -> libc::c_uchar;
pub fn sizeLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn isActiveLink(linkmap: *mut LLrec, itemnr: libc::c_int)
-> libc::c_uchar;
pub fn countActiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn countInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn firstActiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn lastActiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn appendLink(linkmap: *mut LLrec, newitem: libc::c_int)
-> libc::c_uchar;
pub fn insertLink(linkmap: *mut LLrec, afteritem: libc::c_int,
newitem: libc::c_int)
-> libc::c_uchar;
pub fn setLink(linkmap: *mut LLrec, newitem: libc::c_int)
-> libc::c_uchar;
pub fn fillLink(linkmap: *mut LLrec) -> libc::c_uchar;
pub fn nextActiveLink(linkmap: *mut LLrec,
backitemnr: libc::c_int)
-> libc::c_int;
pub fn prevActiveLink(linkmap: *mut LLrec,
forwitemnr: libc::c_int)
-> libc::c_int;
pub fn firstInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn lastInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn nextInactiveLink(linkmap: *mut LLrec,
backitemnr: libc::c_int)
-> libc::c_int;
pub fn prevInactiveLink(linkmap: *mut LLrec,
forwitemnr: libc::c_int)
-> libc::c_int;
pub fn removeLink(linkmap: *mut LLrec, itemnr: libc::c_int)
-> libc::c_int;
pub fn cloneLink(sourcemap: *mut LLrec, newsize: libc::c_int,
freesource: libc::c_uchar) -> *mut LLrec;
pub fn compareLink(linkmap1: *mut LLrec, linkmap2: *mut LLrec)
-> libc::c_int;
pub fn verifyLink(linkmap: *mut LLrec, itemnr: libc::c_int,
doappend: libc::c_uchar)
-> libc::c_uchar;
pub fn createPackedVector(size: libc::c_int,
values: *mut libc::c_double,
workvector: *mut libc::c_int)
-> *mut PVrec;
pub fn pushPackedVector(PV: *mut PVrec, parent: *mut PVrec);
pub fn unpackPackedVector(PV: *mut PVrec,
target: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn getvaluePackedVector(PV: *mut PVrec, index: libc::c_int)
-> libc::c_double;
pub fn popPackedVector(PV: *mut PVrec) -> *mut PVrec;
pub fn freePackedVector(PV: *mut *mut PVrec) -> libc::c_uchar;
pub fn create_hash_table(size: libc::c_int,
base: libc::c_int) -> *mut hashtable;
pub fn free_hash_table(ht: *mut hashtable);
pub fn findhash(name: *const libc::c_char, ht: *mut hashtable)
-> *mut hashelem;
pub fn puthash(name: *const libc::c_char,
index: libc::c_int, list: *mut *mut hashelem,
ht: *mut hashtable) -> *mut hashelem;
pub fn drophash(name: *const libc::c_char,
list: *mut *mut hashelem, ht: *mut hashtable);
pub fn free_hash_item(hp: *mut *mut hashelem);
pub fn copy_hash_table(ht: *mut hashtable, list: *mut *mut hashelem,
newsize: libc::c_int) -> *mut hashtable;
pub fn find_var(lp: *mut lprec, name: *mut libc::c_char,
verbose: libc::c_uchar)
-> libc::c_int;
pub fn find_row(lp: *mut lprec, name: *mut libc::c_char,
Unconstrained_rows_found: libc::c_uchar)
-> libc::c_int;
pub fn mat_create(lp: *mut lprec, rows: libc::c_int,
columns: libc::c_int,
epsvalue: libc::c_double) -> *mut MATrec;
pub fn mat_memopt(mat: *mut MATrec, rowextra: libc::c_int,
colextra: libc::c_int,
nzextra: libc::c_int)
-> libc::c_uchar;
pub fn mat_free(matrix: *mut *mut MATrec);
pub fn inc_matrow_space(mat: *mut MATrec,
deltarows: libc::c_int)
-> libc::c_uchar;
pub fn mat_mapreplace(mat: *mut MATrec, rowmap: *mut LLrec,
colmap: *mut LLrec, insmat: *mut MATrec)
-> libc::c_int;
pub fn mat_matinsert(mat: *mut MATrec, insmat: *mut MATrec)
-> libc::c_int;
pub fn mat_zerocompact(mat: *mut MATrec) -> libc::c_int;
pub fn mat_rowcompact(mat: *mut MATrec, dozeros: libc::c_uchar)
-> libc::c_int;
pub fn mat_colcompact(mat: *mut MATrec, prev_rows: libc::c_int,
prev_cols: libc::c_int)
-> libc::c_int;
pub fn inc_matcol_space(mat: *mut MATrec,
deltacols: libc::c_int)
-> libc::c_uchar;
pub fn inc_mat_space(mat: *mut MATrec, mindelta: libc::c_int)
-> libc::c_uchar;
pub fn mat_shiftrows(mat: *mut MATrec, bbase: *mut libc::c_int,
delta: libc::c_int, varmap: *mut LLrec)
-> libc::c_int;
pub fn mat_shiftcols(mat: *mut MATrec, bbase: *mut libc::c_int,
delta: libc::c_int, varmap: *mut LLrec)
-> libc::c_int;
pub fn mat_extractmat(mat: *mut MATrec, rowmap: *mut LLrec,
colmap: *mut LLrec,
negated: libc::c_uchar) -> *mut MATrec;
pub fn mat_appendrow(mat: *mut MATrec, count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int,
mult: libc::c_double,
checkrowmode: libc::c_uchar)
-> libc::c_int;
pub fn mat_appendcol(mat: *mut MATrec, count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int,
mult: libc::c_double,
checkrowmode: libc::c_uchar)
-> libc::c_int;
pub fn mat_get_data(lp: *mut lprec, matindex: libc::c_int,
isrow: libc::c_uchar,
rownr: *mut *mut libc::c_int,
colnr: *mut *mut libc::c_int,
value: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn mat_set_rowmap(mat: *mut MATrec,
row_mat_index: libc::c_int,
rownr: libc::c_int,
colnr: libc::c_int,
col_mat_index: libc::c_int)
-> libc::c_uchar;
pub fn mat_indexrange(mat: *mut MATrec, index: libc::c_int,
isrow: libc::c_uchar,
startpos: *mut libc::c_int,
endpos: *mut libc::c_int)
-> libc::c_uchar;
pub fn mat_validate(mat: *mut MATrec) -> libc::c_uchar;
pub fn mat_equalRows(mat: *mut MATrec, baserow: libc::c_int,
comprow: libc::c_int)
-> libc::c_uchar;
pub fn mat_findelm(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int)
-> libc::c_int;
pub fn mat_findins(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int,
insertpos: *mut libc::c_int,
validate: libc::c_uchar)
-> libc::c_int;
pub fn mat_multcol(mat: *mut MATrec, col_nr: libc::c_int,
mult: libc::c_double,
DoObj: libc::c_uchar);
pub fn mat_getitem(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int)
-> libc::c_double;
pub fn mat_setitem(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn mat_additem(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int,
delta: libc::c_double)
-> libc::c_uchar;
pub fn mat_setvalue(mat: *mut MATrec, Row: libc::c_int,
Column: libc::c_int,
Value: libc::c_double,
doscale: libc::c_uchar)
-> libc::c_uchar;
pub fn mat_nonzeros(mat: *mut MATrec) -> libc::c_int;
pub fn mat_collength(mat: *mut MATrec, colnr: libc::c_int)
-> libc::c_int;
pub fn mat_rowlength(mat: *mut MATrec, rownr: libc::c_int)
-> libc::c_int;
pub fn mat_multrow(mat: *mut MATrec, row_nr: libc::c_int,
mult: libc::c_double);
pub fn mat_multadd(mat: *mut MATrec,
lhsvector: *mut libc::c_double,
varnr: libc::c_int,
mult: libc::c_double);
pub fn mat_setrow(mat: *mut MATrec, rowno: libc::c_int,
count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int,
doscale: libc::c_uchar,
checkrowmode: libc::c_uchar)
-> libc::c_uchar;
pub fn mat_setcol(mat: *mut MATrec, colno: libc::c_int,
count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int,
doscale: libc::c_uchar,
checkrowmode: libc::c_uchar)
-> libc::c_uchar;
pub fn mat_mergemat(target: *mut MATrec, source: *mut MATrec,
usecolmap: libc::c_uchar)
-> libc::c_uchar;
pub fn mat_checkcounts(mat: *mut MATrec,
rownum: *mut libc::c_int,
colnum: *mut libc::c_int,
freeonexit: libc::c_uchar)
-> libc::c_int;
pub fn mat_expandcolumn(mat: *mut MATrec, colnr: libc::c_int,
column: *mut libc::c_double,
nzlist: *mut libc::c_int,
signedA: libc::c_uchar)
-> libc::c_int;
pub fn mat_computemax(mat: *mut MATrec) -> libc::c_uchar;
pub fn mat_transpose(mat: *mut MATrec) -> libc::c_uchar;
pub fn invert(lp: *mut lprec, shiftbounds: libc::c_uchar,
_final: libc::c_uchar) -> libc::c_uchar;
pub fn vec_compress(densevector: *mut libc::c_double,
startpos: libc::c_int,
endpos: libc::c_int,
epsilon: libc::c_double,
nzvector: *mut libc::c_double,
nzindex: *mut libc::c_int)
-> libc::c_uchar;
pub fn vec_expand(nzvector: *mut libc::c_double,
nzindex: *mut libc::c_int,
densevector: *mut libc::c_double,
startpos: libc::c_int,
endpos: libc::c_int)
-> libc::c_uchar;
pub fn get_colIndexA(lp: *mut lprec, varset: libc::c_int,
colindex: *mut libc::c_int,
append: libc::c_uchar)
-> libc::c_uchar;
pub fn prod_Ax(lp: *mut lprec, coltarget: *mut libc::c_int,
input: *mut libc::c_double,
nzinput: *mut libc::c_int,
roundzero: libc::c_double,
ofscalar: libc::c_double,
output: *mut libc::c_double,
nzoutput: *mut libc::c_int,
roundmode: libc::c_int) -> libc::c_int;
pub fn prod_xA(lp: *mut lprec, coltarget: *mut libc::c_int,
input: *mut libc::c_double,
nzinput: *mut libc::c_int,
roundzero: libc::c_double,
ofscalar: libc::c_double,
output: *mut libc::c_double,
nzoutput: *mut libc::c_int,
roundmode: libc::c_int) -> libc::c_int;
pub fn prod_xA2(lp: *mut lprec, coltarget: *mut libc::c_int,
prow: *mut libc::c_double,
proundzero: libc::c_double,
pnzprow: *mut libc::c_int,
drow: *mut libc::c_double,
droundzero: libc::c_double,
dnzdrow: *mut libc::c_int,
ofscalar: libc::c_double,
roundmode: libc::c_int)
-> libc::c_uchar;
pub fn fimprove(lp: *mut lprec, pcol: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double)
-> libc::c_uchar;
pub fn ftran(lp: *mut lprec, rhsvector: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double);
pub fn bimprove(lp: *mut lprec, rhsvector: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double)
-> libc::c_uchar;
pub fn btran(lp: *mut lprec, rhsvector: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double);
pub fn fsolve(lp: *mut lprec, varin: libc::c_int,
pcol: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double,
ofscalar: libc::c_double,
prepareupdate: libc::c_uchar)
-> libc::c_uchar;
pub fn bsolve(lp: *mut lprec, row_nr: libc::c_int,
rhsvector: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double,
ofscalar: libc::c_double)
-> libc::c_uchar;
pub fn bsolve_xA2(lp: *mut lprec, coltarget: *mut libc::c_int,
row_nr1: libc::c_int,
vector1: *mut libc::c_double,
roundzero1: libc::c_double,
nzvector1: *mut libc::c_int,
row_nr2: libc::c_int,
vector2: *mut libc::c_double,
roundzero2: libc::c_double,
nzvector2: *mut libc::c_int,
roundmode: libc::c_int);
pub fn createUndoLadder(lp: *mut lprec, levelitems: libc::c_int,
maxlevels: libc::c_int)
-> *mut DeltaVrec;
pub fn incrementUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
pub fn modifyUndoLadder(DV: *mut DeltaVrec, itemno: libc::c_int,
target: *mut libc::c_double,
newvalue: libc::c_double)
-> libc::c_uchar;
pub fn countsUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
pub fn restoreUndoLadder(DV: *mut DeltaVrec,
target: *mut libc::c_double)
-> libc::c_int;
pub fn decrementUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
pub fn freeUndoLadder(DV: *mut *mut DeltaVrec) -> libc::c_uchar;
pub fn appendUndoPresolve(lp: *mut lprec,
isprimal: libc::c_uchar,
beta: libc::c_double,
colnrDep: libc::c_int)
-> libc::c_uchar;
pub fn addUndoPresolve(lp: *mut lprec, isprimal: libc::c_uchar,
colnrElim: libc::c_int,
alpha: libc::c_double,
beta: libc::c_double,
colnrDep: libc::c_int)
-> libc::c_uchar;
pub fn create_BB(lp: *mut lprec, parentBB: *mut BBrec,
dofullcopy: libc::c_uchar) -> *mut BBrec;
pub fn push_BB(lp: *mut lprec, parentBB: *mut BBrec,
varno: libc::c_int,
vartype: libc::c_int,
varcus: libc::c_int) -> *mut BBrec;
pub fn initbranches_BB(BB: *mut BBrec) -> libc::c_uchar;
pub fn fillbranches_BB(BB: *mut BBrec) -> libc::c_uchar;
pub fn nextbranch_BB(BB: *mut BBrec) -> libc::c_uchar;
pub fn strongbranch_BB(lp: *mut lprec, BB: *mut BBrec,
varno: libc::c_int,
vartype: libc::c_int,
varcus: libc::c_int)
-> libc::c_uchar;
pub fn initcuts_BB(lp: *mut lprec) -> libc::c_uchar;
pub fn updatecuts_BB(lp: *mut lprec) -> libc::c_int;
pub fn freecuts_BB(lp: *mut lprec) -> libc::c_uchar;
pub fn findself_BB(BB: *mut BBrec) -> *mut BBrec;
pub fn solve_LP(lp: *mut lprec, BB: *mut BBrec) -> libc::c_int;
pub fn rcfbound_BB(BB: *mut BBrec, varno: libc::c_int,
isINT: libc::c_uchar,
newbound: *mut libc::c_double,
isfeasible: *mut libc::c_uchar)
-> libc::c_int;
pub fn findnode_BB(BB: *mut BBrec, varno: *mut libc::c_int,
vartype: *mut libc::c_int,
varcus: *mut libc::c_int)
-> libc::c_uchar;
pub fn solve_BB(BB: *mut BBrec) -> libc::c_int;
pub fn free_BB(BB: *mut *mut BBrec) -> libc::c_uchar;
pub fn pop_BB(BB: *mut BBrec) -> *mut BBrec;
pub fn run_BB(lp: *mut lprec) -> libc::c_int;
pub fn create_SOSgroup(lp: *mut lprec) -> *mut SOSgroup;
pub fn resize_SOSgroup(group: *mut SOSgroup);
pub fn append_SOSgroup(group: *mut SOSgroup, SOS: *mut SOSrec)
-> libc::c_int;
pub fn clean_SOSgroup(group: *mut SOSgroup,
forceupdatemap: libc::c_uchar)
-> libc::c_int;
pub fn free_SOSgroup(group: *mut *mut SOSgroup);
pub fn create_SOSrec(group: *mut SOSgroup,
name: *mut libc::c_char,
_type: libc::c_int,
priority: libc::c_int,
size: libc::c_int,
variables: *mut libc::c_int,
weights: *mut libc::c_double)
-> *mut SOSrec;
pub fn delete_SOSrec(group: *mut SOSgroup,
sosindex: libc::c_int)
-> libc::c_uchar;
pub fn append_SOSrec(SOS: *mut SOSrec, size: libc::c_int,
variables: *mut libc::c_int,
weights: *mut libc::c_double)
-> libc::c_int;
pub fn free_SOSrec(SOS: *mut SOSrec);
pub fn make_SOSchain(lp: *mut lprec, forceresort: libc::c_uchar)
-> libc::c_int;
pub fn SOS_member_updatemap(group: *mut SOSgroup)
-> libc::c_int;
pub fn SOS_member_sortlist(group: *mut SOSgroup,
sosindex: libc::c_int)
-> libc::c_uchar;
pub fn SOS_shift_col(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec,
forceresort: libc::c_uchar)
-> libc::c_uchar;
pub fn SOS_member_delete(group: *mut SOSgroup,
sosindex: libc::c_int,
member: libc::c_int)
-> libc::c_int;
pub fn SOS_get_type(group: *mut SOSgroup, sosindex: libc::c_int)
-> libc::c_int;
pub fn SOS_infeasible(group: *mut SOSgroup,
sosindex: libc::c_int)
-> libc::c_int;
pub fn SOS_member_index(group: *mut SOSgroup,
sosindex: libc::c_int,
member: libc::c_int)
-> libc::c_int;
pub fn SOS_member_count(group: *mut SOSgroup,
sosindex: libc::c_int)
-> libc::c_int;
pub fn SOS_memberships(group: *mut SOSgroup,
column: libc::c_int)
-> libc::c_int;
pub fn SOS_get_candidates(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int,
excludetarget: libc::c_uchar,
upbound: *mut libc::c_double,
lobound: *mut libc::c_double)
-> *mut libc::c_int;
pub fn SOS_is_member(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_int;
pub fn SOS_is_member_of_type(group: *mut SOSgroup,
column: libc::c_int,
sostype: libc::c_int)
-> libc::c_uchar;
pub fn SOS_set_GUB(group: *mut SOSgroup, sosindex: libc::c_int,
state: libc::c_uchar)
-> libc::c_uchar;
pub fn SOS_is_GUB(group: *mut SOSgroup, sosindex: libc::c_int)
-> libc::c_uchar;
pub fn SOS_is_marked(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_uchar;
pub fn SOS_is_active(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_uchar;
pub fn SOS_is_full(group: *mut SOSgroup, sosindex: libc::c_int,
column: libc::c_int,
activeonly: libc::c_uchar)
-> libc::c_uchar;
pub fn SOS_can_activate(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_uchar;
pub fn SOS_set_marked(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int,
asactive: libc::c_uchar)
-> libc::c_uchar;
pub fn SOS_unmark(group: *mut SOSgroup, sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_uchar;
pub fn SOS_fix_unmarked(group: *mut SOSgroup,
sosindex: libc::c_int,
variable: libc::c_int,
bound: *mut libc::c_double,
value: libc::c_double,
isupper: libc::c_uchar,
diffcount: *mut libc::c_int,
changelog: *mut DeltaVrec)
-> libc::c_int;
pub fn SOS_fix_list(group: *mut SOSgroup, sosindex: libc::c_int,
variable: libc::c_int,
bound: *mut libc::c_double,
varlist: *mut libc::c_int,
isleft: libc::c_uchar,
changelog: *mut DeltaVrec) -> libc::c_int;
pub fn SOS_is_satisfied(group: *mut SOSgroup,
sosindex: libc::c_int,
solution: *mut libc::c_double)
-> libc::c_int;
pub fn SOS_is_feasible(group: *mut SOSgroup,
sosindex: libc::c_int,
solution: *mut libc::c_double)
-> libc::c_uchar;
pub fn lp_solve_version(majorversion: *mut libc::c_int,
minorversion: *mut libc::c_int,
release: *mut libc::c_int,
build: *mut libc::c_int);
pub fn make_lp(rows: libc::c_int,
columns: libc::c_int) -> *mut lprec;
pub fn resize_lp(lp: *mut lprec, rows: libc::c_int,
columns: libc::c_int)
-> libc::c_uchar;
pub fn get_status(lp: *mut lprec) -> libc::c_int;
pub fn get_statustext(lp: *mut lprec, statuscode: libc::c_int)
-> *mut libc::c_char;
pub fn is_obj_in_basis(lp: *mut lprec) -> libc::c_uchar;
pub fn set_obj_in_basis(lp: *mut lprec,
obj_in_basis: libc::c_uchar);
pub fn copy_lp(lp: *mut lprec) -> *mut lprec;
pub fn dualize_lp(lp: *mut lprec) -> libc::c_uchar;
pub fn memopt_lp(lp: *mut lprec, rowextra: libc::c_int,
colextra: libc::c_int,
nzextra: libc::c_int)
-> libc::c_uchar;
pub fn delete_lp(lp: *mut lprec);
pub fn free_lp(plp: *mut *mut lprec);
pub fn set_lp_name(lp: *mut lprec, lpname: *mut libc::c_char)
-> libc::c_uchar;
pub fn get_lp_name(lp: *mut lprec) -> *mut libc::c_char;
pub fn has_BFP(lp: *mut lprec) -> libc::c_uchar;
pub fn is_nativeBFP(lp: *mut lprec) -> libc::c_uchar;
pub fn set_BFP(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn read_XLI(xliname: *mut libc::c_char,
modelname: *mut libc::c_char,
dataname: *mut libc::c_char,
options: *mut libc::c_char,
verbose: libc::c_int) -> *mut lprec;
pub fn write_XLI(lp: *mut lprec, filename: *mut libc::c_char,
options: *mut libc::c_char,
results: libc::c_uchar)
-> libc::c_uchar;
pub fn has_XLI(lp: *mut lprec) -> libc::c_uchar;
pub fn is_nativeXLI(lp: *mut lprec) -> libc::c_uchar;
pub fn set_XLI(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_obj(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn set_obj_fn(lp: *mut lprec, row: *mut libc::c_double)
-> libc::c_uchar;
pub fn set_obj_fnex(lp: *mut lprec, count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_uchar;
pub fn str_set_obj_fn(lp: *mut lprec,
row_string: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_sense(lp: *mut lprec, maximize: libc::c_uchar);
pub fn set_maxim(lp: *mut lprec);
pub fn set_minim(lp: *mut lprec);
pub fn is_maxim(lp: *mut lprec) -> libc::c_uchar;
pub fn add_constraint(lp: *mut lprec, row: *mut libc::c_double,
constr_type: libc::c_int,
rh: libc::c_double)
-> libc::c_uchar;
pub fn add_constraintex(lp: *mut lprec, count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int,
constr_type: libc::c_int,
rh: libc::c_double)
-> libc::c_uchar;
pub fn set_add_rowmode(lp: *mut lprec, turnon: libc::c_uchar)
-> libc::c_uchar;
pub fn is_add_rowmode(lp: *mut lprec) -> libc::c_uchar;
pub fn str_add_constraint(lp: *mut lprec,
row_string: *mut libc::c_char,
constr_type: libc::c_int,
rh: libc::c_double)
-> libc::c_uchar;
pub fn set_row(lp: *mut lprec, rownr: libc::c_int,
row: *mut libc::c_double)
-> libc::c_uchar;
pub fn set_rowex(lp: *mut lprec, rownr: libc::c_int,
count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_uchar;
pub fn get_row(lp: *mut lprec, rownr: libc::c_int,
row: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_rowex(lp: *mut lprec, rownr: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_int;
pub fn del_constraint(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_uchar;
pub fn del_constraintex(lp: *mut lprec, rowmap: *mut LLrec)
-> libc::c_uchar;
pub fn add_lag_con(lp: *mut lprec, row: *mut libc::c_double,
con_type: libc::c_int,
rhs: libc::c_double)
-> libc::c_uchar;
pub fn str_add_lag_con(lp: *mut lprec,
row_string: *mut libc::c_char,
con_type: libc::c_int,
rhs: libc::c_double)
-> libc::c_uchar;
pub fn set_lag_trace(lp: *mut lprec, lag_trace: libc::c_uchar);
pub fn is_lag_trace(lp: *mut lprec) -> libc::c_uchar;
pub fn set_constr_type(lp: *mut lprec, rownr: libc::c_int,
con_type: libc::c_int)
-> libc::c_uchar;
pub fn get_constr_type(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_int;
pub fn get_constr_value(lp: *mut lprec, rownr: libc::c_int,
count: libc::c_int,
primsolution: *mut libc::c_double,
nzindex: *mut libc::c_int)
-> libc::c_double;
pub fn is_constr_type(lp: *mut lprec, rownr: libc::c_int,
mask: libc::c_int)
-> libc::c_uchar;
pub fn get_str_constr_type(lp: *mut lprec,
con_type: libc::c_int)
-> *mut libc::c_char;
pub fn get_constr_class(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_int;
pub fn get_str_constr_class(lp: *mut lprec,
con_class: libc::c_int)
-> *mut libc::c_char;
pub fn set_rh(lp: *mut lprec, rownr: libc::c_int,
value: libc::c_double) -> libc::c_uchar;
pub fn get_rh(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub fn set_rh_range(lp: *mut lprec, rownr: libc::c_int,
deltavalue: libc::c_double)
-> libc::c_uchar;
pub fn get_rh_range(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub fn set_rh_vec(lp: *mut lprec, rh: *mut libc::c_double);
pub fn str_set_rh_vec(lp: *mut lprec,
rh_string: *mut libc::c_char)
-> libc::c_uchar;
pub fn add_column(lp: *mut lprec, column: *mut libc::c_double)
-> libc::c_uchar;
pub fn add_columnex(lp: *mut lprec, count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int)
-> libc::c_uchar;
pub fn str_add_column(lp: *mut lprec,
col_string: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_column(lp: *mut lprec, colnr: libc::c_int,
column: *mut libc::c_double)
-> libc::c_uchar;
pub fn set_columnex(lp: *mut lprec, colnr: libc::c_int,
count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int)
-> libc::c_uchar;
pub fn column_in_lp(lp: *mut lprec, column: *mut libc::c_double)
-> libc::c_int;
pub fn get_columnex(lp: *mut lprec, colnr: libc::c_int,
column: *mut libc::c_double,
nzrow: *mut libc::c_int)
-> libc::c_int;
pub fn get_column(lp: *mut lprec, colnr: libc::c_int,
column: *mut libc::c_double)
-> libc::c_uchar;
pub fn del_column(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn del_columnex(lp: *mut lprec, colmap: *mut LLrec)
-> libc::c_uchar;
pub fn set_mat(lp: *mut lprec, rownr: libc::c_int,
colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn get_mat(lp: *mut lprec, rownr: libc::c_int,
colnr: libc::c_int) -> libc::c_double;
pub fn get_mat_byindex(lp: *mut lprec, matindex: libc::c_int,
isrow: libc::c_uchar,
adjustsign: libc::c_uchar)
-> libc::c_double;
pub fn get_nonzeros(lp: *mut lprec) -> libc::c_int;
pub fn set_bounds_tighter(lp: *mut lprec,
tighten: libc::c_uchar);
pub fn get_bounds(lp: *mut lprec, column: libc::c_int,
lower: *mut libc::c_double,
upper: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_bounds_tighter(lp: *mut lprec) -> libc::c_uchar;
pub fn set_upbo(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn get_upbo(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_double;
pub fn set_lowbo(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn get_lowbo(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_double;
pub fn set_bounds(lp: *mut lprec, colnr: libc::c_int,
lower: libc::c_double,
upper: libc::c_double)
-> libc::c_uchar;
pub fn set_unbounded(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn is_unbounded(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_int(lp: *mut lprec, colnr: libc::c_int,
must_be_int: libc::c_uchar)
-> libc::c_uchar;
pub fn is_int(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_binary(lp: *mut lprec, colnr: libc::c_int,
must_be_bin: libc::c_uchar)
-> libc::c_uchar;
pub fn is_binary(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_semicont(lp: *mut lprec, colnr: libc::c_int,
must_be_sc: libc::c_uchar)
-> libc::c_uchar;
pub fn is_semicont(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn is_negative(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_var_weights(lp: *mut lprec,
weights: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_var_priority(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_int;
pub fn set_pseudocosts(lp: *mut lprec,
clower: *mut libc::c_double,
cupper: *mut libc::c_double,
updatelimit: *mut libc::c_int)
-> libc::c_uchar;
pub fn get_pseudocosts(lp: *mut lprec,
clower: *mut libc::c_double,
cupper: *mut libc::c_double,
updatelimit: *mut libc::c_int)
-> libc::c_uchar;
pub fn add_SOS(lp: *mut lprec, name: *mut libc::c_char,
sostype: libc::c_int,
priority: libc::c_int,
count: libc::c_int,
sosvars: *mut libc::c_int,
weights: *mut libc::c_double)
-> libc::c_int;
pub fn is_SOS_var(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_row_name(lp: *mut lprec, rownr: libc::c_int,
new_name: *mut libc::c_char)
-> libc::c_uchar;
pub fn get_row_name(lp: *mut lprec, rownr: libc::c_int)
-> *mut libc::c_char;
pub fn get_origrow_name(lp: *mut lprec, rownr: libc::c_int)
-> *mut libc::c_char;
pub fn set_col_name(lp: *mut lprec, colnr: libc::c_int,
new_name: *mut libc::c_char)
-> libc::c_uchar;
pub fn get_col_name(lp: *mut lprec, colnr: libc::c_int)
-> *mut libc::c_char;
pub fn get_origcol_name(lp: *mut lprec, colnr: libc::c_int)
-> *mut libc::c_char;
pub fn unscale(lp: *mut lprec);
pub fn set_preferdual(lp: *mut lprec, dodual: libc::c_uchar);
pub fn set_simplextype(lp: *mut lprec,
simplextype: libc::c_int);
pub fn get_simplextype(lp: *mut lprec) -> libc::c_int;
pub fn default_basis(lp: *mut lprec);
pub fn set_basiscrash(lp: *mut lprec, mode: libc::c_int);
pub fn get_basiscrash(lp: *mut lprec) -> libc::c_int;
pub fn set_basisvar(lp: *mut lprec, basisPos: libc::c_int,
enteringCol: libc::c_int)
-> libc::c_int;
pub fn set_basis(lp: *mut lprec, bascolumn: *mut libc::c_int,
nonbasic: libc::c_uchar)
-> libc::c_uchar;
pub fn get_basis(lp: *mut lprec, bascolumn: *mut libc::c_int,
nonbasic: libc::c_uchar)
-> libc::c_uchar;
pub fn reset_basis(lp: *mut lprec);
pub fn guess_basis(lp: *mut lprec,
guessvector: *mut libc::c_double,
basisvector: *mut libc::c_int)
-> libc::c_uchar;
pub fn is_feasible(lp: *mut lprec, values: *mut libc::c_double,
threshold: libc::c_double)
-> libc::c_uchar;
pub fn solve(lp: *mut lprec) -> libc::c_int;
pub fn time_elapsed(lp: *mut lprec) -> libc::c_double;
pub fn put_bb_nodefunc(lp: *mut lprec, newnode: lphandleint_intfunc,
bbnodehandle: *mut libc::c_void);
pub fn put_bb_branchfunc(lp: *mut lprec, newbranch: lphandleint_intfunc,
bbbranchhandle: *mut libc::c_void);
pub fn put_abortfunc(lp: *mut lprec, newctrlc: lphandle_intfunc,
ctrlchandle: *mut libc::c_void);
pub fn put_logfunc(lp: *mut lprec, newlog: lphandlestr_func,
loghandle: *mut libc::c_void);
pub fn put_msgfunc(lp: *mut lprec, newmsg: lphandleint_func,
msghandle: *mut libc::c_void,
mask: libc::c_int);
pub fn get_primal_solution(lp: *mut lprec,
pv: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_primal_solution(lp: *mut lprec,
pv: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_dual_solution(lp: *mut lprec,
rc: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_dual_solution(lp: *mut lprec,
rc: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_lambda(lp: *mut lprec, lambda: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_lambda(lp: *mut lprec,
lambda: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn read_MPS(filename: *mut libc::c_char,
options: libc::c_int) -> *mut lprec;
pub fn read_mps(filename: *mut libc::FILE, options: libc::c_int)
-> *mut lprec;
pub fn read_freeMPS(filename: *mut libc::c_char,
options: libc::c_int) -> *mut lprec;
pub fn read_freemps(filename: *mut libc::FILE, options: libc::c_int)
-> *mut lprec;
pub fn write_mps(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn write_MPS(lp: *mut lprec, output: *mut libc::FILE)
-> libc::c_uchar;
pub fn write_freemps(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn write_freeMPS(lp: *mut lprec, output: *mut libc::FILE)
-> libc::c_uchar;
pub fn write_lp(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn write_LP(lp: *mut lprec, output: *mut libc::FILE)
-> libc::c_uchar;
pub fn LP_readhandle(lp: *mut *mut lprec, filename: *mut libc::FILE,
verbose: libc::c_int,
lp_name: *mut libc::c_char)
-> libc::c_uchar;
pub fn read_lp(filename: *mut libc::FILE, verbose: libc::c_int,
lp_name: *mut libc::c_char) -> *mut lprec;
pub fn read_LP(filename: *mut libc::c_char,
verbose: libc::c_int,
lp_name: *mut libc::c_char) -> *mut lprec;
pub fn write_basis(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn read_basis(lp: *mut lprec, filename: *mut libc::c_char,
info: *mut libc::c_char)
-> libc::c_uchar;
pub fn write_params(lp: *mut lprec, filename: *mut libc::c_char,
options: *mut libc::c_char)
-> libc::c_uchar;
pub fn read_params(lp: *mut lprec, filename: *mut libc::c_char,
options: *mut libc::c_char)
-> libc::c_uchar;
pub fn reset_params(lp: *mut lprec);
pub fn print_lp(lp: *mut lprec);
pub fn print_tableau(lp: *mut lprec);
pub fn print_objective(lp: *mut lprec);
pub fn print_solution(lp: *mut lprec, columns: libc::c_int);
pub fn print_constraints(lp: *mut lprec, columns: libc::c_int);
pub fn print_duals(lp: *mut lprec);
pub fn print_scales(lp: *mut lprec);
pub fn print_str(lp: *mut lprec, str: *mut libc::c_char);
pub fn set_outputstream(lp: *mut lprec, stream: *mut libc::FILE);
pub fn set_outputfile(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_verbose(lp: *mut lprec, verbose: libc::c_int);
pub fn get_verbose(lp: *mut lprec) -> libc::c_int;
pub fn set_timeout(lp: *mut lprec, sectimeout: libc::c_long);
pub fn get_timeout(lp: *mut lprec) -> libc::c_long;
pub fn set_print_sol(lp: *mut lprec, print_sol: libc::c_int);
pub fn get_print_sol(lp: *mut lprec) -> libc::c_int;
pub fn set_debug(lp: *mut lprec, debug: libc::c_uchar);
pub fn is_debug(lp: *mut lprec) -> libc::c_uchar;
pub fn set_trace(lp: *mut lprec, trace: libc::c_uchar);
pub fn is_trace(lp: *mut lprec) -> libc::c_uchar;
pub fn print_debugdump(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_anti_degen(lp: *mut lprec, anti_degen: libc::c_int);
pub fn get_anti_degen(lp: *mut lprec) -> libc::c_int;
pub fn is_anti_degen(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub fn set_presolve(lp: *mut lprec, presolvemode: libc::c_int,
maxloops: libc::c_int);
pub fn get_presolve(lp: *mut lprec) -> libc::c_int;
pub fn get_presolveloops(lp: *mut lprec) -> libc::c_int;
pub fn is_presolve(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub fn get_orig_index(lp: *mut lprec, lp_index: libc::c_int)
-> libc::c_int;
pub fn get_lp_index(lp: *mut lprec, orig_index: libc::c_int)
-> libc::c_int;
pub fn set_maxpivot(lp: *mut lprec, max_num_inv: libc::c_int);
pub fn get_maxpivot(lp: *mut lprec) -> libc::c_int;
pub fn set_obj_bound(lp: *mut lprec, obj_bound: libc::c_double);
pub fn get_obj_bound(lp: *mut lprec) -> libc::c_double;
pub fn set_mip_gap(lp: *mut lprec, absolute: libc::c_uchar,
mip_gap: libc::c_double);
pub fn get_mip_gap(lp: *mut lprec, absolute: libc::c_uchar)
-> libc::c_double;
pub fn set_bb_rule(lp: *mut lprec, bb_rule: libc::c_int);
pub fn get_bb_rule(lp: *mut lprec) -> libc::c_int;
pub fn set_var_branch(lp: *mut lprec, colnr: libc::c_int,
branch_mode: libc::c_int)
-> libc::c_uchar;
pub fn get_var_branch(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_int;
pub fn is_infinite(lp: *mut lprec, value: libc::c_double)
-> libc::c_uchar;
pub fn set_infinite(lp: *mut lprec, infinite: libc::c_double);
pub fn get_infinite(lp: *mut lprec) -> libc::c_double;
pub fn set_epsint(lp: *mut lprec, epsint: libc::c_double);
pub fn get_epsint(lp: *mut lprec) -> libc::c_double;
pub fn set_epsb(lp: *mut lprec, epsb: libc::c_double);
pub fn get_epsb(lp: *mut lprec) -> libc::c_double;
pub fn set_epsd(lp: *mut lprec, epsd: libc::c_double);
pub fn get_epsd(lp: *mut lprec) -> libc::c_double;
pub fn set_epsel(lp: *mut lprec, epsel: libc::c_double);
pub fn get_epsel(lp: *mut lprec) -> libc::c_double;
pub fn set_epslevel(lp: *mut lprec, epslevel: libc::c_int)
-> libc::c_uchar;
pub fn set_scaling(lp: *mut lprec, scalemode: libc::c_int);
pub fn get_scaling(lp: *mut lprec) -> libc::c_int;
pub fn is_scalemode(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub fn is_scaletype(lp: *mut lprec, scaletype: libc::c_int)
-> libc::c_uchar;
pub fn is_integerscaling(lp: *mut lprec) -> libc::c_uchar;
pub fn set_scalelimit(lp: *mut lprec,
scalelimit: libc::c_double);
pub fn get_scalelimit(lp: *mut lprec) -> libc::c_double;
pub fn set_improve(lp: *mut lprec, improve: libc::c_int);
pub fn get_improve(lp: *mut lprec) -> libc::c_int;
pub fn set_pivoting(lp: *mut lprec, piv_rule: libc::c_int);
pub fn get_pivoting(lp: *mut lprec) -> libc::c_int;
pub fn set_partialprice(lp: *mut lprec, blockcount: libc::c_int,
blockstart: *mut libc::c_int,
isrow: libc::c_uchar)
-> libc::c_uchar;
pub fn get_partialprice(lp: *mut lprec,
blockcount: *mut libc::c_int,
blockstart: *mut libc::c_int,
isrow: libc::c_uchar);
pub fn set_multiprice(lp: *mut lprec,
multiblockdiv: libc::c_int)
-> libc::c_uchar;
pub fn get_multiprice(lp: *mut lprec, getabssize: libc::c_uchar)
-> libc::c_int;
pub fn is_use_names(lp: *mut lprec, isrow: libc::c_uchar)
-> libc::c_uchar;
pub fn set_use_names(lp: *mut lprec, isrow: libc::c_uchar,
use_names: libc::c_uchar);
pub fn get_nameindex(lp: *mut lprec, varname: *mut libc::c_char,
isrow: libc::c_uchar)
-> libc::c_int;
pub fn is_piv_mode(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub fn is_piv_rule(lp: *mut lprec, rule: libc::c_int)
-> libc::c_uchar;
pub fn set_break_at_first(lp: *mut lprec,
break_at_first: libc::c_uchar);
pub fn is_break_at_first(lp: *mut lprec) -> libc::c_uchar;
pub fn set_bb_floorfirst(lp: *mut lprec,
bb_floorfirst: libc::c_int);
pub fn get_bb_floorfirst(lp: *mut lprec) -> libc::c_int;
pub fn set_bb_depthlimit(lp: *mut lprec,
bb_maxlevel: libc::c_int);
pub fn get_bb_depthlimit(lp: *mut lprec) -> libc::c_int;
pub fn set_break_at_value(lp: *mut lprec,
break_at_value: libc::c_double);
pub fn get_break_at_value(lp: *mut lprec) -> libc::c_double;
pub fn set_negrange(lp: *mut lprec, negrange: libc::c_double);
pub fn get_negrange(lp: *mut lprec) -> libc::c_double;
pub fn set_epsperturb(lp: *mut lprec,
epsperturb: libc::c_double);
pub fn get_epsperturb(lp: *mut lprec) -> libc::c_double;
pub fn set_epspivot(lp: *mut lprec, epspivot: libc::c_double);
pub fn get_epspivot(lp: *mut lprec) -> libc::c_double;
pub fn get_max_level(lp: *mut lprec) -> libc::c_int;
pub fn get_total_nodes(lp: *mut lprec) -> libc::c_longlong;
pub fn get_total_iter(lp: *mut lprec) -> libc::c_longlong;
pub fn get_objective(lp: *mut lprec) -> libc::c_double;
pub fn get_working_objective(lp: *mut lprec) -> libc::c_double;
pub fn get_var_primalresult(lp: *mut lprec, index: libc::c_int)
-> libc::c_double;
pub fn get_var_dualresult(lp: *mut lprec, index: libc::c_int)
-> libc::c_double;
pub fn get_variables(lp: *mut lprec, var: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_variables(lp: *mut lprec,
var: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_constraints(lp: *mut lprec,
constr: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_constraints(lp: *mut lprec,
constr: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_sensitivity_rhs(lp: *mut lprec,
duals: *mut libc::c_double,
dualsfrom: *mut libc::c_double,
dualstill: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_sensitivity_rhs(lp: *mut lprec,
duals: *mut *mut libc::c_double,
dualsfrom:
*mut *mut libc::c_double,
dualstill:
*mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_sensitivity_obj(lp: *mut lprec,
objfrom: *mut libc::c_double,
objtill: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_sensitivity_objex(lp: *mut lprec,
objfrom: *mut libc::c_double,
objtill: *mut libc::c_double,
objfromvalue: *mut libc::c_double,
objtillvalue: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_sensitivity_obj(lp: *mut lprec,
objfrom:
*mut *mut libc::c_double,
objtill:
*mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_sensitivity_objex(lp: *mut lprec,
objfrom:
*mut *mut libc::c_double,
objtill:
*mut *mut libc::c_double,
objfromvalue:
*mut *mut libc::c_double,
objtillvalue:
*mut *mut libc::c_double)
-> libc::c_uchar;
pub fn set_solutionlimit(lp: *mut lprec, limit: libc::c_int);
pub fn get_solutionlimit(lp: *mut lprec) -> libc::c_int;
pub fn get_solutioncount(lp: *mut lprec) -> libc::c_int;
pub fn get_Norig_rows(lp: *mut lprec) -> libc::c_int;
pub fn get_Nrows(lp: *mut lprec) -> libc::c_int;
pub fn get_Lrows(lp: *mut lprec) -> libc::c_int;
pub fn get_Norig_columns(lp: *mut lprec) -> libc::c_int;
pub fn get_Ncolumns(lp: *mut lprec) -> libc::c_int;
pub fn MPS_readex(newlp: *mut *mut lprec,
userhandle: *mut libc::c_void,
read_modeldata: read_modeldata_func,
typeMPS: libc::c_int,
options: libc::c_int)
-> libc::c_uchar;
pub fn read_lpex(userhandle: *mut libc::c_void,
read_modeldata: read_modeldata_func,
verbose: libc::c_int,
lp_name: *mut libc::c_char) -> *mut lprec;
pub fn write_lpex(lp: *mut lprec, userhandle: *mut libc::c_void,
write_modeldata: write_modeldata_func)
-> libc::c_uchar;
pub fn read_mpsex(userhandle: *mut libc::c_void,
read_modeldata: read_modeldata_func,
options: libc::c_int) -> *mut lprec;
pub fn read_freempsex(userhandle: *mut libc::c_void,
read_modeldata: read_modeldata_func,
options: libc::c_int) -> *mut lprec;
pub fn MPS_writefileex(lp: *mut lprec, typeMPS: libc::c_int,
userhandle: *mut libc::c_void,
write_modeldata: write_modeldata_func)
-> libc::c_uchar;
pub fn set_callbacks(lp: *mut lprec) -> libc::c_uchar;
pub fn yieldformessages(lp: *mut lprec) -> libc::c_int;
pub fn userabort(lp: *mut lprec, message: libc::c_int)
-> libc::c_uchar;
pub fn append_rows(lp: *mut lprec, deltarows: libc::c_int)
-> libc::c_uchar;
pub fn append_columns(lp: *mut lprec, deltacolumns: libc::c_int)
-> libc::c_uchar;
pub fn inc_rows(lp: *mut lprec, delta: libc::c_int);
pub fn inc_columns(lp: *mut lprec, delta: libc::c_int);
pub fn init_rowcol_names(lp: *mut lprec) -> libc::c_uchar;
pub fn inc_row_space(lp: *mut lprec, deltarows: libc::c_int)
-> libc::c_uchar;
pub fn inc_col_space(lp: *mut lprec, deltacols: libc::c_int)
-> libc::c_uchar;
pub fn shift_rowcoldata(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec,
isrow: libc::c_uchar)
-> libc::c_uchar;
pub fn shift_basis(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec,
isrow: libc::c_uchar)
-> libc::c_uchar;
pub fn shift_rowdata(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec)
-> libc::c_uchar;
pub fn shift_coldata(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec)
-> libc::c_uchar;
pub fn is_chsign(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_uchar;
pub fn inc_lag_space(lp: *mut lprec, deltarows: libc::c_int,
ignoreMAT: libc::c_uchar)
-> libc::c_uchar;
pub fn make_lag(server: *mut lprec) -> *mut lprec;
pub fn get_rh_upper(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub fn get_rh_lower(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub fn set_rh_upper(lp: *mut lprec, rownr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn set_rh_lower(lp: *mut lprec, rownr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn bin_count(lp: *mut lprec, working: libc::c_uchar)
-> libc::c_int;
pub fn MIP_count(lp: *mut lprec) -> libc::c_int;
pub fn SOS_count(lp: *mut lprec) -> libc::c_int;
pub fn GUB_count(lp: *mut lprec) -> libc::c_int;
pub fn identify_GUB(lp: *mut lprec, mark: libc::c_uchar)
-> libc::c_int;
pub fn prepare_GUB(lp: *mut lprec) -> libc::c_int;
pub fn refactRecent(lp: *mut lprec) -> libc::c_uchar;
pub fn check_if_less(lp: *mut lprec, x: libc::c_double,
y: libc::c_double,
variable: libc::c_int)
-> libc::c_uchar;
pub fn feasiblePhase1(lp: *mut lprec, epsvalue: libc::c_double)
-> libc::c_uchar;
pub fn free_duals(lp: *mut lprec);
pub fn initialize_solution(lp: *mut lprec,
shiftbounds: libc::c_uchar);
pub fn recompute_solution(lp: *mut lprec,
shiftbounds: libc::c_uchar);
pub fn verify_solution(lp: *mut lprec, reinvert: libc::c_uchar,
info: *mut libc::c_char)
-> libc::c_int;
pub fn check_solution(lp: *mut lprec, lastcolumn: libc::c_int,
solution: *mut libc::c_double,
upbo: *mut libc::c_double,
lowbo: *mut libc::c_double,
tolerance: libc::c_double)
-> libc::c_int;
pub fn is_fixedvar(lp: *mut lprec, variable: libc::c_int)
-> libc::c_uchar;
pub fn is_splitvar(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_action(actionvar: *mut libc::c_int,
actionmask: libc::c_int);
pub fn clear_action(actionvar: *mut libc::c_int,
actionmask: libc::c_int);
pub fn is_action(actionvar: libc::c_int,
testmask: libc::c_int)
-> libc::c_uchar;
pub fn is_bb_rule(lp: *mut lprec, bb_rule: libc::c_int)
-> libc::c_uchar;
pub fn is_bb_mode(lp: *mut lprec, bb_mask: libc::c_int)
-> libc::c_uchar;
pub fn get_piv_rule(lp: *mut lprec) -> libc::c_int;
pub fn get_str_piv_rule(rule: libc::c_int)
-> *mut libc::c_char;
pub fn set_var_priority(lp: *mut lprec) -> libc::c_uchar;
pub fn find_sc_bbvar(lp: *mut lprec, count: *mut libc::c_int)
-> libc::c_int;
pub fn find_sos_bbvar(lp: *mut lprec, count: *mut libc::c_int,
intsos: libc::c_uchar)
-> libc::c_int;
pub fn find_int_bbvar(lp: *mut lprec, count: *mut libc::c_int,
BB: *mut BBrec,
isfeasible: *mut libc::c_uchar)
-> libc::c_int;
pub fn compute_dualslacks(lp: *mut lprec, target: libc::c_int,
dvalues: *mut *mut libc::c_double,
nzdvalues: *mut *mut libc::c_int,
dosum: libc::c_uchar)
-> libc::c_double;
pub fn solution_is_int(lp: *mut lprec, index: libc::c_int,
checkfixed: libc::c_uchar)
-> libc::c_uchar;
pub fn bb_better(lp: *mut lprec, target: libc::c_int,
mode: libc::c_int) -> libc::c_uchar;
pub fn construct_solution(lp: *mut lprec,
target: *mut libc::c_double);
pub fn transfer_solution_var(lp: *mut lprec,
uservar: libc::c_int);
pub fn construct_duals(lp: *mut lprec) -> libc::c_uchar;
pub fn construct_sensitivity_duals(lp: *mut lprec)
-> libc::c_uchar;
pub fn construct_sensitivity_obj(lp: *mut lprec)
-> libc::c_uchar;
pub fn add_GUB(lp: *mut lprec, name: *mut libc::c_char,
priority: libc::c_int,
count: libc::c_int,
sosvars: *mut libc::c_int)
-> libc::c_int;
pub fn push_basis(lp: *mut lprec, basisvar: *mut libc::c_int,
isbasic: *mut libc::c_uchar,
islower: *mut libc::c_uchar) -> *mut basisrec;
pub fn compare_basis(lp: *mut lprec) -> libc::c_uchar;
pub fn restore_basis(lp: *mut lprec) -> libc::c_uchar;
pub fn pop_basis(lp: *mut lprec, restore: libc::c_uchar)
-> libc::c_uchar;
pub fn is_BasisReady(lp: *mut lprec) -> libc::c_uchar;
pub fn is_slackbasis(lp: *mut lprec) -> libc::c_uchar;
pub fn verify_basis(lp: *mut lprec) -> libc::c_uchar;
pub fn unload_basis(lp: *mut lprec, restorelast: libc::c_uchar)
-> libc::c_int;
pub fn perturb_bounds(lp: *mut lprec, perturbed: *mut BBrec,
doRows: libc::c_uchar,
doCols: libc::c_uchar,
includeFIXED: libc::c_uchar)
-> libc::c_int;
pub fn validate_bounds(lp: *mut lprec,
upbo: *mut libc::c_double,
lowbo: *mut libc::c_double)
-> libc::c_uchar;
pub fn impose_bounds(lp: *mut lprec, upbo: *mut libc::c_double,
lowbo: *mut libc::c_double)
-> libc::c_uchar;
pub fn unload_BB(lp: *mut lprec) -> libc::c_int;
pub fn feasibilityOffset(lp: *mut lprec, isdual: libc::c_uchar)
-> libc::c_double;
pub fn isP1extra(lp: *mut lprec) -> libc::c_uchar;
pub fn get_refactfrequency(lp: *mut lprec,
_final: libc::c_uchar)
-> libc::c_double;
pub fn findBasicFixedvar(lp: *mut lprec, afternr: libc::c_int,
slacksonly: libc::c_uchar)
-> libc::c_int;
pub fn isBasisVarFeasible(lp: *mut lprec, tol: libc::c_double,
basis_row: libc::c_int)
-> libc::c_uchar;
pub fn isPrimalFeasible(lp: *mut lprec, tol: libc::c_double,
infeasibles: *mut libc::c_int,
feasibilitygap: *mut libc::c_double)
-> libc::c_uchar;
pub fn isDualFeasible(lp: *mut lprec, tol: libc::c_double,
boundflips: *mut libc::c_int,
infeasibles: *mut libc::c_int,
feasibilitygap: *mut libc::c_double)
-> libc::c_uchar;
pub fn preprocess(lp: *mut lprec) -> libc::c_int;
pub fn postprocess(lp: *mut lprec);
pub fn performiteration(lp: *mut lprec, rownr: libc::c_int,
varin: libc::c_int,
theta: libc::c_double,
primal: libc::c_uchar,
allowminit: libc::c_uchar,
prow: *mut libc::c_double,
nzprow: *mut libc::c_int,
pcol: *mut libc::c_double,
nzpcol: *mut libc::c_int,
boundswaps: *mut libc::c_int)
-> libc::c_uchar;
pub fn transfer_solution(lp: *mut lprec,
dofinal: libc::c_uchar);
pub fn scaled_floor(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double,
epsscale: libc::c_double)
-> libc::c_double;
pub fn scaled_ceil(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double,
epsscale: libc::c_double)
-> libc::c_double;
pub fn varmap_lock(lp: *mut lprec);
pub fn varmap_clear(lp: *mut lprec);
pub fn varmap_canunlock(lp: *mut lprec) -> libc::c_uchar;
pub fn varmap_addconstraint(lp: *mut lprec);
pub fn varmap_addcolumn(lp: *mut lprec);
pub fn varmap_delete(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, varmap: *mut LLrec);
pub fn varmap_compact(lp: *mut lprec, prev_rows: libc::c_int,
prev_cols: libc::c_int);
pub fn varmap_validate(lp: *mut lprec, varno: libc::c_int)
-> libc::c_uchar;
pub fn del_varnameex(lp: *mut lprec, namelist: *mut *mut hashelem,
items: libc::c_int, ht: *mut hashtable,
varnr: libc::c_int, varmap: *mut LLrec)
-> libc::c_uchar;
pub fn init_pseudocost(lp: *mut lprec, pseudotype: libc::c_int)
-> *mut BBPSrec;
pub fn free_pseudocost(lp: *mut lprec);
pub fn get_pseudorange(pc: *mut BBPSrec, mipvar: libc::c_int,
varcode: libc::c_int)
-> libc::c_double;
pub fn update_pseudocost(pc: *mut BBPSrec, mipvar: libc::c_int,
varcode: libc::c_int,
capupper: libc::c_uchar,
varsol: libc::c_double);
pub fn get_pseudobranchcost(pc: *mut BBPSrec,
mipvar: libc::c_int,
dofloor: libc::c_uchar)
-> libc::c_double;
pub fn get_pseudonodecost(pc: *mut BBPSrec, mipvar: libc::c_int,
vartype: libc::c_int,
varsol: libc::c_double)
-> libc::c_double;
pub fn set_OF_override(lp: *mut lprec,
ofVector: *mut libc::c_double);
pub fn set_OF_p1extra(lp: *mut lprec, p1extra: libc::c_double);
pub fn unset_OF_p1extra(lp: *mut lprec);
pub fn modifyOF1(lp: *mut lprec, index: libc::c_int,
ofValue: *mut libc::c_double,
mult: libc::c_double)
-> libc::c_uchar;
pub fn get_OF_active(lp: *mut lprec, varnr: libc::c_int,
mult: libc::c_double)
-> libc::c_double;
pub fn is_OF_nz(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn get_basisOF(lp: *mut lprec, coltarget: *mut libc::c_int,
crow: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_int;
pub fn get_basiscolumn(lp: *mut lprec, j: libc::c_int,
rn: *mut libc::c_int,
bj: *mut libc::c_double)
-> libc::c_int;
pub fn obtain_column(lp: *mut lprec, varin: libc::c_int,
pcol: *mut libc::c_double,
nzlist: *mut libc::c_int,
maxabs: *mut libc::c_int)
-> libc::c_int;
pub fn compute_theta(lp: *mut lprec, rownr: libc::c_int,
theta: *mut libc::c_double,
isupbound: libc::c_int,
HarrisScalar: libc::c_double,
primal: libc::c_uchar)
-> libc::c_int;
pub fn findBasisPos(lp: *mut lprec, notint: libc::c_int,
var_basic: *mut libc::c_int)
-> libc::c_int;
pub fn check_degeneracy(lp: *mut lprec,
pcol: *mut libc::c_double,
degencount: *mut libc::c_int)
-> libc::c_uchar;
}
#[cfg(windows)]
extern "stdcall" {
pub fn allocCHAR(lp: *mut lprec, ptr: *mut *mut libc::c_char,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocMYBOOL(lp: *mut lprec, ptr: *mut *mut libc::c_uchar,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocINT(lp: *mut lprec, ptr: *mut *mut libc::c_int,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocREAL(lp: *mut lprec, ptr: *mut *mut libc::c_double,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocLREAL(lp: *mut lprec, ptr: *mut *mut libc::c_double,
size: libc::c_int,
clear: libc::c_uchar)
-> libc::c_uchar;
pub fn allocFREE(lp: *mut lprec, ptr: *mut *mut libc::c_void)
-> libc::c_uchar;
pub fn cloneREAL(lp: *mut lprec, origlist: *mut libc::c_double,
size: libc::c_int)
-> *mut libc::c_double;
pub fn cloneMYBOOL(lp: *mut lprec, origlist: *mut libc::c_uchar,
size: libc::c_int)
-> *mut libc::c_uchar;
pub fn cloneINT(lp: *mut lprec, origlist: *mut libc::c_int,
size: libc::c_int)
-> *mut libc::c_int;
pub fn comp_bits(bitarray1: *mut libc::c_uchar,
bitarray2: *mut libc::c_uchar,
items: libc::c_int) -> libc::c_int;
pub fn mempool_create(lp: *mut lprec) -> *mut workarraysrec;
pub fn mempool_obtainVector(mempool: *mut workarraysrec,
count: libc::c_int,
unitsize: libc::c_int)
-> *mut libc::c_char;
pub fn mempool_releaseVector(mempool: *mut workarraysrec,
memvector: *mut libc::c_char,
forcefree: libc::c_uchar)
-> libc::c_uchar;
pub fn mempool_free(mempool: *mut *mut workarraysrec)
-> libc::c_uchar;
pub fn roundVector(myvector: *mut libc::c_double,
endpos: libc::c_int,
roundzero: libc::c_double);
pub fn normalizeVector(myvector: *mut libc::c_double,
endpos: libc::c_int)
-> libc::c_double;
pub fn swapINT(item1: *mut libc::c_int,
item2: *mut libc::c_int);
pub fn swapREAL(item1: *mut libc::c_double,
item2: *mut libc::c_double);
pub fn swapPTR(item1: *mut *mut libc::c_void,
item2: *mut *mut libc::c_void);
pub fn restoreINT(valREAL: libc::c_double,
epsilon: libc::c_double)
-> libc::c_double;
pub fn roundToPrecision(value: libc::c_double,
precision: libc::c_double)
-> libc::c_double;
pub fn searchFor(target: libc::c_int,
attributes: *mut libc::c_int,
size: libc::c_int,
offset: libc::c_int,
absolute: libc::c_uchar)
-> libc::c_int;
pub fn isINT(lp: *mut lprec, value: libc::c_double)
-> libc::c_uchar;
pub fn isOrigFixed(lp: *mut lprec, varno: libc::c_int)
-> libc::c_uchar;
pub fn chsign_bounds(lobound: *mut libc::c_double,
upbound: *mut libc::c_double);
pub fn rand_uniform(lp: *mut lprec, range: libc::c_double)
-> libc::c_double;
pub fn createLink(size: libc::c_int, linkmap: *mut *mut LLrec,
usedpos: *mut libc::c_uchar)
-> libc::c_int;
pub fn freeLink(linkmap: *mut *mut LLrec) -> libc::c_uchar;
pub fn sizeLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn isActiveLink(linkmap: *mut LLrec, itemnr: libc::c_int)
-> libc::c_uchar;
pub fn countActiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn countInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn firstActiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn lastActiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn appendLink(linkmap: *mut LLrec, newitem: libc::c_int)
-> libc::c_uchar;
pub fn insertLink(linkmap: *mut LLrec, afteritem: libc::c_int,
newitem: libc::c_int)
-> libc::c_uchar;
pub fn setLink(linkmap: *mut LLrec, newitem: libc::c_int)
-> libc::c_uchar;
pub fn fillLink(linkmap: *mut LLrec) -> libc::c_uchar;
pub fn nextActiveLink(linkmap: *mut LLrec,
backitemnr: libc::c_int)
-> libc::c_int;
pub fn prevActiveLink(linkmap: *mut LLrec,
forwitemnr: libc::c_int)
-> libc::c_int;
pub fn firstInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn lastInactiveLink(linkmap: *mut LLrec) -> libc::c_int;
pub fn nextInactiveLink(linkmap: *mut LLrec,
backitemnr: libc::c_int)
-> libc::c_int;
pub fn prevInactiveLink(linkmap: *mut LLrec,
forwitemnr: libc::c_int)
-> libc::c_int;
pub fn removeLink(linkmap: *mut LLrec, itemnr: libc::c_int)
-> libc::c_int;
pub fn cloneLink(sourcemap: *mut LLrec, newsize: libc::c_int,
freesource: libc::c_uchar) -> *mut LLrec;
pub fn compareLink(linkmap1: *mut LLrec, linkmap2: *mut LLrec)
-> libc::c_int;
pub fn verifyLink(linkmap: *mut LLrec, itemnr: libc::c_int,
doappend: libc::c_uchar)
-> libc::c_uchar;
pub fn createPackedVector(size: libc::c_int,
values: *mut libc::c_double,
workvector: *mut libc::c_int)
-> *mut PVrec;
pub fn pushPackedVector(PV: *mut PVrec, parent: *mut PVrec);
pub fn unpackPackedVector(PV: *mut PVrec,
target: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn getvaluePackedVector(PV: *mut PVrec, index: libc::c_int)
-> libc::c_double;
pub fn popPackedVector(PV: *mut PVrec) -> *mut PVrec;
pub fn freePackedVector(PV: *mut *mut PVrec) -> libc::c_uchar;
pub fn create_hash_table(size: libc::c_int,
base: libc::c_int) -> *mut hashtable;
pub fn free_hash_table(ht: *mut hashtable);
pub fn findhash(name: *const libc::c_char, ht: *mut hashtable)
-> *mut hashelem;
pub fn puthash(name: *const libc::c_char,
index: libc::c_int, list: *mut *mut hashelem,
ht: *mut hashtable) -> *mut hashelem;
pub fn drophash(name: *const libc::c_char,
list: *mut *mut hashelem, ht: *mut hashtable);
pub fn free_hash_item(hp: *mut *mut hashelem);
pub fn copy_hash_table(ht: *mut hashtable, list: *mut *mut hashelem,
newsize: libc::c_int) -> *mut hashtable;
pub fn find_var(lp: *mut lprec, name: *mut libc::c_char,
verbose: libc::c_uchar)
-> libc::c_int;
pub fn find_row(lp: *mut lprec, name: *mut libc::c_char,
Unconstrained_rows_found: libc::c_uchar)
-> libc::c_int;
pub fn mat_create(lp: *mut lprec, rows: libc::c_int,
columns: libc::c_int,
epsvalue: libc::c_double) -> *mut MATrec;
pub fn mat_memopt(mat: *mut MATrec, rowextra: libc::c_int,
colextra: libc::c_int,
nzextra: libc::c_int)
-> libc::c_uchar;
pub fn mat_free(matrix: *mut *mut MATrec);
pub fn inc_matrow_space(mat: *mut MATrec,
deltarows: libc::c_int)
-> libc::c_uchar;
pub fn mat_mapreplace(mat: *mut MATrec, rowmap: *mut LLrec,
colmap: *mut LLrec, insmat: *mut MATrec)
-> libc::c_int;
pub fn mat_matinsert(mat: *mut MATrec, insmat: *mut MATrec)
-> libc::c_int;
pub fn mat_zerocompact(mat: *mut MATrec) -> libc::c_int;
pub fn mat_rowcompact(mat: *mut MATrec, dozeros: libc::c_uchar)
-> libc::c_int;
pub fn mat_colcompact(mat: *mut MATrec, prev_rows: libc::c_int,
prev_cols: libc::c_int)
-> libc::c_int;
pub fn inc_matcol_space(mat: *mut MATrec,
deltacols: libc::c_int)
-> libc::c_uchar;
pub fn inc_mat_space(mat: *mut MATrec, mindelta: libc::c_int)
-> libc::c_uchar;
pub fn mat_shiftrows(mat: *mut MATrec, bbase: *mut libc::c_int,
delta: libc::c_int, varmap: *mut LLrec)
-> libc::c_int;
pub fn mat_shiftcols(mat: *mut MATrec, bbase: *mut libc::c_int,
delta: libc::c_int, varmap: *mut LLrec)
-> libc::c_int;
pub fn mat_extractmat(mat: *mut MATrec, rowmap: *mut LLrec,
colmap: *mut LLrec,
negated: libc::c_uchar) -> *mut MATrec;
pub fn mat_appendrow(mat: *mut MATrec, count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int,
mult: libc::c_double,
checkrowmode: libc::c_uchar)
-> libc::c_int;
pub fn mat_appendcol(mat: *mut MATrec, count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int,
mult: libc::c_double,
checkrowmode: libc::c_uchar)
-> libc::c_int;
pub fn mat_get_data(lp: *mut lprec, matindex: libc::c_int,
isrow: libc::c_uchar,
rownr: *mut *mut libc::c_int,
colnr: *mut *mut libc::c_int,
value: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn mat_set_rowmap(mat: *mut MATrec,
row_mat_index: libc::c_int,
rownr: libc::c_int,
colnr: libc::c_int,
col_mat_index: libc::c_int)
-> libc::c_uchar;
pub fn mat_indexrange(mat: *mut MATrec, index: libc::c_int,
isrow: libc::c_uchar,
startpos: *mut libc::c_int,
endpos: *mut libc::c_int)
-> libc::c_uchar;
pub fn mat_validate(mat: *mut MATrec) -> libc::c_uchar;
pub fn mat_equalRows(mat: *mut MATrec, baserow: libc::c_int,
comprow: libc::c_int)
-> libc::c_uchar;
pub fn mat_findelm(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int)
-> libc::c_int;
pub fn mat_findins(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int,
insertpos: *mut libc::c_int,
validate: libc::c_uchar)
-> libc::c_int;
pub fn mat_multcol(mat: *mut MATrec, col_nr: libc::c_int,
mult: libc::c_double,
DoObj: libc::c_uchar);
pub fn mat_getitem(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int)
-> libc::c_double;
pub fn mat_setitem(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn mat_additem(mat: *mut MATrec, row: libc::c_int,
column: libc::c_int,
delta: libc::c_double)
-> libc::c_uchar;
pub fn mat_setvalue(mat: *mut MATrec, Row: libc::c_int,
Column: libc::c_int,
Value: libc::c_double,
doscale: libc::c_uchar)
-> libc::c_uchar;
pub fn mat_nonzeros(mat: *mut MATrec) -> libc::c_int;
pub fn mat_collength(mat: *mut MATrec, colnr: libc::c_int)
-> libc::c_int;
pub fn mat_rowlength(mat: *mut MATrec, rownr: libc::c_int)
-> libc::c_int;
pub fn mat_multrow(mat: *mut MATrec, row_nr: libc::c_int,
mult: libc::c_double);
pub fn mat_multadd(mat: *mut MATrec,
lhsvector: *mut libc::c_double,
varnr: libc::c_int,
mult: libc::c_double);
pub fn mat_setrow(mat: *mut MATrec, rowno: libc::c_int,
count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int,
doscale: libc::c_uchar,
checkrowmode: libc::c_uchar)
-> libc::c_uchar;
pub fn mat_setcol(mat: *mut MATrec, colno: libc::c_int,
count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int,
doscale: libc::c_uchar,
checkrowmode: libc::c_uchar)
-> libc::c_uchar;
pub fn mat_mergemat(target: *mut MATrec, source: *mut MATrec,
usecolmap: libc::c_uchar)
-> libc::c_uchar;
pub fn mat_checkcounts(mat: *mut MATrec,
rownum: *mut libc::c_int,
colnum: *mut libc::c_int,
freeonexit: libc::c_uchar)
-> libc::c_int;
pub fn mat_expandcolumn(mat: *mut MATrec, colnr: libc::c_int,
column: *mut libc::c_double,
nzlist: *mut libc::c_int,
signedA: libc::c_uchar)
-> libc::c_int;
pub fn mat_computemax(mat: *mut MATrec) -> libc::c_uchar;
pub fn mat_transpose(mat: *mut MATrec) -> libc::c_uchar;
pub fn invert(lp: *mut lprec, shiftbounds: libc::c_uchar,
_final: libc::c_uchar) -> libc::c_uchar;
pub fn vec_compress(densevector: *mut libc::c_double,
startpos: libc::c_int,
endpos: libc::c_int,
epsilon: libc::c_double,
nzvector: *mut libc::c_double,
nzindex: *mut libc::c_int)
-> libc::c_uchar;
pub fn vec_expand(nzvector: *mut libc::c_double,
nzindex: *mut libc::c_int,
densevector: *mut libc::c_double,
startpos: libc::c_int,
endpos: libc::c_int)
-> libc::c_uchar;
pub fn get_colIndexA(lp: *mut lprec, varset: libc::c_int,
colindex: *mut libc::c_int,
append: libc::c_uchar)
-> libc::c_uchar;
pub fn prod_Ax(lp: *mut lprec, coltarget: *mut libc::c_int,
input: *mut libc::c_double,
nzinput: *mut libc::c_int,
roundzero: libc::c_double,
ofscalar: libc::c_double,
output: *mut libc::c_double,
nzoutput: *mut libc::c_int,
roundmode: libc::c_int) -> libc::c_int;
pub fn prod_xA(lp: *mut lprec, coltarget: *mut libc::c_int,
input: *mut libc::c_double,
nzinput: *mut libc::c_int,
roundzero: libc::c_double,
ofscalar: libc::c_double,
output: *mut libc::c_double,
nzoutput: *mut libc::c_int,
roundmode: libc::c_int) -> libc::c_int;
pub fn prod_xA2(lp: *mut lprec, coltarget: *mut libc::c_int,
prow: *mut libc::c_double,
proundzero: libc::c_double,
pnzprow: *mut libc::c_int,
drow: *mut libc::c_double,
droundzero: libc::c_double,
dnzdrow: *mut libc::c_int,
ofscalar: libc::c_double,
roundmode: libc::c_int)
-> libc::c_uchar;
pub fn fimprove(lp: *mut lprec, pcol: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double)
-> libc::c_uchar;
pub fn ftran(lp: *mut lprec, rhsvector: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double);
pub fn bimprove(lp: *mut lprec, rhsvector: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double)
-> libc::c_uchar;
pub fn btran(lp: *mut lprec, rhsvector: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double);
pub fn fsolve(lp: *mut lprec, varin: libc::c_int,
pcol: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double,
ofscalar: libc::c_double,
prepareupdate: libc::c_uchar)
-> libc::c_uchar;
pub fn bsolve(lp: *mut lprec, row_nr: libc::c_int,
rhsvector: *mut libc::c_double,
nzidx: *mut libc::c_int,
roundzero: libc::c_double,
ofscalar: libc::c_double)
-> libc::c_uchar;
pub fn bsolve_xA2(lp: *mut lprec, coltarget: *mut libc::c_int,
row_nr1: libc::c_int,
vector1: *mut libc::c_double,
roundzero1: libc::c_double,
nzvector1: *mut libc::c_int,
row_nr2: libc::c_int,
vector2: *mut libc::c_double,
roundzero2: libc::c_double,
nzvector2: *mut libc::c_int,
roundmode: libc::c_int);
pub fn createUndoLadder(lp: *mut lprec, levelitems: libc::c_int,
maxlevels: libc::c_int)
-> *mut DeltaVrec;
pub fn incrementUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
pub fn modifyUndoLadder(DV: *mut DeltaVrec, itemno: libc::c_int,
target: *mut libc::c_double,
newvalue: libc::c_double)
-> libc::c_uchar;
pub fn countsUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
pub fn restoreUndoLadder(DV: *mut DeltaVrec,
target: *mut libc::c_double)
-> libc::c_int;
pub fn decrementUndoLadder(DV: *mut DeltaVrec) -> libc::c_int;
pub fn freeUndoLadder(DV: *mut *mut DeltaVrec) -> libc::c_uchar;
pub fn appendUndoPresolve(lp: *mut lprec,
isprimal: libc::c_uchar,
beta: libc::c_double,
colnrDep: libc::c_int)
-> libc::c_uchar;
pub fn addUndoPresolve(lp: *mut lprec, isprimal: libc::c_uchar,
colnrElim: libc::c_int,
alpha: libc::c_double,
beta: libc::c_double,
colnrDep: libc::c_int)
-> libc::c_uchar;
pub fn create_BB(lp: *mut lprec, parentBB: *mut BBrec,
dofullcopy: libc::c_uchar) -> *mut BBrec;
pub fn push_BB(lp: *mut lprec, parentBB: *mut BBrec,
varno: libc::c_int,
vartype: libc::c_int,
varcus: libc::c_int) -> *mut BBrec;
pub fn initbranches_BB(BB: *mut BBrec) -> libc::c_uchar;
pub fn fillbranches_BB(BB: *mut BBrec) -> libc::c_uchar;
pub fn nextbranch_BB(BB: *mut BBrec) -> libc::c_uchar;
pub fn strongbranch_BB(lp: *mut lprec, BB: *mut BBrec,
varno: libc::c_int,
vartype: libc::c_int,
varcus: libc::c_int)
-> libc::c_uchar;
pub fn initcuts_BB(lp: *mut lprec) -> libc::c_uchar;
pub fn updatecuts_BB(lp: *mut lprec) -> libc::c_int;
pub fn freecuts_BB(lp: *mut lprec) -> libc::c_uchar;
pub fn findself_BB(BB: *mut BBrec) -> *mut BBrec;
pub fn solve_LP(lp: *mut lprec, BB: *mut BBrec) -> libc::c_int;
pub fn rcfbound_BB(BB: *mut BBrec, varno: libc::c_int,
isINT: libc::c_uchar,
newbound: *mut libc::c_double,
isfeasible: *mut libc::c_uchar)
-> libc::c_int;
pub fn findnode_BB(BB: *mut BBrec, varno: *mut libc::c_int,
vartype: *mut libc::c_int,
varcus: *mut libc::c_int)
-> libc::c_uchar;
pub fn solve_BB(BB: *mut BBrec) -> libc::c_int;
pub fn free_BB(BB: *mut *mut BBrec) -> libc::c_uchar;
pub fn pop_BB(BB: *mut BBrec) -> *mut BBrec;
pub fn run_BB(lp: *mut lprec) -> libc::c_int;
pub fn create_SOSgroup(lp: *mut lprec) -> *mut SOSgroup;
pub fn resize_SOSgroup(group: *mut SOSgroup);
pub fn append_SOSgroup(group: *mut SOSgroup, SOS: *mut SOSrec)
-> libc::c_int;
pub fn clean_SOSgroup(group: *mut SOSgroup,
forceupdatemap: libc::c_uchar)
-> libc::c_int;
pub fn free_SOSgroup(group: *mut *mut SOSgroup);
pub fn create_SOSrec(group: *mut SOSgroup,
name: *mut libc::c_char,
_type: libc::c_int,
priority: libc::c_int,
size: libc::c_int,
variables: *mut libc::c_int,
weights: *mut libc::c_double)
-> *mut SOSrec;
pub fn delete_SOSrec(group: *mut SOSgroup,
sosindex: libc::c_int)
-> libc::c_uchar;
pub fn append_SOSrec(SOS: *mut SOSrec, size: libc::c_int,
variables: *mut libc::c_int,
weights: *mut libc::c_double)
-> libc::c_int;
pub fn free_SOSrec(SOS: *mut SOSrec);
pub fn make_SOSchain(lp: *mut lprec, forceresort: libc::c_uchar)
-> libc::c_int;
pub fn SOS_member_updatemap(group: *mut SOSgroup)
-> libc::c_int;
pub fn SOS_member_sortlist(group: *mut SOSgroup,
sosindex: libc::c_int)
-> libc::c_uchar;
pub fn SOS_shift_col(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec,
forceresort: libc::c_uchar)
-> libc::c_uchar;
pub fn SOS_member_delete(group: *mut SOSgroup,
sosindex: libc::c_int,
member: libc::c_int)
-> libc::c_int;
pub fn SOS_get_type(group: *mut SOSgroup, sosindex: libc::c_int)
-> libc::c_int;
pub fn SOS_infeasible(group: *mut SOSgroup,
sosindex: libc::c_int)
-> libc::c_int;
pub fn SOS_member_index(group: *mut SOSgroup,
sosindex: libc::c_int,
member: libc::c_int)
-> libc::c_int;
pub fn SOS_member_count(group: *mut SOSgroup,
sosindex: libc::c_int)
-> libc::c_int;
pub fn SOS_memberships(group: *mut SOSgroup,
column: libc::c_int)
-> libc::c_int;
pub fn SOS_get_candidates(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int,
excludetarget: libc::c_uchar,
upbound: *mut libc::c_double,
lobound: *mut libc::c_double)
-> *mut libc::c_int;
pub fn SOS_is_member(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_int;
pub fn SOS_is_member_of_type(group: *mut SOSgroup,
column: libc::c_int,
sostype: libc::c_int)
-> libc::c_uchar;
pub fn SOS_set_GUB(group: *mut SOSgroup, sosindex: libc::c_int,
state: libc::c_uchar)
-> libc::c_uchar;
pub fn SOS_is_GUB(group: *mut SOSgroup, sosindex: libc::c_int)
-> libc::c_uchar;
pub fn SOS_is_marked(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_uchar;
pub fn SOS_is_active(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_uchar;
pub fn SOS_is_full(group: *mut SOSgroup, sosindex: libc::c_int,
column: libc::c_int,
activeonly: libc::c_uchar)
-> libc::c_uchar;
pub fn SOS_can_activate(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_uchar;
pub fn SOS_set_marked(group: *mut SOSgroup,
sosindex: libc::c_int,
column: libc::c_int,
asactive: libc::c_uchar)
-> libc::c_uchar;
pub fn SOS_unmark(group: *mut SOSgroup, sosindex: libc::c_int,
column: libc::c_int)
-> libc::c_uchar;
pub fn SOS_fix_unmarked(group: *mut SOSgroup,
sosindex: libc::c_int,
variable: libc::c_int,
bound: *mut libc::c_double,
value: libc::c_double,
isupper: libc::c_uchar,
diffcount: *mut libc::c_int,
changelog: *mut DeltaVrec)
-> libc::c_int;
pub fn SOS_fix_list(group: *mut SOSgroup, sosindex: libc::c_int,
variable: libc::c_int,
bound: *mut libc::c_double,
varlist: *mut libc::c_int,
isleft: libc::c_uchar,
changelog: *mut DeltaVrec) -> libc::c_int;
pub fn SOS_is_satisfied(group: *mut SOSgroup,
sosindex: libc::c_int,
solution: *mut libc::c_double)
-> libc::c_int;
pub fn SOS_is_feasible(group: *mut SOSgroup,
sosindex: libc::c_int,
solution: *mut libc::c_double)
-> libc::c_uchar;
pub fn lp_solve_version(majorversion: *mut libc::c_int,
minorversion: *mut libc::c_int,
release: *mut libc::c_int,
build: *mut libc::c_int);
pub fn make_lp(rows: libc::c_int,
columns: libc::c_int) -> *mut lprec;
pub fn resize_lp(lp: *mut lprec, rows: libc::c_int,
columns: libc::c_int)
-> libc::c_uchar;
pub fn get_status(lp: *mut lprec) -> libc::c_int;
pub fn get_statustext(lp: *mut lprec, statuscode: libc::c_int)
-> *mut libc::c_char;
pub fn is_obj_in_basis(lp: *mut lprec) -> libc::c_uchar;
pub fn set_obj_in_basis(lp: *mut lprec,
obj_in_basis: libc::c_uchar);
pub fn copy_lp(lp: *mut lprec) -> *mut lprec;
pub fn dualize_lp(lp: *mut lprec) -> libc::c_uchar;
pub fn memopt_lp(lp: *mut lprec, rowextra: libc::c_int,
colextra: libc::c_int,
nzextra: libc::c_int)
-> libc::c_uchar;
pub fn delete_lp(lp: *mut lprec);
pub fn free_lp(plp: *mut *mut lprec);
pub fn set_lp_name(lp: *mut lprec, lpname: *mut libc::c_char)
-> libc::c_uchar;
pub fn get_lp_name(lp: *mut lprec) -> *mut libc::c_char;
pub fn has_BFP(lp: *mut lprec) -> libc::c_uchar;
pub fn is_nativeBFP(lp: *mut lprec) -> libc::c_uchar;
pub fn set_BFP(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn read_XLI(xliname: *mut libc::c_char,
modelname: *mut libc::c_char,
dataname: *mut libc::c_char,
options: *mut libc::c_char,
verbose: libc::c_int) -> *mut lprec;
pub fn write_XLI(lp: *mut lprec, filename: *mut libc::c_char,
options: *mut libc::c_char,
results: libc::c_uchar)
-> libc::c_uchar;
pub fn has_XLI(lp: *mut lprec) -> libc::c_uchar;
pub fn is_nativeXLI(lp: *mut lprec) -> libc::c_uchar;
pub fn set_XLI(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_obj(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn set_obj_fn(lp: *mut lprec, row: *mut libc::c_double)
-> libc::c_uchar;
pub fn set_obj_fnex(lp: *mut lprec, count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_uchar;
pub fn str_set_obj_fn(lp: *mut lprec,
row_string: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_sense(lp: *mut lprec, maximize: libc::c_uchar);
pub fn set_maxim(lp: *mut lprec);
pub fn set_minim(lp: *mut lprec);
pub fn is_maxim(lp: *mut lprec) -> libc::c_uchar;
pub fn add_constraint(lp: *mut lprec, row: *mut libc::c_double,
constr_type: libc::c_int,
rh: libc::c_double)
-> libc::c_uchar;
pub fn add_constraintex(lp: *mut lprec, count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int,
constr_type: libc::c_int,
rh: libc::c_double)
-> libc::c_uchar;
pub fn set_add_rowmode(lp: *mut lprec, turnon: libc::c_uchar)
-> libc::c_uchar;
pub fn is_add_rowmode(lp: *mut lprec) -> libc::c_uchar;
pub fn str_add_constraint(lp: *mut lprec,
row_string: *mut libc::c_char,
constr_type: libc::c_int,
rh: libc::c_double)
-> libc::c_uchar;
pub fn set_row(lp: *mut lprec, rownr: libc::c_int,
row: *mut libc::c_double)
-> libc::c_uchar;
pub fn set_rowex(lp: *mut lprec, rownr: libc::c_int,
count: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_uchar;
pub fn get_row(lp: *mut lprec, rownr: libc::c_int,
row: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_rowex(lp: *mut lprec, rownr: libc::c_int,
row: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_int;
pub fn del_constraint(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_uchar;
pub fn del_constraintex(lp: *mut lprec, rowmap: *mut LLrec)
-> libc::c_uchar;
pub fn add_lag_con(lp: *mut lprec, row: *mut libc::c_double,
con_type: libc::c_int,
rhs: libc::c_double)
-> libc::c_uchar;
pub fn str_add_lag_con(lp: *mut lprec,
row_string: *mut libc::c_char,
con_type: libc::c_int,
rhs: libc::c_double)
-> libc::c_uchar;
pub fn set_lag_trace(lp: *mut lprec, lag_trace: libc::c_uchar);
pub fn is_lag_trace(lp: *mut lprec) -> libc::c_uchar;
pub fn set_constr_type(lp: *mut lprec, rownr: libc::c_int,
con_type: libc::c_int)
-> libc::c_uchar;
pub fn get_constr_type(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_int;
pub fn get_constr_value(lp: *mut lprec, rownr: libc::c_int,
count: libc::c_int,
primsolution: *mut libc::c_double,
nzindex: *mut libc::c_int)
-> libc::c_double;
pub fn is_constr_type(lp: *mut lprec, rownr: libc::c_int,
mask: libc::c_int)
-> libc::c_uchar;
pub fn get_str_constr_type(lp: *mut lprec,
con_type: libc::c_int)
-> *mut libc::c_char;
pub fn get_constr_class(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_int;
pub fn get_str_constr_class(lp: *mut lprec,
con_class: libc::c_int)
-> *mut libc::c_char;
pub fn set_rh(lp: *mut lprec, rownr: libc::c_int,
value: libc::c_double) -> libc::c_uchar;
pub fn get_rh(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub fn set_rh_range(lp: *mut lprec, rownr: libc::c_int,
deltavalue: libc::c_double)
-> libc::c_uchar;
pub fn get_rh_range(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub fn set_rh_vec(lp: *mut lprec, rh: *mut libc::c_double);
pub fn str_set_rh_vec(lp: *mut lprec,
rh_string: *mut libc::c_char)
-> libc::c_uchar;
pub fn add_column(lp: *mut lprec, column: *mut libc::c_double)
-> libc::c_uchar;
pub fn add_columnex(lp: *mut lprec, count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int)
-> libc::c_uchar;
pub fn str_add_column(lp: *mut lprec,
col_string: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_column(lp: *mut lprec, colnr: libc::c_int,
column: *mut libc::c_double)
-> libc::c_uchar;
pub fn set_columnex(lp: *mut lprec, colnr: libc::c_int,
count: libc::c_int,
column: *mut libc::c_double,
rowno: *mut libc::c_int)
-> libc::c_uchar;
pub fn column_in_lp(lp: *mut lprec, column: *mut libc::c_double)
-> libc::c_int;
pub fn get_columnex(lp: *mut lprec, colnr: libc::c_int,
column: *mut libc::c_double,
nzrow: *mut libc::c_int)
-> libc::c_int;
pub fn get_column(lp: *mut lprec, colnr: libc::c_int,
column: *mut libc::c_double)
-> libc::c_uchar;
pub fn del_column(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn del_columnex(lp: *mut lprec, colmap: *mut LLrec)
-> libc::c_uchar;
pub fn set_mat(lp: *mut lprec, rownr: libc::c_int,
colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn get_mat(lp: *mut lprec, rownr: libc::c_int,
colnr: libc::c_int) -> libc::c_double;
pub fn get_mat_byindex(lp: *mut lprec, matindex: libc::c_int,
isrow: libc::c_uchar,
adjustsign: libc::c_uchar)
-> libc::c_double;
pub fn get_nonzeros(lp: *mut lprec) -> libc::c_int;
pub fn set_bounds_tighter(lp: *mut lprec,
tighten: libc::c_uchar);
pub fn get_bounds(lp: *mut lprec, column: libc::c_int,
lower: *mut libc::c_double,
upper: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_bounds_tighter(lp: *mut lprec) -> libc::c_uchar;
pub fn set_upbo(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn get_upbo(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_double;
pub fn set_lowbo(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn get_lowbo(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_double;
pub fn set_bounds(lp: *mut lprec, colnr: libc::c_int,
lower: libc::c_double,
upper: libc::c_double)
-> libc::c_uchar;
pub fn set_unbounded(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn is_unbounded(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_int(lp: *mut lprec, colnr: libc::c_int,
must_be_int: libc::c_uchar)
-> libc::c_uchar;
pub fn is_int(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_binary(lp: *mut lprec, colnr: libc::c_int,
must_be_bin: libc::c_uchar)
-> libc::c_uchar;
pub fn is_binary(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_semicont(lp: *mut lprec, colnr: libc::c_int,
must_be_sc: libc::c_uchar)
-> libc::c_uchar;
pub fn is_semicont(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn is_negative(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_var_weights(lp: *mut lprec,
weights: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_var_priority(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_int;
pub fn set_pseudocosts(lp: *mut lprec,
clower: *mut libc::c_double,
cupper: *mut libc::c_double,
updatelimit: *mut libc::c_int)
-> libc::c_uchar;
pub fn get_pseudocosts(lp: *mut lprec,
clower: *mut libc::c_double,
cupper: *mut libc::c_double,
updatelimit: *mut libc::c_int)
-> libc::c_uchar;
pub fn add_SOS(lp: *mut lprec, name: *mut libc::c_char,
sostype: libc::c_int,
priority: libc::c_int,
count: libc::c_int,
sosvars: *mut libc::c_int,
weights: *mut libc::c_double)
-> libc::c_int;
pub fn is_SOS_var(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_row_name(lp: *mut lprec, rownr: libc::c_int,
new_name: *mut libc::c_char)
-> libc::c_uchar;
pub fn get_row_name(lp: *mut lprec, rownr: libc::c_int)
-> *mut libc::c_char;
pub fn get_origrow_name(lp: *mut lprec, rownr: libc::c_int)
-> *mut libc::c_char;
pub fn set_col_name(lp: *mut lprec, colnr: libc::c_int,
new_name: *mut libc::c_char)
-> libc::c_uchar;
pub fn get_col_name(lp: *mut lprec, colnr: libc::c_int)
-> *mut libc::c_char;
pub fn get_origcol_name(lp: *mut lprec, colnr: libc::c_int)
-> *mut libc::c_char;
pub fn unscale(lp: *mut lprec);
pub fn set_preferdual(lp: *mut lprec, dodual: libc::c_uchar);
pub fn set_simplextype(lp: *mut lprec,
simplextype: libc::c_int);
pub fn get_simplextype(lp: *mut lprec) -> libc::c_int;
pub fn default_basis(lp: *mut lprec);
pub fn set_basiscrash(lp: *mut lprec, mode: libc::c_int);
pub fn get_basiscrash(lp: *mut lprec) -> libc::c_int;
pub fn set_basisvar(lp: *mut lprec, basisPos: libc::c_int,
enteringCol: libc::c_int)
-> libc::c_int;
pub fn set_basis(lp: *mut lprec, bascolumn: *mut libc::c_int,
nonbasic: libc::c_uchar)
-> libc::c_uchar;
pub fn get_basis(lp: *mut lprec, bascolumn: *mut libc::c_int,
nonbasic: libc::c_uchar)
-> libc::c_uchar;
pub fn reset_basis(lp: *mut lprec);
pub fn guess_basis(lp: *mut lprec,
guessvector: *mut libc::c_double,
basisvector: *mut libc::c_int)
-> libc::c_uchar;
pub fn is_feasible(lp: *mut lprec, values: *mut libc::c_double,
threshold: libc::c_double)
-> libc::c_uchar;
pub fn solve(lp: *mut lprec) -> libc::c_int;
pub fn time_elapsed(lp: *mut lprec) -> libc::c_double;
pub fn put_bb_nodefunc(lp: *mut lprec, newnode: lphandleint_intfunc,
bbnodehandle: *mut libc::c_void);
pub fn put_bb_branchfunc(lp: *mut lprec, newbranch: lphandleint_intfunc,
bbbranchhandle: *mut libc::c_void);
pub fn put_abortfunc(lp: *mut lprec, newctrlc: lphandle_intfunc,
ctrlchandle: *mut libc::c_void);
pub fn put_logfunc(lp: *mut lprec, newlog: lphandlestr_func,
loghandle: *mut libc::c_void);
pub fn put_msgfunc(lp: *mut lprec, newmsg: lphandleint_func,
msghandle: *mut libc::c_void,
mask: libc::c_int);
pub fn get_primal_solution(lp: *mut lprec,
pv: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_primal_solution(lp: *mut lprec,
pv: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_dual_solution(lp: *mut lprec,
rc: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_dual_solution(lp: *mut lprec,
rc: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_lambda(lp: *mut lprec, lambda: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_lambda(lp: *mut lprec,
lambda: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn read_MPS(filename: *mut libc::c_char,
options: libc::c_int) -> *mut lprec;
pub fn read_mps(filename: *mut libc::FILE, options: libc::c_int)
-> *mut lprec;
pub fn read_freeMPS(filename: *mut libc::c_char,
options: libc::c_int) -> *mut lprec;
pub fn read_freemps(filename: *mut libc::FILE, options: libc::c_int)
-> *mut lprec;
pub fn write_mps(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn write_MPS(lp: *mut lprec, output: *mut libc::FILE)
-> libc::c_uchar;
pub fn write_freemps(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn write_freeMPS(lp: *mut lprec, output: *mut libc::FILE)
-> libc::c_uchar;
pub fn write_lp(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn write_LP(lp: *mut lprec, output: *mut libc::FILE)
-> libc::c_uchar;
pub fn LP_readhandle(lp: *mut *mut lprec, filename: *mut libc::FILE,
verbose: libc::c_int,
lp_name: *mut libc::c_char)
-> libc::c_uchar;
pub fn read_lp(filename: *mut libc::FILE, verbose: libc::c_int,
lp_name: *mut libc::c_char) -> *mut lprec;
pub fn read_LP(filename: *mut libc::c_char,
verbose: libc::c_int,
lp_name: *mut libc::c_char) -> *mut lprec;
pub fn write_basis(lp: *mut lprec, filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn read_basis(lp: *mut lprec, filename: *mut libc::c_char,
info: *mut libc::c_char)
-> libc::c_uchar;
pub fn write_params(lp: *mut lprec, filename: *mut libc::c_char,
options: *mut libc::c_char)
-> libc::c_uchar;
pub fn read_params(lp: *mut lprec, filename: *mut libc::c_char,
options: *mut libc::c_char)
-> libc::c_uchar;
pub fn reset_params(lp: *mut lprec);
pub fn print_lp(lp: *mut lprec);
pub fn print_tableau(lp: *mut lprec);
pub fn print_objective(lp: *mut lprec);
pub fn print_solution(lp: *mut lprec, columns: libc::c_int);
pub fn print_constraints(lp: *mut lprec, columns: libc::c_int);
pub fn print_duals(lp: *mut lprec);
pub fn print_scales(lp: *mut lprec);
pub fn print_str(lp: *mut lprec, str: *mut libc::c_char);
pub fn set_outputstream(lp: *mut lprec, stream: *mut libc::FILE);
pub fn set_outputfile(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_verbose(lp: *mut lprec, verbose: libc::c_int);
pub fn get_verbose(lp: *mut lprec) -> libc::c_int;
pub fn set_timeout(lp: *mut lprec, sectimeout: libc::c_long);
pub fn get_timeout(lp: *mut lprec) -> libc::c_long;
pub fn set_print_sol(lp: *mut lprec, print_sol: libc::c_int);
pub fn get_print_sol(lp: *mut lprec) -> libc::c_int;
pub fn set_debug(lp: *mut lprec, debug: libc::c_uchar);
pub fn is_debug(lp: *mut lprec) -> libc::c_uchar;
pub fn set_trace(lp: *mut lprec, trace: libc::c_uchar);
pub fn is_trace(lp: *mut lprec) -> libc::c_uchar;
pub fn print_debugdump(lp: *mut lprec,
filename: *mut libc::c_char)
-> libc::c_uchar;
pub fn set_anti_degen(lp: *mut lprec, anti_degen: libc::c_int);
pub fn get_anti_degen(lp: *mut lprec) -> libc::c_int;
pub fn is_anti_degen(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub fn set_presolve(lp: *mut lprec, presolvemode: libc::c_int,
maxloops: libc::c_int);
pub fn get_presolve(lp: *mut lprec) -> libc::c_int;
pub fn get_presolveloops(lp: *mut lprec) -> libc::c_int;
pub fn is_presolve(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub fn get_orig_index(lp: *mut lprec, lp_index: libc::c_int)
-> libc::c_int;
pub fn get_lp_index(lp: *mut lprec, orig_index: libc::c_int)
-> libc::c_int;
pub fn set_maxpivot(lp: *mut lprec, max_num_inv: libc::c_int);
pub fn get_maxpivot(lp: *mut lprec) -> libc::c_int;
pub fn set_obj_bound(lp: *mut lprec, obj_bound: libc::c_double);
pub fn get_obj_bound(lp: *mut lprec) -> libc::c_double;
pub fn set_mip_gap(lp: *mut lprec, absolute: libc::c_uchar,
mip_gap: libc::c_double);
pub fn get_mip_gap(lp: *mut lprec, absolute: libc::c_uchar)
-> libc::c_double;
pub fn set_bb_rule(lp: *mut lprec, bb_rule: libc::c_int);
pub fn get_bb_rule(lp: *mut lprec) -> libc::c_int;
pub fn set_var_branch(lp: *mut lprec, colnr: libc::c_int,
branch_mode: libc::c_int)
-> libc::c_uchar;
pub fn get_var_branch(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_int;
pub fn is_infinite(lp: *mut lprec, value: libc::c_double)
-> libc::c_uchar;
pub fn set_infinite(lp: *mut lprec, infinite: libc::c_double);
pub fn get_infinite(lp: *mut lprec) -> libc::c_double;
pub fn set_epsint(lp: *mut lprec, epsint: libc::c_double);
pub fn get_epsint(lp: *mut lprec) -> libc::c_double;
pub fn set_epsb(lp: *mut lprec, epsb: libc::c_double);
pub fn get_epsb(lp: *mut lprec) -> libc::c_double;
pub fn set_epsd(lp: *mut lprec, epsd: libc::c_double);
pub fn get_epsd(lp: *mut lprec) -> libc::c_double;
pub fn set_epsel(lp: *mut lprec, epsel: libc::c_double);
pub fn get_epsel(lp: *mut lprec) -> libc::c_double;
pub fn set_epslevel(lp: *mut lprec, epslevel: libc::c_int)
-> libc::c_uchar;
pub fn set_scaling(lp: *mut lprec, scalemode: libc::c_int);
pub fn get_scaling(lp: *mut lprec) -> libc::c_int;
pub fn is_scalemode(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub fn is_scaletype(lp: *mut lprec, scaletype: libc::c_int)
-> libc::c_uchar;
pub fn is_integerscaling(lp: *mut lprec) -> libc::c_uchar;
pub fn set_scalelimit(lp: *mut lprec,
scalelimit: libc::c_double);
pub fn get_scalelimit(lp: *mut lprec) -> libc::c_double;
pub fn set_improve(lp: *mut lprec, improve: libc::c_int);
pub fn get_improve(lp: *mut lprec) -> libc::c_int;
pub fn set_pivoting(lp: *mut lprec, piv_rule: libc::c_int);
pub fn get_pivoting(lp: *mut lprec) -> libc::c_int;
pub fn set_partialprice(lp: *mut lprec, blockcount: libc::c_int,
blockstart: *mut libc::c_int,
isrow: libc::c_uchar)
-> libc::c_uchar;
pub fn get_partialprice(lp: *mut lprec,
blockcount: *mut libc::c_int,
blockstart: *mut libc::c_int,
isrow: libc::c_uchar);
pub fn set_multiprice(lp: *mut lprec,
multiblockdiv: libc::c_int)
-> libc::c_uchar;
pub fn get_multiprice(lp: *mut lprec, getabssize: libc::c_uchar)
-> libc::c_int;
pub fn is_use_names(lp: *mut lprec, isrow: libc::c_uchar)
-> libc::c_uchar;
pub fn set_use_names(lp: *mut lprec, isrow: libc::c_uchar,
use_names: libc::c_uchar);
pub fn get_nameindex(lp: *mut lprec, varname: *mut libc::c_char,
isrow: libc::c_uchar)
-> libc::c_int;
pub fn is_piv_mode(lp: *mut lprec, testmask: libc::c_int)
-> libc::c_uchar;
pub fn is_piv_rule(lp: *mut lprec, rule: libc::c_int)
-> libc::c_uchar;
pub fn set_break_at_first(lp: *mut lprec,
break_at_first: libc::c_uchar);
pub fn is_break_at_first(lp: *mut lprec) -> libc::c_uchar;
pub fn set_bb_floorfirst(lp: *mut lprec,
bb_floorfirst: libc::c_int);
pub fn get_bb_floorfirst(lp: *mut lprec) -> libc::c_int;
pub fn set_bb_depthlimit(lp: *mut lprec,
bb_maxlevel: libc::c_int);
pub fn get_bb_depthlimit(lp: *mut lprec) -> libc::c_int;
pub fn set_break_at_value(lp: *mut lprec,
break_at_value: libc::c_double);
pub fn get_break_at_value(lp: *mut lprec) -> libc::c_double;
pub fn set_negrange(lp: *mut lprec, negrange: libc::c_double);
pub fn get_negrange(lp: *mut lprec) -> libc::c_double;
pub fn set_epsperturb(lp: *mut lprec,
epsperturb: libc::c_double);
pub fn get_epsperturb(lp: *mut lprec) -> libc::c_double;
pub fn set_epspivot(lp: *mut lprec, epspivot: libc::c_double);
pub fn get_epspivot(lp: *mut lprec) -> libc::c_double;
pub fn get_max_level(lp: *mut lprec) -> libc::c_int;
pub fn get_total_nodes(lp: *mut lprec) -> libc::c_longlong;
pub fn get_total_iter(lp: *mut lprec) -> libc::c_longlong;
pub fn get_objective(lp: *mut lprec) -> libc::c_double;
pub fn get_working_objective(lp: *mut lprec) -> libc::c_double;
pub fn get_var_primalresult(lp: *mut lprec, index: libc::c_int)
-> libc::c_double;
pub fn get_var_dualresult(lp: *mut lprec, index: libc::c_int)
-> libc::c_double;
pub fn get_variables(lp: *mut lprec, var: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_variables(lp: *mut lprec,
var: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_constraints(lp: *mut lprec,
constr: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_constraints(lp: *mut lprec,
constr: *mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_sensitivity_rhs(lp: *mut lprec,
duals: *mut libc::c_double,
dualsfrom: *mut libc::c_double,
dualstill: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_sensitivity_rhs(lp: *mut lprec,
duals: *mut *mut libc::c_double,
dualsfrom:
*mut *mut libc::c_double,
dualstill:
*mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_sensitivity_obj(lp: *mut lprec,
objfrom: *mut libc::c_double,
objtill: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_sensitivity_objex(lp: *mut lprec,
objfrom: *mut libc::c_double,
objtill: *mut libc::c_double,
objfromvalue: *mut libc::c_double,
objtillvalue: *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_sensitivity_obj(lp: *mut lprec,
objfrom:
*mut *mut libc::c_double,
objtill:
*mut *mut libc::c_double)
-> libc::c_uchar;
pub fn get_ptr_sensitivity_objex(lp: *mut lprec,
objfrom:
*mut *mut libc::c_double,
objtill:
*mut *mut libc::c_double,
objfromvalue:
*mut *mut libc::c_double,
objtillvalue:
*mut *mut libc::c_double)
-> libc::c_uchar;
pub fn set_solutionlimit(lp: *mut lprec, limit: libc::c_int);
pub fn get_solutionlimit(lp: *mut lprec) -> libc::c_int;
pub fn get_solutioncount(lp: *mut lprec) -> libc::c_int;
pub fn get_Norig_rows(lp: *mut lprec) -> libc::c_int;
pub fn get_Nrows(lp: *mut lprec) -> libc::c_int;
pub fn get_Lrows(lp: *mut lprec) -> libc::c_int;
pub fn get_Norig_columns(lp: *mut lprec) -> libc::c_int;
pub fn get_Ncolumns(lp: *mut lprec) -> libc::c_int;
pub fn MPS_readex(newlp: *mut *mut lprec,
userhandle: *mut libc::c_void,
read_modeldata: read_modeldata_func,
typeMPS: libc::c_int,
options: libc::c_int)
-> libc::c_uchar;
pub fn read_lpex(userhandle: *mut libc::c_void,
read_modeldata: read_modeldata_func,
verbose: libc::c_int,
lp_name: *mut libc::c_char) -> *mut lprec;
pub fn write_lpex(lp: *mut lprec, userhandle: *mut libc::c_void,
write_modeldata: write_modeldata_func)
-> libc::c_uchar;
pub fn read_mpsex(userhandle: *mut libc::c_void,
read_modeldata: read_modeldata_func,
options: libc::c_int) -> *mut lprec;
pub fn read_freempsex(userhandle: *mut libc::c_void,
read_modeldata: read_modeldata_func,
options: libc::c_int) -> *mut lprec;
pub fn MPS_writefileex(lp: *mut lprec, typeMPS: libc::c_int,
userhandle: *mut libc::c_void,
write_modeldata: write_modeldata_func)
-> libc::c_uchar;
pub fn set_callbacks(lp: *mut lprec) -> libc::c_uchar;
pub fn yieldformessages(lp: *mut lprec) -> libc::c_int;
pub fn userabort(lp: *mut lprec, message: libc::c_int)
-> libc::c_uchar;
pub fn append_rows(lp: *mut lprec, deltarows: libc::c_int)
-> libc::c_uchar;
pub fn append_columns(lp: *mut lprec, deltacolumns: libc::c_int)
-> libc::c_uchar;
pub fn inc_rows(lp: *mut lprec, delta: libc::c_int);
pub fn inc_columns(lp: *mut lprec, delta: libc::c_int);
pub fn init_rowcol_names(lp: *mut lprec) -> libc::c_uchar;
pub fn inc_row_space(lp: *mut lprec, deltarows: libc::c_int)
-> libc::c_uchar;
pub fn inc_col_space(lp: *mut lprec, deltacols: libc::c_int)
-> libc::c_uchar;
pub fn shift_rowcoldata(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec,
isrow: libc::c_uchar)
-> libc::c_uchar;
pub fn shift_basis(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec,
isrow: libc::c_uchar)
-> libc::c_uchar;
pub fn shift_rowdata(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec)
-> libc::c_uchar;
pub fn shift_coldata(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, usedmap: *mut LLrec)
-> libc::c_uchar;
pub fn is_chsign(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_uchar;
pub fn inc_lag_space(lp: *mut lprec, deltarows: libc::c_int,
ignoreMAT: libc::c_uchar)
-> libc::c_uchar;
pub fn make_lag(server: *mut lprec) -> *mut lprec;
pub fn get_rh_upper(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub fn get_rh_lower(lp: *mut lprec, rownr: libc::c_int)
-> libc::c_double;
pub fn set_rh_upper(lp: *mut lprec, rownr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn set_rh_lower(lp: *mut lprec, rownr: libc::c_int,
value: libc::c_double)
-> libc::c_uchar;
pub fn bin_count(lp: *mut lprec, working: libc::c_uchar)
-> libc::c_int;
pub fn MIP_count(lp: *mut lprec) -> libc::c_int;
pub fn SOS_count(lp: *mut lprec) -> libc::c_int;
pub fn GUB_count(lp: *mut lprec) -> libc::c_int;
pub fn identify_GUB(lp: *mut lprec, mark: libc::c_uchar)
-> libc::c_int;
pub fn prepare_GUB(lp: *mut lprec) -> libc::c_int;
pub fn refactRecent(lp: *mut lprec) -> libc::c_uchar;
pub fn check_if_less(lp: *mut lprec, x: libc::c_double,
y: libc::c_double,
variable: libc::c_int)
-> libc::c_uchar;
pub fn feasiblePhase1(lp: *mut lprec, epsvalue: libc::c_double)
-> libc::c_uchar;
pub fn free_duals(lp: *mut lprec);
pub fn initialize_solution(lp: *mut lprec,
shiftbounds: libc::c_uchar);
pub fn recompute_solution(lp: *mut lprec,
shiftbounds: libc::c_uchar);
pub fn verify_solution(lp: *mut lprec, reinvert: libc::c_uchar,
info: *mut libc::c_char)
-> libc::c_int;
pub fn check_solution(lp: *mut lprec, lastcolumn: libc::c_int,
solution: *mut libc::c_double,
upbo: *mut libc::c_double,
lowbo: *mut libc::c_double,
tolerance: libc::c_double)
-> libc::c_int;
pub fn is_fixedvar(lp: *mut lprec, variable: libc::c_int)
-> libc::c_uchar;
pub fn is_splitvar(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn set_action(actionvar: *mut libc::c_int,
actionmask: libc::c_int);
pub fn clear_action(actionvar: *mut libc::c_int,
actionmask: libc::c_int);
pub fn is_action(actionvar: libc::c_int,
testmask: libc::c_int)
-> libc::c_uchar;
pub fn is_bb_rule(lp: *mut lprec, bb_rule: libc::c_int)
-> libc::c_uchar;
pub fn is_bb_mode(lp: *mut lprec, bb_mask: libc::c_int)
-> libc::c_uchar;
pub fn get_piv_rule(lp: *mut lprec) -> libc::c_int;
pub fn get_str_piv_rule(rule: libc::c_int)
-> *mut libc::c_char;
pub fn set_var_priority(lp: *mut lprec) -> libc::c_uchar;
pub fn find_sc_bbvar(lp: *mut lprec, count: *mut libc::c_int)
-> libc::c_int;
pub fn find_sos_bbvar(lp: *mut lprec, count: *mut libc::c_int,
intsos: libc::c_uchar)
-> libc::c_int;
pub fn find_int_bbvar(lp: *mut lprec, count: *mut libc::c_int,
BB: *mut BBrec,
isfeasible: *mut libc::c_uchar)
-> libc::c_int;
pub fn compute_dualslacks(lp: *mut lprec, target: libc::c_int,
dvalues: *mut *mut libc::c_double,
nzdvalues: *mut *mut libc::c_int,
dosum: libc::c_uchar)
-> libc::c_double;
pub fn solution_is_int(lp: *mut lprec, index: libc::c_int,
checkfixed: libc::c_uchar)
-> libc::c_uchar;
pub fn bb_better(lp: *mut lprec, target: libc::c_int,
mode: libc::c_int) -> libc::c_uchar;
pub fn construct_solution(lp: *mut lprec,
target: *mut libc::c_double);
pub fn transfer_solution_var(lp: *mut lprec,
uservar: libc::c_int);
pub fn construct_duals(lp: *mut lprec) -> libc::c_uchar;
pub fn construct_sensitivity_duals(lp: *mut lprec)
-> libc::c_uchar;
pub fn construct_sensitivity_obj(lp: *mut lprec)
-> libc::c_uchar;
pub fn add_GUB(lp: *mut lprec, name: *mut libc::c_char,
priority: libc::c_int,
count: libc::c_int,
sosvars: *mut libc::c_int)
-> libc::c_int;
pub fn push_basis(lp: *mut lprec, basisvar: *mut libc::c_int,
isbasic: *mut libc::c_uchar,
islower: *mut libc::c_uchar) -> *mut basisrec;
pub fn compare_basis(lp: *mut lprec) -> libc::c_uchar;
pub fn restore_basis(lp: *mut lprec) -> libc::c_uchar;
pub fn pop_basis(lp: *mut lprec, restore: libc::c_uchar)
-> libc::c_uchar;
pub fn is_BasisReady(lp: *mut lprec) -> libc::c_uchar;
pub fn is_slackbasis(lp: *mut lprec) -> libc::c_uchar;
pub fn verify_basis(lp: *mut lprec) -> libc::c_uchar;
pub fn unload_basis(lp: *mut lprec, restorelast: libc::c_uchar)
-> libc::c_int;
pub fn perturb_bounds(lp: *mut lprec, perturbed: *mut BBrec,
doRows: libc::c_uchar,
doCols: libc::c_uchar,
includeFIXED: libc::c_uchar)
-> libc::c_int;
pub fn validate_bounds(lp: *mut lprec,
upbo: *mut libc::c_double,
lowbo: *mut libc::c_double)
-> libc::c_uchar;
pub fn impose_bounds(lp: *mut lprec, upbo: *mut libc::c_double,
lowbo: *mut libc::c_double)
-> libc::c_uchar;
pub fn unload_BB(lp: *mut lprec) -> libc::c_int;
pub fn feasibilityOffset(lp: *mut lprec, isdual: libc::c_uchar)
-> libc::c_double;
pub fn isP1extra(lp: *mut lprec) -> libc::c_uchar;
pub fn get_refactfrequency(lp: *mut lprec,
_final: libc::c_uchar)
-> libc::c_double;
pub fn findBasicFixedvar(lp: *mut lprec, afternr: libc::c_int,
slacksonly: libc::c_uchar)
-> libc::c_int;
pub fn isBasisVarFeasible(lp: *mut lprec, tol: libc::c_double,
basis_row: libc::c_int)
-> libc::c_uchar;
pub fn isPrimalFeasible(lp: *mut lprec, tol: libc::c_double,
infeasibles: *mut libc::c_int,
feasibilitygap: *mut libc::c_double)
-> libc::c_uchar;
pub fn isDualFeasible(lp: *mut lprec, tol: libc::c_double,
boundflips: *mut libc::c_int,
infeasibles: *mut libc::c_int,
feasibilitygap: *mut libc::c_double)
-> libc::c_uchar;
pub fn preprocess(lp: *mut lprec) -> libc::c_int;
pub fn postprocess(lp: *mut lprec);
pub fn performiteration(lp: *mut lprec, rownr: libc::c_int,
varin: libc::c_int,
theta: libc::c_double,
primal: libc::c_uchar,
allowminit: libc::c_uchar,
prow: *mut libc::c_double,
nzprow: *mut libc::c_int,
pcol: *mut libc::c_double,
nzpcol: *mut libc::c_int,
boundswaps: *mut libc::c_int)
-> libc::c_uchar;
pub fn transfer_solution(lp: *mut lprec,
dofinal: libc::c_uchar);
pub fn scaled_floor(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double,
epsscale: libc::c_double)
-> libc::c_double;
pub fn scaled_ceil(lp: *mut lprec, colnr: libc::c_int,
value: libc::c_double,
epsscale: libc::c_double)
-> libc::c_double;
pub fn varmap_lock(lp: *mut lprec);
pub fn varmap_clear(lp: *mut lprec);
pub fn varmap_canunlock(lp: *mut lprec) -> libc::c_uchar;
pub fn varmap_addconstraint(lp: *mut lprec);
pub fn varmap_addcolumn(lp: *mut lprec);
pub fn varmap_delete(lp: *mut lprec, base: libc::c_int,
delta: libc::c_int, varmap: *mut LLrec);
pub fn varmap_compact(lp: *mut lprec, prev_rows: libc::c_int,
prev_cols: libc::c_int);
pub fn varmap_validate(lp: *mut lprec, varno: libc::c_int)
-> libc::c_uchar;
pub fn del_varnameex(lp: *mut lprec, namelist: *mut *mut hashelem,
items: libc::c_int, ht: *mut hashtable,
varnr: libc::c_int, varmap: *mut LLrec)
-> libc::c_uchar;
pub fn init_pseudocost(lp: *mut lprec, pseudotype: libc::c_int)
-> *mut BBPSrec;
pub fn free_pseudocost(lp: *mut lprec);
pub fn get_pseudorange(pc: *mut BBPSrec, mipvar: libc::c_int,
varcode: libc::c_int)
-> libc::c_double;
pub fn update_pseudocost(pc: *mut BBPSrec, mipvar: libc::c_int,
varcode: libc::c_int,
capupper: libc::c_uchar,
varsol: libc::c_double);
pub fn get_pseudobranchcost(pc: *mut BBPSrec,
mipvar: libc::c_int,
dofloor: libc::c_uchar)
-> libc::c_double;
pub fn get_pseudonodecost(pc: *mut BBPSrec, mipvar: libc::c_int,
vartype: libc::c_int,
varsol: libc::c_double)
-> libc::c_double;
pub fn set_OF_override(lp: *mut lprec,
ofVector: *mut libc::c_double);
pub fn set_OF_p1extra(lp: *mut lprec, p1extra: libc::c_double);
pub fn unset_OF_p1extra(lp: *mut lprec);
pub fn modifyOF1(lp: *mut lprec, index: libc::c_int,
ofValue: *mut libc::c_double,
mult: libc::c_double)
-> libc::c_uchar;
pub fn get_OF_active(lp: *mut lprec, varnr: libc::c_int,
mult: libc::c_double)
-> libc::c_double;
pub fn is_OF_nz(lp: *mut lprec, colnr: libc::c_int)
-> libc::c_uchar;
pub fn get_basisOF(lp: *mut lprec, coltarget: *mut libc::c_int,
crow: *mut libc::c_double,
colno: *mut libc::c_int)
-> libc::c_int;
pub fn get_basiscolumn(lp: *mut lprec, j: libc::c_int,
rn: *mut libc::c_int,
bj: *mut libc::c_double)
-> libc::c_int;
pub fn obtain_column(lp: *mut lprec, varin: libc::c_int,
pcol: *mut libc::c_double,
nzlist: *mut libc::c_int,
maxabs: *mut libc::c_int)
-> libc::c_int;
pub fn compute_theta(lp: *mut lprec, rownr: libc::c_int,
theta: *mut libc::c_double,
isupbound: libc::c_int,
HarrisScalar: libc::c_double,
primal: libc::c_uchar)
-> libc::c_int;
pub fn findBasisPos(lp: *mut lprec, notint: libc::c_int,
var_basic: *mut libc::c_int)
-> libc::c_int;
pub fn check_degeneracy(lp: *mut lprec,
pcol: *mut libc::c_double,
degencount: *mut libc::c_int)
-> libc::c_uchar;
}