mpf_presolve.c File Reference

#include "qs_config.h"
#include "mpf_iqsutil.h"
#include "mpf_lpdata.h"
#include "mpf_lpdefs.h"

Include dependency graph for mpf_presolve.c:

Go to the source code of this file.

Data Structures

struct  mpf_edge
struct  mpf_graph
struct  mpf_intptr
struct  mpf_node

Defines

#define mpf_ILL_LP_STATUS_OK   (0)
#define mpf_ILL_PRE_COL_LOGICAL   (1)
#define mpf_ILL_PRE_COL_STRUC   (0)
#define mpf_ILL_PRE_DELETE_EMPTY_COLUMN   (7)
#define mpf_ILL_PRE_DELETE_EMPTY_ROW   (1)
#define mpf_ILL_PRE_DELETE_FIXED_VARIABLE   (3)
#define mpf_ILL_PRE_DELETE_FORCED_VARIABLE   (4)
#define mpf_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE   (6)
#define mpf_ILL_PRE_DELETE_SINGLETON_ROW   (2)
#define mpf_ILL_PRE_DELETE_SINGLETON_VARIABLE   (5)
#define mpf_ILL_PRE_FEAS_TOL   mpf_PFEAS_TOLER
#define mpf_ILL_PRE_ZERO_TOL   mpf_PIVOT_TOLER

