mpq_presolve.c File Reference

#include "qs_config.h"
#include "mpq_iqsutil.h"
#include "mpq_lpdata.h"
#include "mpq_lpdefs.h"

Include dependency graph for mpq_presolve.c:

Go to the source code of this file.

Data Structures

struct  mpq_edge
struct  mpq_graph
struct  mpq_intptr
struct  mpq_node

Defines

#define mpq_ILL_LP_STATUS_OK   (0)
#define mpq_ILL_PRE_COL_LOGICAL   (1)
#define mpq_ILL_PRE_COL_STRUC   (0)
#define mpq_ILL_PRE_DELETE_EMPTY_COLUMN   (7)
#define mpq_ILL_PRE_DELETE_EMPTY_ROW   (1)
#define mpq_ILL_PRE_DELETE_FIXED_VARIABLE   (3)
#define mpq_ILL_PRE_DELETE_FORCED_VARIABLE   (4)
#define mpq_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE   (6)
#define mpq_ILL_PRE_DELETE_SINGLETON_ROW   (2)
#define mpq_ILL_PRE_DELETE_SINGLETON_VARIABLE   (5)
#define mpq_ILL_PRE_FEAS_TOL   mpq_PFEAS_TOLER
#define mpq_ILL_PRE_ZERO_TOL   mpq_PIVOT_TOLER

