23 #define PREP_FUNC_SUCCESS 0
24 #define PREP_FUNC_ERROR -1
35 #define INF SYM_INFINITY
40 #define PREP_QUIT(f) \
41 ((f != PREP_UNMODIFIED && f != PREP_MODIFIED) ? TRUE : FALSE)
48 #define SR_NO_UPDATES 0
49 #define SR_BOUNDS_UPDATED 1
63 #define VAR_IN_BOUND 1
71 #define SR_VAR_IN_FIXED_UB 1
72 #define SR_VAR_IN_FIXED_LB 2
73 #define SR_VAR_IN_FRAC 3
74 #define SR_VAR_FIXED_UB 4
75 #define SR_VAR_FIXED_LB 5
81 #define FIX_NO_BOUND 0
87 #define IMPROVE_COEF 6
88 #define FIX_AGGREGATE 7
291 int *start,
int *index,
double *value,
292 double *collb,
double *colub,
char *is_int,
293 double *obj,
double obj_offset,
char *rowsen,
294 double *rowrhs,
double *rowrng,
char make_copy);
325 int dive_level,
char check_improve,
char impl_mode,
327 double sr_ub,
double sr_lb,
int use_mip);
331 double sr_ub,
double sr_lb,
char impl_mode,
336 int row_ind,
int dive_level,
337 double fixed_bound,
int fix_type,
338 char check_redundancy,
char impl_mode);
354 double obj,
double c_lb,
double c_ub,
355 int is_int,
int var_type,
double etol,
372 char *name,
double a_val,
377 int **sol_xind,
double **sol_xval);
403 int obj_ind,
int row_ind,
404 int *r_matbeg,
int *r_matind,
double *r_matval,
405 COLinfo *cols,
double *ub,
double *lb,
double etol);
410 int col_ind,
char col_var_type,
double col_ub,
411 double col_lb,
char sense,
int col_type,
417 double rhs_ub_offset,
double rhs_lb_offset,
418 double obj_ub_offset,
double obj_lb_offset,
419 double col_ub,
double col_lb,
int obj_sense,
423 double *ub,
double *lb);
426 int row_ind,
int *r_matbeg,
427 int *r_matind,
double *r_matval,
COLinfo *cols,
428 double *ub,
double *lb,
double etol);
void free_imp_list(IMPlist **list)
struct RC_DUP_DESC rc_dup_desc
int sr_add_new_bounded_col(SRdesc *sr, double c_val, double a_val, int col_ind, double rhs_ub_offset, double rhs_lb_offset, double obj_ub_offset, double obj_lb_offset, double col_ub, double col_lb, int obj_sense, char var_type)
int prep_report(PREPdesc *P, int termcode)
int prep_deleted_row_update_info(MIPdesc *mip, int row_ind)
int prep_declare_redundant_row(ROWinfo row, int row_ind, char sense, double rhs)
int prep_cleanup_desc(PREPdesc *P)
int prep_initialize_mipinfo(PREPdesc *P)
int prep_check_feasible(MIPdesc *mip, double *sol, double etol)
void free_prep_desc(PREPdesc *P)
int prep_force_row_bounds(PREPdesc *P, int row_ind, int col_ind, int a_loc)
int prep_update_single_row_attributes(ROWinfo *rows, int row_ind, double a_val, double obj, double c_lb, double c_ub, int is_int, int var_type, double etol, int entry_loc)
int prep_declare_fixed_var(int col_ind, char *name, double fixed_bound)
int sym_presolve(sym_environment *env)
int prep_fill_row_ordered(PREPdesc *P)
int prep_merge_solution(MIPdesc *orig_mip, MIPdesc *prep_mip, int *sol_xlength, int **sol_xind, double **sol_xval)
void free_sr_desc(SRdesc *sr)
int prep_solve_desc(PREPdesc *P)
int prep_improve_variable(PREPdesc *P, int col_ind, int row_ind, int a_loc, int dive_level, char check_improve, char impl_mode, char use_sr_bounds, double sr_ub, double sr_lb, int use_mip)
double prep_rnd_integral(double val, double etol, char rnd_type)
void sr_initialize(SRdesc **sr, int n)
int prep_update_rootdesc(sym_environment *env)
int prep_initialize_impl_lists(PREPdesc *P)
int prep_integerize_var(PREPdesc *P, int col_ind)
int prep_declare_coef_change(int row_ind, int col_ind, char *name, double a_val, double rhs)
void prep_sos_fill_var_cnt(PREPdesc *P)
int prep_get_row_bounds(MIPdesc *mip, int r_ind, double etol)
int prep_solve_sr_rlx(PREPdesc *P, int row_cnt, int *row_indices)
struct PREP_ENVIRONMENT prep_environment
int prep_substitute_cols(PREPdesc *P)
char prep_is_equal(double lval, double rval, double etol)
int sr_add_new_col(SRdesc *sr, SRdesc *d_sr, double c_val, double a_val, int col_ind, char col_var_type, double col_ub, double col_lb, char sense, int col_type, int col_bound_type)
struct PREP_STATS prep_stats
int sr_find_opt_bounded(PREPdesc *P, SRdesc *sr, int obj_ind, double *ub, double *lb)
int sr_solve_open_prob(PREPdesc *P, SRdesc *sr, int obj_ind, int row_ind, int *r_matbeg, int *r_matind, double *r_matval, COLinfo *cols, double *ub, double *lb, double etol)
int sr_solve_bounded_prob(PREPdesc *P, SRdesc *sr, SRdesc *d_sr, int obj_ind, int row_ind, int *r_matbeg, int *r_matind, double *r_matval, COLinfo *cols, double *ub, double *lb, double etol)
char prep_is_integral(double val, double etol)
int prep_load_problem(prep_environment *prep, int numcols, int numrows, int *start, int *index, double *value, double *collb, double *colub, char *is_int, double *obj, double obj_offset, char *rowsen, double *rowrhs, double *rowrng, char make_copy)
int prep_modified_cols_update_info(PREPdesc *P, int col_cnt, int *col_start, int row_ind, int dive_level, double fixed_bound, int fix_type, char check_redundancy, char impl_mode)
void prep_sos_fill_row(ROWinfo *row, int alloc_size, int size, int *ind)
int prep_basic(PREPdesc *P)
void free_rc_dup_desc(rc_dup_desc *prep_desc)
int prep_integerize_bounds(PREPdesc *P)
int prep_delete_duplicate_rows_cols(PREPdesc *P, char check_rows, char check_cols)
void sr_allocate(SRdesc **sr, int n)
int prep_add_to_impl_list(IMPlist *list, int ind, int fix_type, double val)
int prep_check_redundancy(PREPdesc *P, int row_ind, char use_sr_bounds, double sr_ub, double sr_lb, char impl_mode, int dive_level)