Functions

 ILL_PTRWORLD_ROUTINES (ILL_PTRWORLD_LISTFREE_ROUTINE(mpf_intptr, intptralloc, intptr_bulkalloc, intptrfree)
static int mpf_add_to_list (ILLptrworld *world, mpf_intptr **list, int i)
static int mpf_build_graph (mpf_ILLlpdata *lp, mpf_graph *G)
static void mpf_dump_graph (mpf_graph *G)
static void mpf_dump_line (mpf_ILLlp_preline *line)
static int mpf_duplicate_cols (mpf_graph *G, int *hit)
static int mpf_duplicate_rows (mpf_graph *G, int *hit)
static int mpf_empty_columns (mpf_graph *G, mpf_ILLlp_predata *pre)
static int mpf_fixed_variables (mpf_graph *G, mpf_ILLlp_predata *pre)
static int mpf_forcing_constraints (mpf_graph *G, mpf_ILLlp_predata *pre, int *hit)
static void mpf_free_graph (mpf_graph *G)
static int mpf_gather_dup_lists (int *s, int count, int *duptotal, int **dupcnt, int **dupind)
static void mpf_get_implied_rhs_bounds (mpf_graph *G, int i, mpf_t *lb, mpf_t *ub)
static void mpf_get_implied_variable_bounds (mpf_graph *G, int j, mpf_edge *a_ij, mpf_t *lb, mpf_t *ub)
static int mpf_get_next_preop (mpf_ILLlp_predata *pre, mpf_ILLlp_preop **op)
static int mpf_grab_lp_info (mpf_graph *G, char **colnames, mpf_ILLlp_sinfo *info)
static int mpf_grab_lp_line (mpf_graph *G, int indx, mpf_ILLlp_preline *line, int row_or_col)
void mpf_ILLlp_predata_free (mpf_ILLlp_predata *pre)
void mpf_ILLlp_predata_init (mpf_ILLlp_predata *pre)
void mpf_ILLlp_preline_free (mpf_ILLlp_preline *line)
void mpf_ILLlp_preline_init (mpf_ILLlp_preline *line)
void mpf_ILLlp_preop_free (mpf_ILLlp_preop *op)
void mpf_ILLlp_preop_init (mpf_ILLlp_preop *op)
int mpf_ILLlp_presolve (mpf_ILLlpdata *lp, int pre_types)
int mpf_ILLlp_scale (mpf_ILLlpdata *lp)
void mpf_ILLlp_sinfo_free (mpf_ILLlp_sinfo *sinfo)
void mpf_ILLlp_sinfo_init (mpf_ILLlp_sinfo *sinfo)
int mpf_ILLlp_sinfo_print (mpf_ILLlp_sinfo *s)
static void mpf_init_graph (mpf_graph *G)
static void mpf_set_fixed_variable (mpf_graph *G, int j, mpf_t val)
static int mpf_simple_presolve (mpf_ILLlpdata *lp, mpf_ILLlp_predata *pre, mpf_ILLlp_sinfo *info, int pre_types, int *status)
static int mpf_singleton_columns (mpf_graph *G, mpf_ILLlp_predata *pre, int *hit)
static int mpf_singleton_rows (mpf_graph *G, mpf_ILLlp_predata *pre, int *hit)

Variables

static int mpf_debug = 0
static int TRACE = 0


Define Documentation

#define mpf_ILL_LP_STATUS_OK   (0)

Definition at line 52 of file mpf_presolve.c.

Referenced by mpf_ILLlp_presolve(), and mpf_simple_presolve().

#define mpf_ILL_PRE_COL_LOGICAL   (1)

Definition at line 65 of file mpf_presolve.c.

Referenced by mpf_dump_graph().

#define mpf_ILL_PRE_COL_STRUC   (0)

Definition at line 64 of file mpf_presolve.c.

Referenced by mpf_duplicate_cols(), mpf_duplicate_rows(), and mpf_grab_lp_info().

#define mpf_ILL_PRE_DELETE_EMPTY_COLUMN   (7)

Definition at line 62 of file mpf_presolve.c.

Referenced by mpf_empty_columns(), and mpf_simple_presolve().

#define mpf_ILL_PRE_DELETE_EMPTY_ROW   (1)

Definition at line 56 of file mpf_presolve.c.

Referenced by mpf_simple_presolve(), and mpf_singleton_rows().

#define mpf_ILL_PRE_DELETE_FIXED_VARIABLE   (3)

Definition at line 58 of file mpf_presolve.c.

Referenced by mpf_fixed_variables(), and mpf_simple_presolve().

#define mpf_ILL_PRE_DELETE_FORCED_VARIABLE   (4)

Definition at line 59 of file mpf_presolve.c.

Referenced by mpf_forcing_constraints(), and mpf_simple_presolve().

#define mpf_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE   (6)

Definition at line 61 of file mpf_presolve.c.

Referenced by mpf_simple_presolve(), and mpf_singleton_columns().

#define mpf_ILL_PRE_DELETE_SINGLETON_ROW   (2)

Definition at line 57 of file mpf_presolve.c.

Referenced by mpf_simple_presolve(), and mpf_singleton_rows().

#define mpf_ILL_PRE_DELETE_SINGLETON_VARIABLE   (5)

Definition at line 60 of file mpf_presolve.c.

Referenced by mpf_simple_presolve(), and mpf_singleton_columns().

#define mpf_ILL_PRE_FEAS_TOL   mpf_PFEAS_TOLER

Definition at line 53 of file mpf_presolve.c.

Referenced by mpf_empty_columns(), mpf_forcing_constraints(), mpf_get_implied_variable_bounds(), and mpf_singleton_rows().

#define mpf_ILL_PRE_ZERO_TOL   mpf_PIVOT_TOLER

Definition at line 54 of file mpf_presolve.c.

Referenced by mpf_duplicate_cols(), and mpf_duplicate_rows().


Function Documentation

ILL_PTRWORLD_ROUTINES ( ILL_PTRWORLD_LISTFREE_ROUTINE (  mpf_intptr,
intptralloc  ,
intptr_bulkalloc  ,
intptrfree   
)

Definition at line 218 of file mpf_presolve.c.

References ILL_SAFE_MALLOC, mpf_ILLmatrix::matbeg, mpf_ILLmatrix::matcnt, mpf_ILLmatrix::matcols, mpf_ILLmatrix::matcolsize, mpf_ILLmatrix::matfree, mpf_ILLmatrix::matind, mpf_ILLmatrix::matsize, mpf_ILLmatrix::matval, mpf_ILL_MAXDOUBLE, and mpf_ILLlp_rows_clear().

Here is the call graph for this function:

static int mpf_add_to_list ( ILLptrworld world,
mpf_intptr **  list,
int  i 
)

Definition at line 2241 of file mpf_presolve.c.

References ILL_RETURN, mpf_intptr::next, and mpf_intptr::this_val.

Referenced by mpf_singleton_rows().

static int mpf_build_graph ( mpf_ILLlpdata lp,
mpf_graph G 
)

Definition at line 2264 of file mpf_presolve.c.

References mpf_ILLlpdata::A, mpf_graph::adjspace, mpf_edge::coef, mpf_graph::cols, mpf_node::deg, mpf_graph::edgelist, ILL_SAFE_MALLOC, mpf_ILLlpdata::ncols, mpf_ILLlpdata::nrows, mpf_graph::nzcount, mpf_ILLlpdata::nzcount, mpf_ILLlpdata::objsense, mpf_graph::objsense, mpf_graph::rows, mpf_node::rowsense, and mpf_ILLlpdata::sense.

Referenced by mpf_simple_presolve().

static void mpf_dump_graph ( mpf_graph G  ) 

Definition at line 2385 of file mpf_presolve.c.

References mpf_node::adj, mpf_edge::coef, mpf_edge::col, mpf_graph::cols, mpf_node::coltype, mpf_edge::coltype, mpf_node::deg, mpf_node::del, mpf_graph::ecount, mpf_node::lower, mpf_ILL_PRE_COL_LOGICAL, mpf_graph::ncols, mpf_graph::nrows, mpf_node::obj, mpf_node::rhs, mpf_edge::row, mpf_graph::rows, and mpf_node::upper.

Referenced by mpf_simple_presolve().

static void mpf_dump_line ( mpf_ILLlp_preline line  ) 

Definition at line 812 of file mpf_presolve.c.

References mpf_ILLlp_preline::count, mpf_ILLlp_preline::ind, mpf_ILLlp_preline::lower, mpf_ILLlp_preline::obj, mpf_ILLlp_preline::rhs, mpf_ILLlp_preline::row_or_col, mpf_ILLlp_preline::upper, and mpf_ILLlp_preline::val.

Referenced by mpf_simple_presolve().

static int mpf_duplicate_cols ( mpf_graph G,
int *  hit 
)

Definition at line 1799 of file mpf_presolve.c.

References mpf_node::adj, mpf_edge::coef, mpf_edge::col, mpf_graph::cols, mpf_node::coltype, mpf_node::deg, mpf_edge::del, mpf_node::del, ILL_CLEANUP_IF, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, ILLutil_zeit(), k2, mpf_gather_dup_lists(), mpf_ILL_MAXINT, mpf_ILL_PRE_COL_STRUC, mpf_ILL_PRE_ZERO_TOL, mpf_graph::ncols, mpf_graph::nrows, mpf_graph::rows, and t.

Referenced by mpf_simple_presolve().

Here is the call graph for this function:

static int mpf_duplicate_rows ( mpf_graph G,
int *  hit 
)

Definition at line 1660 of file mpf_presolve.c.

References mpf_node::adj, mpf_edge::coef, mpf_graph::cols, mpf_node::coltype, mpf_node::deg, mpf_edge::del, mpf_node::del, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, ILLutil_zeit(), k2, mpf_ILL_MAXINT, mpf_ILL_PRE_COL_STRUC, mpf_ILL_PRE_ZERO_TOL, mpf_graph::ncols, mpf_graph::nrows, mpf_edge::row, mpf_graph::rows, mpf_node::rowsense, and t.

Referenced by mpf_simple_presolve().

Here is the call graph for this function:

static int mpf_empty_columns ( mpf_graph G,
mpf_ILLlp_predata pre 
)

Definition at line 1082 of file mpf_presolve.c.

References mpf_node::adj, mpf_ILLlp_preop::colindex, mpf_graph::cols, mpf_node::deg, mpf_node::del, ILL_CLEANUP_IF, ILL_RETURN, mpf_ILLlp_preop::line, mpf_node::lower, mpf_get_next_preop(), mpf_grab_lp_line(), mpf_ILL_MAXDOUBLE, mpf_ILL_MINDOUBLE, mpf_ILL_PRE_DELETE_EMPTY_COLUMN, mpf_ILL_PRE_FEAS_TOL, mpf_set_fixed_variable(), mpf_graph::ncols, mpf_node::obj, mpf_graph::objsense, mpf_ILLlp_preop::ptype, mpf_ILLlp_preop::rowindex, and mpf_node::upper.

Referenced by mpf_simple_presolve().

Here is the call graph for this function:

static int mpf_fixed_variables ( mpf_graph G,
mpf_ILLlp_predata pre 
)

Definition at line 1045 of file mpf_presolve.c.

References mpf_ILLlp_preop::colindex, mpf_graph::cols, mpf_node::del, ILL_CLEANUP_IF, ILL_RETURN, mpf_ILLlp_preop::line, mpf_node::lower, mpf_get_next_preop(), mpf_grab_lp_line(), mpf_ILL_PRE_DELETE_FIXED_VARIABLE, mpf_set_fixed_variable(), mpf_graph::ncols, mpf_ILLlp_preop::ptype, mpf_ILLlp_preop::rowindex, and mpf_node::upper.

Referenced by mpf_simple_presolve().

Here is the call graph for this function:

static int mpf_forcing_constraints ( mpf_graph G,
mpf_ILLlp_predata pre,
int *  hit 
)

Definition at line 1336 of file mpf_presolve.c.

References mpf_node::adj, mpf_edge::coef, mpf_edge::col, mpf_ILLlp_preop::colindex, mpf_graph::cols, mpf_node::deg, mpf_edge::del, mpf_node::del, ILL_CLEANUP_IF, mpf_ILLlp_preop::line, mpf_node::lower, mpf_get_implied_rhs_bounds(), mpf_get_next_preop(), mpf_grab_lp_line(), mpf_ILL_PRE_DELETE_FORCED_VARIABLE, mpf_ILL_PRE_FEAS_TOL, mpf_set_fixed_variable(), mpf_graph::nrows, mpf_ILLlp_predata::opcount, mpf_ILLlp_preop::ptype, mpf_ILLlp_preop::rowindex, mpf_graph::rows, and mpf_node::upper.

Referenced by mpf_simple_presolve().

Here is the call graph for this function:

static void mpf_free_graph ( mpf_graph G  ) 

Definition at line 2458 of file mpf_presolve.c.

References mpf_graph::adjspace, mpf_edge::coef, mpf_graph::cols, mpf_graph::edgelist, ILL_IFFREE, ILLptrworld_delete(), mpf_graph::intptrworld, mpf_init_graph(), mpf_graph::nzcount, and mpf_graph::rows.

Here is the call graph for this function:

static int mpf_gather_dup_lists ( int *  s,
int  count,
int *  duptotal,
int **  dupcnt,
int **  dupind 
)

Definition at line 1931 of file mpf_presolve.c.

References ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, and mpf_ILL_MAXINT.

Referenced by mpf_duplicate_cols().

static void mpf_get_implied_rhs_bounds ( mpf_graph G,
int  i,
mpf_t *  lb,
mpf_t *  ub 
)

Definition at line 2075 of file mpf_presolve.c.

References mpf_node::adj, mpf_edge::coef, mpf_edge::col, mpf_graph::cols, mpf_node::deg, mpf_edge::del, mpf_ILL_MAXDOUBLE, mpf_ILL_MINDOUBLE, and mpf_graph::rows.

Referenced by mpf_forcing_constraints(), and mpf_get_implied_variable_bounds().

static void mpf_get_implied_variable_bounds ( mpf_graph G,
int  j,
mpf_edge a_ij,
mpf_t *  lb,
mpf_t *  ub 
)

Definition at line 2164 of file mpf_presolve.c.

References mpf_edge::coef, mpf_graph::cols, mpf_node::lower, mpf_get_implied_rhs_bounds(), mpf_ILL_MAXDOUBLE, mpf_ILL_MINDOUBLE, mpf_ILL_PRE_FEAS_TOL, mpf_node::rhs, mpf_edge::row, mpf_graph::rows, and mpf_node::upper.

Referenced by mpf_singleton_columns().

Here is the call graph for this function:

static int mpf_get_next_preop ( mpf_ILLlp_predata pre,
mpf_ILLlp_preop **  op 
)

Definition at line 2215 of file mpf_presolve.c.

References ILL_RETURN, mpf_ILLlp_preop_init(), mpf_ILLlp_predata::opcount, mpf_ILLlp_predata::oplist, and mpf_ILLlp_predata::opsize.

Referenced by mpf_empty_columns(), mpf_fixed_variables(), mpf_forcing_constraints(), mpf_singleton_columns(), and mpf_singleton_rows().

Here is the call graph for this function:

static int mpf_grab_lp_info ( mpf_graph G,
char **  colnames,
mpf_ILLlp_sinfo info 
)

Definition at line 838 of file mpf_presolve.c.

References mpf_ILLlp_sinfo::A, mpf_node::adj, mpf_edge::coef, mpf_ILLlp_sinfo::colnames, mpf_graph::cols, mpf_ILLlp_sinfo::colsize, mpf_node::coltype, mpf_node::deg, mpf_node::del, ILL_namebufsize, ILL_SAFE_MALLOC, mpf_node::lower, mpf_ILLlp_sinfo::lower, mpf_ILLmatrix::matbeg, mpf_ILLmatrix::matcnt, mpf_ILLmatrix::matcols, mpf_ILLmatrix::matcolsize, mpf_ILLmatrix::matfree, mpf_ILLmatrix::matind, mpf_ILLmatrix::matrows, mpf_ILLmatrix::matsize, mpf_ILLmatrix::matval, mpf_ILL_PRE_COL_STRUC, mpf_ILLlp_sinfo::ncols, mpf_graph::ncols, mpf_ILLlp_sinfo::nrows, mpf_graph::nrows, mpf_ILLlp_sinfo::nzcount, mpf_node::obj, mpf_ILLlp_sinfo::obj, mpf_node::rhs, mpf_ILLlp_sinfo::rhs, mpf_edge::row, mpf_graph::rows, mpf_ILLlp_sinfo::rowsize, mpf_node::upper, and mpf_ILLlp_sinfo::upper.

static int mpf_grab_lp_line ( mpf_graph G,
int  indx,
mpf_ILLlp_preline line,
int  row_or_col 
)

Definition at line 747 of file mpf_presolve.c.

References mpf_node::adj, mpf_graph::cols, mpf_ILLlp_preline::count, mpf_node::deg, mpf_edge::del, and mpf_graph::rows.

Referenced by mpf_empty_columns(), mpf_fixed_variables(), mpf_forcing_constraints(), mpf_singleton_columns(), and mpf_singleton_rows().

void mpf_ILLlp_predata_free ( mpf_ILLlp_predata pre  ) 

Definition at line 2599 of file mpf_presolve.c.

References mpf_ILLlp_predata::colfixval, mpf_ILLlp_predata::colmap, mpf_ILLlp_predata::colscale, ILL_IFFREE, mpf_ILLlp_predata_init(), mpf_ILLlp_preop_free(), mpf_ILLlp_predata::opcount, mpf_ILLlp_predata::oplist, mpf_ILLlp_predata::rowfixval, mpf_ILLlp_predata::rowmap, and mpf_ILLlp_predata::rowscale.

Referenced by mpf_ILLlp_presolve().

Here is the call graph for this function:

void mpf_ILLlp_predata_init ( mpf_ILLlp_predata pre  ) 

void mpf_ILLlp_preline_free ( mpf_ILLlp_preline line  ) 

Definition at line 2663 of file mpf_presolve.c.

References ILL_IFFREE, mpf_ILLlp_preline::ind, mpf_ILLlp_preline::lower, mpf_ILLlp_preline::obj, mpf_ILLlp_preline::rhs, mpf_ILLlp_preline::upper, and mpf_ILLlp_preline::val.

Referenced by mpf_ILLlp_preop_free().

void mpf_ILLlp_preline_init ( mpf_ILLlp_preline line  ) 

Definition at line 2644 of file mpf_presolve.c.

References mpf_ILLlp_preline::count, mpf_ILLlp_preline::ind, mpf_ILLlp_preline::lower, mpf_ILLlp_preline::obj, mpf_ILLlp_preline::rhs, mpf_ILLlp_preline::upper, and mpf_ILLlp_preline::val.

Referenced by mpf_ILLlp_preop_init().

void mpf_ILLlp_preop_free ( mpf_ILLlp_preop op  ) 

Definition at line 2634 of file mpf_presolve.c.

References mpf_ILLlp_preop::line, mpf_ILLlp_preline_free(), and mpf_ILLlp_preop_init().

Referenced by mpf_ILLlp_predata_free().

Here is the call graph for this function:

void mpf_ILLlp_preop_init ( mpf_ILLlp_preop op  ) 

Definition at line 2622 of file mpf_presolve.c.

References mpf_ILLlp_preop::colindex, mpf_ILLlp_preop::line, mpf_ILLlp_preline_init(), mpf_ILLlp_preop::ptype, and mpf_ILLlp_preop::rowindex.

Referenced by mpf_get_next_preop(), and mpf_ILLlp_preop_free().

Here is the call graph for this function:

int mpf_ILLlp_presolve ( mpf_ILLlpdata lp,
int  pre_types 
)

Definition at line 462 of file mpf_presolve.c.

References ILL_CLEANUP_IF, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, mpf_ILL_LP_STATUS_OK, mpf_ILLlp_predata_free(), mpf_ILLlp_predata_init(), mpf_ILLlp_sinfo_free(), mpf_ILLlp_sinfo_init(), mpf_simple_presolve(), mpf_ILLlpdata::presolve, and mpf_ILLlpdata::sinfo.

Here is the call graph for this function:

int mpf_ILLlp_scale ( mpf_ILLlpdata lp  ) 

Definition at line 349 of file mpf_presolve.c.

References mpf_ILLlpdata::A, ILL_ERROR, mpf_ILLlpdata::lower, mpf_ILLmatrix::matbeg, mpf_ILLmatrix::matcnt, mpf_ILLmatrix::matind, mpf_ILLmatrix::matval, mpf_ILL_MAXDOUBLE, mpf_ILL_MINDOUBLE, mpf_ILLlpdata::ncols, mpf_ILLlpdata::nrows, mpf_ILLlpdata::nstruct, mpf_ILLlpdata::obj, mpf_ILLlpdata::rhs, mpf_ILLlpdata::rowmap, mpf_ILLlpdata::structmap, and mpf_ILLlpdata::upper.

void mpf_ILLlp_sinfo_free ( mpf_ILLlp_sinfo sinfo  ) 

void mpf_ILLlp_sinfo_init ( mpf_ILLlp_sinfo sinfo  ) 

int mpf_ILLlp_sinfo_print ( mpf_ILLlp_sinfo s  ) 

Definition at line 2482 of file mpf_presolve.c.

References mpf_ILLlp_sinfo::A, mpf_ILLlpdata::A, mpf_ILLlp_sinfo::colnames, mpf_ILLlpdata::colnames, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, mpf_ILLlpdata::intmarker, mpf_ILLlp_sinfo::lower, mpf_ILLlpdata::lower, mpf_ILLmatrix::matbeg, mpf_ILLmatrix::matcnt, mpf_ILLmatrix::matind, mpf_ILLmatrix::matval, mpf_ILLlpdata_init(), mpf_ILLlp_sinfo::ncols, mpf_ILLlpdata::ncols, mpf_ILLlp_sinfo::nrows, mpf_ILLlpdata::nrows, mpf_ILLlp_sinfo::nzcount, mpf_ILLlpdata::nzcount, mpf_ILLlp_sinfo::obj, mpf_ILLlpdata::obj, mpf_ILLlpdata::objname, mpf_ILLlp_sinfo::objsense, mpf_ILLlpdata::objsense, mpf_ILLlpdata::probname, mpf_ILLlp_sinfo::rhs, mpf_ILLlpdata::rhs, mpf_ILLlpdata::rownames, mpf_ILLlpdata::sense, mpf_ILLlp_sinfo::upper, and mpf_ILLlpdata::upper.

Here is the call graph for this function:

static void mpf_init_graph ( mpf_graph G  ) 

Definition at line 2442 of file mpf_presolve.c.

References mpf_graph::adjspace, mpf_graph::cols, mpf_graph::ecount, mpf_graph::edgelist, ILLptrworld_init(), mpf_graph::intptrworld, mpf_graph::ncols, mpf_graph::nrows, and mpf_graph::rows.

Referenced by mpf_free_graph(), and mpf_simple_presolve().

Here is the call graph for this function:

static void mpf_set_fixed_variable ( mpf_graph G,
int  j,
mpf_t  val 
) [static]

Definition at line 2054 of file mpf_presolve.c.

References mpf_node::adj, mpf_edge::coef, mpf_graph::cols, mpf_node::deg, mpf_edge::del, mpf_node::del, mpf_edge::row, and mpf_graph::rows.

Referenced by mpf_empty_columns(), mpf_fixed_variables(), and mpf_forcing_constraints().

static int mpf_simple_presolve ( mpf_ILLlpdata lp,
mpf_ILLlp_predata pre,
mpf_ILLlp_sinfo info,
int  pre_types,
int *  status 
) [static]

Definition at line 580 of file mpf_presolve.c.

References mpf_ILLlp_preop::colindex, ILL_CLEANUP_IF, mpf_ILLlp_preop::line, mpf_build_graph(), mpf_debug, mpf_dump_graph(), mpf_dump_line(), mpf_duplicate_cols(), mpf_duplicate_rows(), mpf_empty_columns(), mpf_fixed_variables(), mpf_forcing_constraints(), mpf_ILL_LP_STATUS_OK, mpf_ILL_PRE_DELETE_EMPTY_COLUMN, mpf_ILL_PRE_DELETE_EMPTY_ROW, mpf_ILL_PRE_DELETE_FIXED_VARIABLE, mpf_ILL_PRE_DELETE_FORCED_VARIABLE, mpf_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE, mpf_ILL_PRE_DELETE_SINGLETON_ROW, mpf_ILL_PRE_DELETE_SINGLETON_VARIABLE, mpf_ILL_PRE_DUPLICATE_COL, mpf_ILL_PRE_DUPLICATE_ROW, mpf_ILL_PRE_EMPTY_COL, mpf_ILL_PRE_FIXED, mpf_ILL_PRE_FORCING, mpf_ILL_PRE_SINGLE_COL, mpf_ILL_PRE_SINGLE_ROW, mpf_init_graph(), mpf_singleton_columns(), mpf_singleton_rows(), mpf_ILLlpdata::ncols, mpf_ILLlpdata::nrows, mpf_ILLlpdata::nzcount, mpf_ILLlp_predata::opcount, mpf_ILLlp_predata::oplist, mpf_ILLlp_preop::ptype, and mpf_ILLlp_preop::rowindex.

Referenced by mpf_ILLlp_presolve().

Here is the call graph for this function:

static int mpf_singleton_columns ( mpf_graph G,
mpf_ILLlp_predata pre,
int *  hit 
)

Definition at line 1416 of file mpf_presolve.c.

References mpf_node::adj, mpf_edge::coef, mpf_edge::col, mpf_ILLlp_preop::colindex, mpf_graph::cols, mpf_node::deg, mpf_edge::del, mpf_node::del, ILL_CLEANUP_IF, mpf_ILLlp_preop::line, mpf_node::lower, mpf_get_implied_variable_bounds(), mpf_get_next_preop(), mpf_grab_lp_line(), mpf_ILL_MAXDOUBLE, mpf_ILL_MINDOUBLE, mpf_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE, mpf_ILL_PRE_DELETE_SINGLETON_VARIABLE, mpf_graph::ncols, mpf_node::obj, mpf_ILLlp_predata::opcount, mpf_ILLlp_preop::ptype, mpf_ILLlp_preop::rowindex, mpf_graph::rows, and mpf_node::upper.

Referenced by mpf_simple_presolve().

Here is the call graph for this function:

static int mpf_singleton_rows ( mpf_graph G,
mpf_ILLlp_predata pre,
int *  hit 
)

Definition at line 1167 of file mpf_presolve.c.

References mpf_node::adj, mpf_edge::coef, mpf_edge::col, mpf_ILLlp_preop::colindex, mpf_graph::cols, mpf_node::deg, mpf_edge::del, mpf_node::del, ILL_CLEANUP_IF, ILL_SAFE_MALLOC, mpf_graph::intptrworld, mpf_ILLlp_preop::line, mpf_node::lower, mpf_add_to_list(), mpf_get_next_preop(), mpf_grab_lp_line(), mpf_ILL_PRE_DELETE_EMPTY_ROW, mpf_ILL_PRE_DELETE_SINGLETON_ROW, mpf_ILL_PRE_FEAS_TOL, mpf_intptr::next, mpf_graph::nrows, mpf_ILLlp_preop::ptype, mpf_ILLlp_preline::rhs, mpf_node::rhs, mpf_edge::row, mpf_ILLlp_preop::rowindex, mpf_graph::rows, and mpf_node::upper.

Referenced by mpf_simple_presolve().

Here is the call graph for this function:


Variable Documentation

int mpf_debug = 0 [static]

Definition at line 67 of file mpf_presolve.c.

Referenced by mpf_simple_presolve().

int TRACE = 0 [static]

Definition at line 24 of file mpf_presolve.c.


Generated on Thu Mar 29 09:42:28 2012 for QSopt_ex by  doxygen 1.4.7