Functions

 ILL_PTRWORLD_ROUTINES (ILL_PTRWORLD_LISTFREE_ROUTINE(mpq_intptr, intptralloc, intptr_bulkalloc, intptrfree)
static int mpq_add_to_list (ILLptrworld *world, mpq_intptr **list, int i)
static int mpq_build_graph (mpq_ILLlpdata *lp, mpq_graph *G)
static void mpq_dump_graph (mpq_graph *G)
static void mpq_dump_line (mpq_ILLlp_preline *line)
static int mpq_duplicate_cols (mpq_graph *G, int *hit)
static int mpq_duplicate_rows (mpq_graph *G, int *hit)
static int mpq_empty_columns (mpq_graph *G, mpq_ILLlp_predata *pre)
static int mpq_fixed_variables (mpq_graph *G, mpq_ILLlp_predata *pre)
static int mpq_forcing_constraints (mpq_graph *G, mpq_ILLlp_predata *pre, int *hit)
static void mpq_free_graph (mpq_graph *G)
static int mpq_gather_dup_lists (int *s, int count, int *duptotal, int **dupcnt, int **dupind)
static void mpq_get_implied_rhs_bounds (mpq_graph *G, int i, mpq_t *lb, mpq_t *ub)
static void mpq_get_implied_variable_bounds (mpq_graph *G, int j, mpq_edge *a_ij, mpq_t *lb, mpq_t *ub)
static int mpq_get_next_preop (mpq_ILLlp_predata *pre, mpq_ILLlp_preop **op)
static int mpq_grab_lp_info (mpq_graph *G, char **colnames, mpq_ILLlp_sinfo *info)
static int mpq_grab_lp_line (mpq_graph *G, int indx, mpq_ILLlp_preline *line, int row_or_col)
void mpq_ILLlp_predata_free (mpq_ILLlp_predata *pre)
void mpq_ILLlp_predata_init (mpq_ILLlp_predata *pre)
void mpq_ILLlp_preline_free (mpq_ILLlp_preline *line)
void mpq_ILLlp_preline_init (mpq_ILLlp_preline *line)
void mpq_ILLlp_preop_free (mpq_ILLlp_preop *op)
void mpq_ILLlp_preop_init (mpq_ILLlp_preop *op)
int mpq_ILLlp_presolve (mpq_ILLlpdata *lp, int pre_types)
int mpq_ILLlp_scale (mpq_ILLlpdata *lp)
void mpq_ILLlp_sinfo_free (mpq_ILLlp_sinfo *sinfo)
void mpq_ILLlp_sinfo_init (mpq_ILLlp_sinfo *sinfo)
int mpq_ILLlp_sinfo_print (mpq_ILLlp_sinfo *s)
static void mpq_init_graph (mpq_graph *G)
static void mpq_set_fixed_variable (mpq_graph *G, int j, mpq_t val)
static int mpq_simple_presolve (mpq_ILLlpdata *lp, mpq_ILLlp_predata *pre, mpq_ILLlp_sinfo *info, int pre_types, int *status)
static int mpq_singleton_columns (mpq_graph *G, mpq_ILLlp_predata *pre, int *hit)
static int mpq_singleton_rows (mpq_graph *G, mpq_ILLlp_predata *pre, int *hit)

Variables

static int mpq_debug = 0
static int TRACE = 0


Define Documentation

#define mpq_ILL_LP_STATUS_OK   (0)

Definition at line 52 of file mpq_presolve.c.

Referenced by mpq_ILLlp_presolve(), and mpq_simple_presolve().

#define mpq_ILL_PRE_COL_LOGICAL   (1)

Definition at line 65 of file mpq_presolve.c.

Referenced by mpq_dump_graph().

#define mpq_ILL_PRE_COL_STRUC   (0)

Definition at line 64 of file mpq_presolve.c.

Referenced by mpq_duplicate_cols(), mpq_duplicate_rows(), and mpq_grab_lp_info().

#define mpq_ILL_PRE_DELETE_EMPTY_COLUMN   (7)

Definition at line 62 of file mpq_presolve.c.

Referenced by mpq_empty_columns(), and mpq_simple_presolve().

#define mpq_ILL_PRE_DELETE_EMPTY_ROW   (1)

Definition at line 56 of file mpq_presolve.c.

Referenced by mpq_simple_presolve(), and mpq_singleton_rows().

#define mpq_ILL_PRE_DELETE_FIXED_VARIABLE   (3)

Definition at line 58 of file mpq_presolve.c.

Referenced by mpq_fixed_variables(), and mpq_simple_presolve().

#define mpq_ILL_PRE_DELETE_FORCED_VARIABLE   (4)

Definition at line 59 of file mpq_presolve.c.

Referenced by mpq_forcing_constraints(), and mpq_simple_presolve().

#define mpq_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE   (6)

Definition at line 61 of file mpq_presolve.c.

Referenced by mpq_simple_presolve(), and mpq_singleton_columns().

#define mpq_ILL_PRE_DELETE_SINGLETON_ROW   (2)

Definition at line 57 of file mpq_presolve.c.

Referenced by mpq_simple_presolve(), and mpq_singleton_rows().

#define mpq_ILL_PRE_DELETE_SINGLETON_VARIABLE   (5)

Definition at line 60 of file mpq_presolve.c.

Referenced by mpq_simple_presolve(), and mpq_singleton_columns().

#define mpq_ILL_PRE_FEAS_TOL   mpq_PFEAS_TOLER

Definition at line 53 of file mpq_presolve.c.

Referenced by mpq_empty_columns(), mpq_forcing_constraints(), mpq_get_implied_variable_bounds(), and mpq_singleton_rows().

#define mpq_ILL_PRE_ZERO_TOL   mpq_PIVOT_TOLER

Definition at line 54 of file mpq_presolve.c.

Referenced by mpq_duplicate_cols(), and mpq_duplicate_rows().


Function Documentation

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

Definition at line 218 of file mpq_presolve.c.

References ILL_SAFE_MALLOC, mpq_ILLmatrix::matbeg, mpq_ILLmatrix::matcnt, mpq_ILLmatrix::matcols, mpq_ILLmatrix::matcolsize, mpq_ILLmatrix::matfree, mpq_ILLmatrix::matind, mpq_ILLmatrix::matsize, mpq_ILLmatrix::matval, mpq_ILL_MAXDOUBLE, and mpq_ILLlp_rows_clear().

Here is the call graph for this function:

static int mpq_add_to_list ( ILLptrworld world,
mpq_intptr **  list,
int  i 
)

Definition at line 2241 of file mpq_presolve.c.

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

Referenced by mpq_singleton_rows().

static int mpq_build_graph ( mpq_ILLlpdata lp,
mpq_graph G 
)

Definition at line 2264 of file mpq_presolve.c.

References mpq_ILLlpdata::A, mpq_graph::adjspace, mpq_edge::coef, mpq_graph::cols, mpq_node::deg, mpq_graph::edgelist, ILL_SAFE_MALLOC, mpq_ILLlpdata::ncols, mpq_ILLlpdata::nrows, mpq_graph::nzcount, mpq_ILLlpdata::nzcount, mpq_ILLlpdata::objsense, mpq_graph::objsense, mpq_graph::rows, mpq_node::rowsense, and mpq_ILLlpdata::sense.

Referenced by mpq_simple_presolve().

static void mpq_dump_graph ( mpq_graph G  ) 

Definition at line 2385 of file mpq_presolve.c.

References mpq_node::adj, mpq_edge::coef, mpq_edge::col, mpq_graph::cols, mpq_node::coltype, mpq_edge::coltype, mpq_node::deg, mpq_node::del, mpq_graph::ecount, mpq_node::lower, mpq_ILL_PRE_COL_LOGICAL, mpq_graph::ncols, mpq_graph::nrows, mpq_node::obj, mpq_node::rhs, mpq_edge::row, mpq_graph::rows, and mpq_node::upper.

Referenced by mpq_simple_presolve().

static void mpq_dump_line ( mpq_ILLlp_preline line  ) 

Definition at line 812 of file mpq_presolve.c.

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

Referenced by mpq_simple_presolve().

static int mpq_duplicate_cols ( mpq_graph G,
int *  hit 
)

Definition at line 1799 of file mpq_presolve.c.

References mpq_node::adj, mpq_edge::coef, mpq_edge::col, mpq_graph::cols, mpq_node::coltype, mpq_node::deg, mpq_edge::del, mpq_node::del, ILL_CLEANUP_IF, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, ILLutil_zeit(), k2, mpq_gather_dup_lists(), mpq_ILL_MAXINT, mpq_ILL_PRE_COL_STRUC, mpq_ILL_PRE_ZERO_TOL, mpq_graph::ncols, mpq_graph::nrows, mpq_graph::rows, and t.

Referenced by mpq_simple_presolve().

Here is the call graph for this function:

static int mpq_duplicate_rows ( mpq_graph G,
int *  hit 
)

Definition at line 1660 of file mpq_presolve.c.

References mpq_node::adj, mpq_edge::coef, mpq_graph::cols, mpq_node::coltype, mpq_node::deg, mpq_edge::del, mpq_node::del, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, ILLutil_zeit(), k2, mpq_ILL_MAXINT, mpq_ILL_PRE_COL_STRUC, mpq_ILL_PRE_ZERO_TOL, mpq_graph::ncols, mpq_graph::nrows, mpq_edge::row, mpq_graph::rows, mpq_node::rowsense, and t.

Referenced by mpq_simple_presolve().

Here is the call graph for this function:

static int mpq_empty_columns ( mpq_graph G,
mpq_ILLlp_predata pre 
)

Definition at line 1082 of file mpq_presolve.c.

References mpq_node::adj, mpq_ILLlp_preop::colindex, mpq_graph::cols, mpq_node::deg, mpq_node::del, ILL_CLEANUP_IF, ILL_RETURN, mpq_ILLlp_preop::line, mpq_node::lower, mpq_get_next_preop(), mpq_grab_lp_line(), mpq_ILL_MAXDOUBLE, mpq_ILL_MINDOUBLE, mpq_ILL_PRE_DELETE_EMPTY_COLUMN, mpq_ILL_PRE_FEAS_TOL, mpq_set_fixed_variable(), mpq_graph::ncols, mpq_node::obj, mpq_graph::objsense, mpq_ILLlp_preop::ptype, mpq_ILLlp_preop::rowindex, and mpq_node::upper.

Referenced by mpq_simple_presolve().

Here is the call graph for this function:

static int mpq_fixed_variables ( mpq_graph G,
mpq_ILLlp_predata pre 
)

Definition at line 1045 of file mpq_presolve.c.

References mpq_ILLlp_preop::colindex, mpq_graph::cols, mpq_node::del, ILL_CLEANUP_IF, ILL_RETURN, mpq_ILLlp_preop::line, mpq_node::lower, mpq_get_next_preop(), mpq_grab_lp_line(), mpq_ILL_PRE_DELETE_FIXED_VARIABLE, mpq_set_fixed_variable(), mpq_graph::ncols, mpq_ILLlp_preop::ptype, mpq_ILLlp_preop::rowindex, and mpq_node::upper.

Referenced by mpq_simple_presolve().

Here is the call graph for this function:

static int mpq_forcing_constraints ( mpq_graph G,
mpq_ILLlp_predata pre,
int *  hit 
)

Definition at line 1336 of file mpq_presolve.c.

References mpq_node::adj, mpq_edge::coef, mpq_edge::col, mpq_ILLlp_preop::colindex, mpq_graph::cols, mpq_node::deg, mpq_edge::del, mpq_node::del, ILL_CLEANUP_IF, mpq_ILLlp_preop::line, mpq_node::lower, mpq_get_implied_rhs_bounds(), mpq_get_next_preop(), mpq_grab_lp_line(), mpq_ILL_PRE_DELETE_FORCED_VARIABLE, mpq_ILL_PRE_FEAS_TOL, mpq_set_fixed_variable(), mpq_graph::nrows, mpq_ILLlp_predata::opcount, mpq_ILLlp_preop::ptype, mpq_ILLlp_preop::rowindex, mpq_graph::rows, and mpq_node::upper.

Referenced by mpq_simple_presolve().

Here is the call graph for this function:

static void mpq_free_graph ( mpq_graph G  ) 

Definition at line 2458 of file mpq_presolve.c.

References mpq_graph::adjspace, mpq_edge::coef, mpq_graph::cols, mpq_graph::edgelist, ILL_IFFREE, ILLptrworld_delete(), mpq_graph::intptrworld, mpq_init_graph(), mpq_graph::nzcount, and mpq_graph::rows.

Here is the call graph for this function:

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

Definition at line 1931 of file mpq_presolve.c.

References ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, and mpq_ILL_MAXINT.

Referenced by mpq_duplicate_cols().

static void mpq_get_implied_rhs_bounds ( mpq_graph G,
int  i,
mpq_t *  lb,
mpq_t *  ub 
)

Definition at line 2075 of file mpq_presolve.c.

References mpq_node::adj, mpq_edge::coef, mpq_edge::col, mpq_graph::cols, mpq_node::deg, mpq_edge::del, mpq_ILL_MAXDOUBLE, mpq_ILL_MINDOUBLE, and mpq_graph::rows.

Referenced by mpq_forcing_constraints(), and mpq_get_implied_variable_bounds().

static void mpq_get_implied_variable_bounds ( mpq_graph G,
int  j,
mpq_edge a_ij,
mpq_t *  lb,
mpq_t *  ub 
)

Definition at line 2164 of file mpq_presolve.c.

References mpq_edge::coef, mpq_graph::cols, mpq_node::lower, mpq_get_implied_rhs_bounds(), mpq_ILL_MAXDOUBLE, mpq_ILL_MINDOUBLE, mpq_ILL_PRE_FEAS_TOL, mpq_node::rhs, mpq_edge::row, mpq_graph::rows, and mpq_node::upper.

Referenced by mpq_singleton_columns().

Here is the call graph for this function:

static int mpq_get_next_preop ( mpq_ILLlp_predata pre,
mpq_ILLlp_preop **  op 
)

Definition at line 2215 of file mpq_presolve.c.

References ILL_RETURN, mpq_ILLlp_preop_init(), mpq_ILLlp_predata::opcount, mpq_ILLlp_predata::oplist, and mpq_ILLlp_predata::opsize.

Referenced by mpq_empty_columns(), mpq_fixed_variables(), mpq_forcing_constraints(), mpq_singleton_columns(), and mpq_singleton_rows().

Here is the call graph for this function:

static int mpq_grab_lp_info ( mpq_graph G,
char **  colnames,
mpq_ILLlp_sinfo info 
)

Definition at line 838 of file mpq_presolve.c.

References mpq_ILLlp_sinfo::A, mpq_node::adj, mpq_edge::coef, mpq_ILLlp_sinfo::colnames, mpq_graph::cols, mpq_ILLlp_sinfo::colsize, mpq_node::coltype, mpq_node::deg, mpq_node::del, ILL_namebufsize, ILL_SAFE_MALLOC, mpq_node::lower, mpq_ILLlp_sinfo::lower, mpq_ILLmatrix::matbeg, mpq_ILLmatrix::matcnt, mpq_ILLmatrix::matcols, mpq_ILLmatrix::matcolsize, mpq_ILLmatrix::matfree, mpq_ILLmatrix::matind, mpq_ILLmatrix::matrows, mpq_ILLmatrix::matsize, mpq_ILLmatrix::matval, mpq_ILL_PRE_COL_STRUC, mpq_ILLlp_sinfo::ncols, mpq_graph::ncols, mpq_ILLlp_sinfo::nrows, mpq_graph::nrows, mpq_ILLlp_sinfo::nzcount, mpq_node::obj, mpq_ILLlp_sinfo::obj, mpq_node::rhs, mpq_ILLlp_sinfo::rhs, mpq_edge::row, mpq_graph::rows, mpq_ILLlp_sinfo::rowsize, mpq_node::upper, and mpq_ILLlp_sinfo::upper.

static int mpq_grab_lp_line ( mpq_graph G,
int  indx,
mpq_ILLlp_preline line,
int  row_or_col 
)

Definition at line 747 of file mpq_presolve.c.

References mpq_node::adj, mpq_graph::cols, mpq_ILLlp_preline::count, mpq_node::deg, mpq_edge::del, and mpq_graph::rows.

Referenced by mpq_empty_columns(), mpq_fixed_variables(), mpq_forcing_constraints(), mpq_singleton_columns(), and mpq_singleton_rows().

void mpq_ILLlp_predata_free ( mpq_ILLlp_predata pre  ) 

Definition at line 2599 of file mpq_presolve.c.

References mpq_ILLlp_predata::colfixval, mpq_ILLlp_predata::colmap, mpq_ILLlp_predata::colscale, ILL_IFFREE, mpq_ILLlp_predata_init(), mpq_ILLlp_preop_free(), mpq_ILLlp_predata::opcount, mpq_ILLlp_predata::oplist, mpq_ILLlp_predata::rowfixval, mpq_ILLlp_predata::rowmap, and mpq_ILLlp_predata::rowscale.

Referenced by mpq_ILLlp_presolve().

Here is the call graph for this function:

void mpq_ILLlp_predata_init ( mpq_ILLlp_predata pre  ) 

void mpq_ILLlp_preline_free ( mpq_ILLlp_preline line  ) 

Definition at line 2663 of file mpq_presolve.c.

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

Referenced by mpq_ILLlp_preop_free().

void mpq_ILLlp_preline_init ( mpq_ILLlp_preline line  ) 

Definition at line 2644 of file mpq_presolve.c.

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

Referenced by mpq_ILLlp_preop_init().

void mpq_ILLlp_preop_free ( mpq_ILLlp_preop op  ) 

Definition at line 2634 of file mpq_presolve.c.

References mpq_ILLlp_preop::line, mpq_ILLlp_preline_free(), and mpq_ILLlp_preop_init().

Referenced by mpq_ILLlp_predata_free().

Here is the call graph for this function:

void mpq_ILLlp_preop_init ( mpq_ILLlp_preop op  ) 

Definition at line 2622 of file mpq_presolve.c.

References mpq_ILLlp_preop::colindex, mpq_ILLlp_preop::line, mpq_ILLlp_preline_init(), mpq_ILLlp_preop::ptype, and mpq_ILLlp_preop::rowindex.

Referenced by mpq_get_next_preop(), and mpq_ILLlp_preop_free().

Here is the call graph for this function:

int mpq_ILLlp_presolve ( mpq_ILLlpdata lp,
int  pre_types 
)

Definition at line 462 of file mpq_presolve.c.

References ILL_CLEANUP_IF, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, mpq_ILL_LP_STATUS_OK, mpq_ILLlp_predata_free(), mpq_ILLlp_predata_init(), mpq_ILLlp_sinfo_free(), mpq_ILLlp_sinfo_init(), mpq_simple_presolve(), mpq_ILLlpdata::presolve, and mpq_ILLlpdata::sinfo.

Here is the call graph for this function:

int mpq_ILLlp_scale ( mpq_ILLlpdata lp  ) 

Definition at line 349 of file mpq_presolve.c.

References mpq_ILLlpdata::A, ILL_ERROR, mpq_ILLlpdata::lower, mpq_ILLmatrix::matbeg, mpq_ILLmatrix::matcnt, mpq_ILLmatrix::matind, mpq_ILLmatrix::matval, mpq_ILL_MAXDOUBLE, mpq_ILL_MINDOUBLE, mpq_ILLlpdata::ncols, mpq_ILLlpdata::nrows, mpq_ILLlpdata::nstruct, mpq_ILLlpdata::obj, mpq_ILLlpdata::rhs, mpq_ILLlpdata::rowmap, mpq_ILLlpdata::structmap, and mpq_ILLlpdata::upper.

void mpq_ILLlp_sinfo_free ( mpq_ILLlp_sinfo sinfo  ) 

void mpq_ILLlp_sinfo_init ( mpq_ILLlp_sinfo sinfo  ) 

int mpq_ILLlp_sinfo_print ( mpq_ILLlp_sinfo s  ) 

Definition at line 2482 of file mpq_presolve.c.

References mpq_ILLlp_sinfo::A, mpq_ILLlpdata::A, mpq_ILLlp_sinfo::colnames, mpq_ILLlpdata::colnames, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, mpq_ILLlpdata::intmarker, mpq_ILLlp_sinfo::lower, mpq_ILLlpdata::lower, mpq_ILLmatrix::matbeg, mpq_ILLmatrix::matcnt, mpq_ILLmatrix::matind, mpq_ILLmatrix::matval, mpq_ILLlpdata_init(), mpq_ILLlp_sinfo::ncols, mpq_ILLlpdata::ncols, mpq_ILLlp_sinfo::nrows, mpq_ILLlpdata::nrows, mpq_ILLlp_sinfo::nzcount, mpq_ILLlpdata::nzcount, mpq_ILLlp_sinfo::obj, mpq_ILLlpdata::obj, mpq_ILLlpdata::objname, mpq_ILLlp_sinfo::objsense, mpq_ILLlpdata::objsense, mpq_ILLlpdata::probname, mpq_ILLlp_sinfo::rhs, mpq_ILLlpdata::rhs, mpq_ILLlpdata::rownames, mpq_ILLlpdata::sense, mpq_ILLlp_sinfo::upper, and mpq_ILLlpdata::upper.

Here is the call graph for this function:

static void mpq_init_graph ( mpq_graph G  ) 

Definition at line 2442 of file mpq_presolve.c.

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

Referenced by mpq_free_graph(), and mpq_simple_presolve().

Here is the call graph for this function:

static void mpq_set_fixed_variable ( mpq_graph G,
int  j,
mpq_t  val 
) [static]

Definition at line 2054 of file mpq_presolve.c.

References mpq_node::adj, mpq_edge::coef, mpq_graph::cols, mpq_node::deg, mpq_edge::del, mpq_node::del, mpq_edge::row, and mpq_graph::rows.

Referenced by mpq_empty_columns(), mpq_fixed_variables(), and mpq_forcing_constraints().

static int mpq_simple_presolve ( mpq_ILLlpdata lp,
mpq_ILLlp_predata pre,
mpq_ILLlp_sinfo info,
int  pre_types,
int *  status 
) [static]

Definition at line 580 of file mpq_presolve.c.

References mpq_ILLlp_preop::colindex, ILL_CLEANUP_IF, mpq_ILLlp_preop::line, mpq_build_graph(), mpq_debug, mpq_dump_graph(), mpq_dump_line(), mpq_duplicate_cols(), mpq_duplicate_rows(), mpq_empty_columns(), mpq_fixed_variables(), mpq_forcing_constraints(), mpq_ILL_LP_STATUS_OK, mpq_ILL_PRE_DELETE_EMPTY_COLUMN, mpq_ILL_PRE_DELETE_EMPTY_ROW, mpq_ILL_PRE_DELETE_FIXED_VARIABLE, mpq_ILL_PRE_DELETE_FORCED_VARIABLE, mpq_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE, mpq_ILL_PRE_DELETE_SINGLETON_ROW, mpq_ILL_PRE_DELETE_SINGLETON_VARIABLE, mpq_ILL_PRE_DUPLICATE_COL, mpq_ILL_PRE_DUPLICATE_ROW, mpq_ILL_PRE_EMPTY_COL, mpq_ILL_PRE_FIXED, mpq_ILL_PRE_FORCING, mpq_ILL_PRE_SINGLE_COL, mpq_ILL_PRE_SINGLE_ROW, mpq_init_graph(), mpq_singleton_columns(), mpq_singleton_rows(), mpq_ILLlpdata::ncols, mpq_ILLlpdata::nrows, mpq_ILLlpdata::nzcount, mpq_ILLlp_predata::opcount, mpq_ILLlp_predata::oplist, mpq_ILLlp_preop::ptype, and mpq_ILLlp_preop::rowindex.

Referenced by mpq_ILLlp_presolve().

Here is the call graph for this function:

static int mpq_singleton_columns ( mpq_graph G,
mpq_ILLlp_predata pre,
int *  hit 
)

Definition at line 1416 of file mpq_presolve.c.

References mpq_node::adj, mpq_edge::coef, mpq_edge::col, mpq_ILLlp_preop::colindex, mpq_graph::cols, mpq_node::deg, mpq_edge::del, mpq_node::del, ILL_CLEANUP_IF, mpq_ILLlp_preop::line, mpq_node::lower, mpq_get_implied_variable_bounds(), mpq_get_next_preop(), mpq_grab_lp_line(), mpq_ILL_MAXDOUBLE, mpq_ILL_MINDOUBLE, mpq_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE, mpq_ILL_PRE_DELETE_SINGLETON_VARIABLE, mpq_graph::ncols, mpq_node::obj, mpq_ILLlp_predata::opcount, mpq_ILLlp_preop::ptype, mpq_ILLlp_preop::rowindex, mpq_graph::rows, and mpq_node::upper.

Referenced by mpq_simple_presolve().

Here is the call graph for this function:

static int mpq_singleton_rows ( mpq_graph G,
mpq_ILLlp_predata pre,
int *  hit 
)

Definition at line 1167 of file mpq_presolve.c.

References mpq_node::adj, mpq_edge::coef, mpq_edge::col, mpq_ILLlp_preop::colindex, mpq_graph::cols, mpq_node::deg, mpq_edge::del, mpq_node::del, ILL_CLEANUP_IF, ILL_SAFE_MALLOC, mpq_graph::intptrworld, mpq_ILLlp_preop::line, mpq_node::lower, mpq_add_to_list(), mpq_get_next_preop(), mpq_grab_lp_line(), mpq_ILL_PRE_DELETE_EMPTY_ROW, mpq_ILL_PRE_DELETE_SINGLETON_ROW, mpq_ILL_PRE_FEAS_TOL, mpq_intptr::next, mpq_graph::nrows, mpq_ILLlp_preop::ptype, mpq_ILLlp_preline::rhs, mpq_node::rhs, mpq_edge::row, mpq_ILLlp_preop::rowindex, mpq_graph::rows, and mpq_node::upper.

Referenced by mpq_simple_presolve().

Here is the call graph for this function:


Variable Documentation

int mpq_debug = 0 [static]

Definition at line 67 of file mpq_presolve.c.

Referenced by mpq_simple_presolve().

int TRACE = 0 [static]

Definition at line 24 of file mpq_presolve.c.


Generated on Thu Mar 29 09:44:17 2012 for QSopt_ex by  doxygen 1.4.7