dbl_presolve.c File Reference

#include "qs_config.h"
#include "dbl_iqsutil.h"
#include "dbl_lpdata.h"
#include "dbl_lpdefs.h"

Include dependency graph for dbl_presolve.c:

Go to the source code of this file.

Data Structures

struct  dbl_edge
struct  dbl_graph
struct  dbl_intptr
struct  dbl_node

Defines

#define dbl_ILL_LP_STATUS_OK   (0)
#define dbl_ILL_PRE_COL_LOGICAL   (1)
#define dbl_ILL_PRE_COL_STRUC   (0)
#define dbl_ILL_PRE_DELETE_EMPTY_COLUMN   (7)
#define dbl_ILL_PRE_DELETE_EMPTY_ROW   (1)
#define dbl_ILL_PRE_DELETE_FIXED_VARIABLE   (3)
#define dbl_ILL_PRE_DELETE_FORCED_VARIABLE   (4)
#define dbl_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE   (6)
#define dbl_ILL_PRE_DELETE_SINGLETON_ROW   (2)
#define dbl_ILL_PRE_DELETE_SINGLETON_VARIABLE   (5)
#define dbl_ILL_PRE_FEAS_TOL   dbl_PFEAS_TOLER
#define dbl_ILL_PRE_ZERO_TOL   dbl_PIVOT_TOLER

Functions

static int dbl_add_to_list (ILLptrworld *world, dbl_intptr **list, int i)
static int dbl_build_graph (dbl_ILLlpdata *lp, dbl_graph *G)
static void dbl_dump_graph (dbl_graph *G)
static void dbl_dump_line (dbl_ILLlp_preline *line)
static int dbl_duplicate_cols (dbl_graph *G, int *hit)
static int dbl_duplicate_rows (dbl_graph *G, int *hit)
static int dbl_empty_columns (dbl_graph *G, dbl_ILLlp_predata *pre)
static int dbl_fixed_variables (dbl_graph *G, dbl_ILLlp_predata *pre)
static int dbl_forcing_constraints (dbl_graph *G, dbl_ILLlp_predata *pre, int *hit)
static void dbl_free_graph (dbl_graph *G)
static int dbl_gather_dup_lists (int *s, int count, int *duptotal, int **dupcnt, int **dupind)
static void dbl_get_implied_rhs_bounds (dbl_graph *G, int i, double *lb, double *ub)
static void dbl_get_implied_variable_bounds (dbl_graph *G, int j, dbl_edge *a_ij, double *lb, double *ub)
static int dbl_get_next_preop (dbl_ILLlp_predata *pre, dbl_ILLlp_preop **op)
static int dbl_grab_lp_info (dbl_graph *G, char **colnames, dbl_ILLlp_sinfo *info)
static int dbl_grab_lp_line (dbl_graph *G, int indx, dbl_ILLlp_preline *line, int row_or_col)
void dbl_ILLlp_predata_free (dbl_ILLlp_predata *pre)
void dbl_ILLlp_predata_init (dbl_ILLlp_predata *pre)
void dbl_ILLlp_preline_free (dbl_ILLlp_preline *line)
void dbl_ILLlp_preline_init (dbl_ILLlp_preline *line)
void dbl_ILLlp_preop_free (dbl_ILLlp_preop *op)
void dbl_ILLlp_preop_init (dbl_ILLlp_preop *op)
int dbl_ILLlp_presolve (dbl_ILLlpdata *lp, int pre_types)
int dbl_ILLlp_scale (dbl_ILLlpdata *lp)
void dbl_ILLlp_sinfo_free (dbl_ILLlp_sinfo *sinfo)
void dbl_ILLlp_sinfo_init (dbl_ILLlp_sinfo *sinfo)
int dbl_ILLlp_sinfo_print (dbl_ILLlp_sinfo *s)
static void dbl_init_graph (dbl_graph *G)
static void dbl_set_fixed_variable (dbl_graph *G, int j, double val)
static int dbl_simple_presolve (dbl_ILLlpdata *lp, dbl_ILLlp_predata *pre, dbl_ILLlp_sinfo *info, int pre_types, int *status)
static int dbl_singleton_columns (dbl_graph *G, dbl_ILLlp_predata *pre, int *hit)
static int dbl_singleton_rows (dbl_graph *G, dbl_ILLlp_predata *pre, int *hit)
 ILL_PTRWORLD_ROUTINES (ILL_PTRWORLD_LISTFREE_ROUTINE(dbl_intptr, intptralloc, intptr_bulkalloc, intptrfree)

Variables

static int dbl_debug = 0
static int TRACE = 0


Define Documentation

#define dbl_ILL_LP_STATUS_OK   (0)

Definition at line 52 of file dbl_presolve.c.

Referenced by dbl_ILLlp_presolve(), and dbl_simple_presolve().

#define dbl_ILL_PRE_COL_LOGICAL   (1)

Definition at line 65 of file dbl_presolve.c.

Referenced by dbl_dump_graph().

#define dbl_ILL_PRE_COL_STRUC   (0)

Definition at line 64 of file dbl_presolve.c.

Referenced by dbl_duplicate_cols(), dbl_duplicate_rows(), and dbl_grab_lp_info().

#define dbl_ILL_PRE_DELETE_EMPTY_COLUMN   (7)

Definition at line 62 of file dbl_presolve.c.

Referenced by dbl_empty_columns(), and dbl_simple_presolve().

#define dbl_ILL_PRE_DELETE_EMPTY_ROW   (1)

Definition at line 56 of file dbl_presolve.c.

Referenced by dbl_simple_presolve(), and dbl_singleton_rows().

#define dbl_ILL_PRE_DELETE_FIXED_VARIABLE   (3)

Definition at line 58 of file dbl_presolve.c.

Referenced by dbl_fixed_variables(), and dbl_simple_presolve().

#define dbl_ILL_PRE_DELETE_FORCED_VARIABLE   (4)

Definition at line 59 of file dbl_presolve.c.

Referenced by dbl_forcing_constraints(), and dbl_simple_presolve().

#define dbl_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE   (6)

Definition at line 61 of file dbl_presolve.c.

Referenced by dbl_simple_presolve(), and dbl_singleton_columns().

#define dbl_ILL_PRE_DELETE_SINGLETON_ROW   (2)

Definition at line 57 of file dbl_presolve.c.

Referenced by dbl_simple_presolve(), and dbl_singleton_rows().

#define dbl_ILL_PRE_DELETE_SINGLETON_VARIABLE   (5)

Definition at line 60 of file dbl_presolve.c.

Referenced by dbl_simple_presolve(), and dbl_singleton_columns().

#define dbl_ILL_PRE_FEAS_TOL   dbl_PFEAS_TOLER

Definition at line 53 of file dbl_presolve.c.

Referenced by dbl_empty_columns(), dbl_forcing_constraints(), dbl_get_implied_variable_bounds(), and dbl_singleton_rows().

#define dbl_ILL_PRE_ZERO_TOL   dbl_PIVOT_TOLER

Definition at line 54 of file dbl_presolve.c.

Referenced by dbl_duplicate_cols(), and dbl_duplicate_rows().


Function Documentation

static int dbl_add_to_list ( ILLptrworld world,
dbl_intptr **  list,
int  i 
)

Definition at line 2241 of file dbl_presolve.c.

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

Referenced by dbl_singleton_rows().

static int dbl_build_graph ( dbl_ILLlpdata lp,
dbl_graph G 
)

Definition at line 2264 of file dbl_presolve.c.

References dbl_ILLlpdata::A, dbl_graph::adjspace, dbl_edge::coef, dbl_graph::cols, dbl_node::deg, dbl_graph::edgelist, ILL_SAFE_MALLOC, dbl_ILLlpdata::ncols, dbl_ILLlpdata::nrows, dbl_graph::nzcount, dbl_ILLlpdata::nzcount, dbl_ILLlpdata::objsense, dbl_graph::objsense, dbl_graph::rows, dbl_node::rowsense, and dbl_ILLlpdata::sense.

Referenced by dbl_simple_presolve().

static void dbl_dump_graph ( dbl_graph G  ) 

Definition at line 2385 of file dbl_presolve.c.

References dbl_node::adj, dbl_edge::coef, dbl_edge::col, dbl_graph::cols, dbl_node::coltype, dbl_edge::coltype, dbl_ILL_PRE_COL_LOGICAL, dbl_node::deg, dbl_node::del, dbl_graph::ecount, dbl_node::lower, dbl_graph::ncols, dbl_graph::nrows, dbl_node::obj, dbl_node::rhs, dbl_edge::row, dbl_graph::rows, and dbl_node::upper.

Referenced by dbl_simple_presolve().

static void dbl_dump_line ( dbl_ILLlp_preline line  ) 

Definition at line 812 of file dbl_presolve.c.

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

Referenced by dbl_simple_presolve().

static int dbl_duplicate_cols ( dbl_graph G,
int *  hit 
)

Definition at line 1799 of file dbl_presolve.c.

References dbl_node::adj, dbl_edge::coef, dbl_edge::col, dbl_graph::cols, dbl_node::coltype, dbl_gather_dup_lists(), dbl_ILL_MAXINT, dbl_ILL_PRE_COL_STRUC, dbl_ILL_PRE_ZERO_TOL, dbl_node::deg, dbl_edge::del, dbl_node::del, ILL_CLEANUP_IF, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, ILLutil_zeit(), k2, dbl_graph::ncols, dbl_graph::nrows, dbl_graph::rows, and t.

Referenced by dbl_simple_presolve().

Here is the call graph for this function:

static int dbl_duplicate_rows ( dbl_graph G,
int *  hit 
)

Definition at line 1660 of file dbl_presolve.c.

References dbl_node::adj, dbl_edge::coef, dbl_graph::cols, dbl_node::coltype, dbl_ILL_MAXINT, dbl_ILL_PRE_COL_STRUC, dbl_ILL_PRE_ZERO_TOL, dbl_node::deg, dbl_edge::del, dbl_node::del, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, ILLutil_zeit(), k2, dbl_graph::ncols, dbl_graph::nrows, dbl_edge::row, dbl_graph::rows, dbl_node::rowsense, and t.

Referenced by dbl_simple_presolve().

Here is the call graph for this function:

static int dbl_empty_columns ( dbl_graph G,
dbl_ILLlp_predata pre 
)

Definition at line 1082 of file dbl_presolve.c.

References dbl_node::adj, dbl_ILLlp_preop::colindex, dbl_graph::cols, dbl_get_next_preop(), dbl_grab_lp_line(), dbl_ILL_MAXDOUBLE, dbl_ILL_MINDOUBLE, dbl_ILL_PRE_DELETE_EMPTY_COLUMN, dbl_ILL_PRE_FEAS_TOL, dbl_set_fixed_variable(), dbl_node::deg, dbl_node::del, ILL_CLEANUP_IF, ILL_RETURN, dbl_ILLlp_preop::line, dbl_node::lower, dbl_graph::ncols, dbl_node::obj, dbl_graph::objsense, dbl_ILLlp_preop::ptype, dbl_ILLlp_preop::rowindex, and dbl_node::upper.

Referenced by dbl_simple_presolve().

Here is the call graph for this function:

static int dbl_fixed_variables ( dbl_graph G,
dbl_ILLlp_predata pre 
)

Definition at line 1045 of file dbl_presolve.c.

References dbl_ILLlp_preop::colindex, dbl_graph::cols, dbl_get_next_preop(), dbl_grab_lp_line(), dbl_ILL_PRE_DELETE_FIXED_VARIABLE, dbl_set_fixed_variable(), dbl_node::del, ILL_CLEANUP_IF, ILL_RETURN, dbl_ILLlp_preop::line, dbl_node::lower, dbl_graph::ncols, dbl_ILLlp_preop::ptype, dbl_ILLlp_preop::rowindex, and dbl_node::upper.

Referenced by dbl_simple_presolve().

Here is the call graph for this function:

static int dbl_forcing_constraints ( dbl_graph G,
dbl_ILLlp_predata pre,
int *  hit 
)

Definition at line 1336 of file dbl_presolve.c.

References dbl_node::adj, dbl_edge::coef, dbl_edge::col, dbl_ILLlp_preop::colindex, dbl_graph::cols, dbl_get_implied_rhs_bounds(), dbl_get_next_preop(), dbl_grab_lp_line(), dbl_ILL_PRE_DELETE_FORCED_VARIABLE, dbl_ILL_PRE_FEAS_TOL, dbl_set_fixed_variable(), dbl_node::deg, dbl_edge::del, dbl_node::del, ILL_CLEANUP_IF, dbl_ILLlp_preop::line, dbl_node::lower, dbl_graph::nrows, dbl_ILLlp_predata::opcount, dbl_ILLlp_preop::ptype, dbl_ILLlp_preop::rowindex, dbl_graph::rows, and dbl_node::upper.

Referenced by dbl_simple_presolve().

Here is the call graph for this function:

static void dbl_free_graph ( dbl_graph G  ) 

Definition at line 2458 of file dbl_presolve.c.

References dbl_graph::adjspace, dbl_edge::coef, dbl_graph::cols, dbl_init_graph(), dbl_graph::edgelist, ILL_IFFREE, ILLptrworld_delete(), dbl_graph::intptrworld, dbl_graph::nzcount, and dbl_graph::rows.

Here is the call graph for this function:

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

Definition at line 1931 of file dbl_presolve.c.

References dbl_ILL_MAXINT, ILL_IFFREE, ILL_RETURN, and ILL_SAFE_MALLOC.

Referenced by dbl_duplicate_cols().

static void dbl_get_implied_rhs_bounds ( dbl_graph G,
int  i,
double *  lb,
double *  ub 
)

Definition at line 2075 of file dbl_presolve.c.

References dbl_node::adj, dbl_edge::coef, dbl_edge::col, dbl_graph::cols, dbl_ILL_MAXDOUBLE, dbl_ILL_MINDOUBLE, dbl_node::deg, dbl_edge::del, and dbl_graph::rows.

Referenced by dbl_forcing_constraints(), and dbl_get_implied_variable_bounds().

static void dbl_get_implied_variable_bounds ( dbl_graph G,
int  j,
dbl_edge a_ij,
double *  lb,
double *  ub 
)

Definition at line 2164 of file dbl_presolve.c.

References dbl_edge::coef, dbl_graph::cols, dbl_get_implied_rhs_bounds(), dbl_ILL_MAXDOUBLE, dbl_ILL_MINDOUBLE, dbl_ILL_PRE_FEAS_TOL, dbl_node::lower, dbl_node::rhs, dbl_edge::row, dbl_graph::rows, and dbl_node::upper.

Referenced by dbl_singleton_columns().

Here is the call graph for this function:

static int dbl_get_next_preop ( dbl_ILLlp_predata pre,
dbl_ILLlp_preop **  op 
)

Definition at line 2215 of file dbl_presolve.c.

References dbl_ILLlp_preop_init(), ILL_RETURN, dbl_ILLlp_predata::opcount, dbl_ILLlp_predata::oplist, and dbl_ILLlp_predata::opsize.

Referenced by dbl_empty_columns(), dbl_fixed_variables(), dbl_forcing_constraints(), dbl_singleton_columns(), and dbl_singleton_rows().

Here is the call graph for this function:

static int dbl_grab_lp_info ( dbl_graph G,
char **  colnames,
dbl_ILLlp_sinfo info 
)

Definition at line 838 of file dbl_presolve.c.

References dbl_ILLlp_sinfo::A, dbl_node::adj, dbl_edge::coef, dbl_ILLlp_sinfo::colnames, dbl_graph::cols, dbl_ILLlp_sinfo::colsize, dbl_node::coltype, dbl_ILL_PRE_COL_STRUC, dbl_node::deg, dbl_node::del, ILL_namebufsize, ILL_SAFE_MALLOC, dbl_node::lower, dbl_ILLlp_sinfo::lower, dbl_ILLmatrix::matbeg, dbl_ILLmatrix::matcnt, dbl_ILLmatrix::matcols, dbl_ILLmatrix::matcolsize, dbl_ILLmatrix::matfree, dbl_ILLmatrix::matind, dbl_ILLmatrix::matrows, dbl_ILLmatrix::matsize, dbl_ILLmatrix::matval, dbl_ILLlp_sinfo::ncols, dbl_graph::ncols, dbl_ILLlp_sinfo::nrows, dbl_graph::nrows, dbl_ILLlp_sinfo::nzcount, dbl_node::obj, dbl_ILLlp_sinfo::obj, dbl_node::rhs, dbl_ILLlp_sinfo::rhs, dbl_edge::row, dbl_graph::rows, dbl_ILLlp_sinfo::rowsize, dbl_node::upper, and dbl_ILLlp_sinfo::upper.

static int dbl_grab_lp_line ( dbl_graph G,
int  indx,
dbl_ILLlp_preline line,
int  row_or_col 
)

Definition at line 747 of file dbl_presolve.c.

References dbl_node::adj, dbl_graph::cols, dbl_ILLlp_preline::count, dbl_node::deg, dbl_edge::del, and dbl_graph::rows.

Referenced by dbl_empty_columns(), dbl_fixed_variables(), dbl_forcing_constraints(), dbl_singleton_columns(), and dbl_singleton_rows().

void dbl_ILLlp_predata_free ( dbl_ILLlp_predata pre  ) 

Definition at line 2599 of file dbl_presolve.c.

References dbl_ILLlp_predata::colfixval, dbl_ILLlp_predata::colmap, dbl_ILLlp_predata::colscale, dbl_ILLlp_predata_init(), dbl_ILLlp_preop_free(), ILL_IFFREE, dbl_ILLlp_predata::opcount, dbl_ILLlp_predata::oplist, dbl_ILLlp_predata::rowfixval, dbl_ILLlp_predata::rowmap, and dbl_ILLlp_predata::rowscale.

Here is the call graph for this function:

void dbl_ILLlp_predata_init ( dbl_ILLlp_predata pre  ) 

void dbl_ILLlp_preline_free ( dbl_ILLlp_preline line  ) 

Definition at line 2663 of file dbl_presolve.c.

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

Referenced by dbl_ILLlp_preop_free().

void dbl_ILLlp_preline_init ( dbl_ILLlp_preline line  ) 

Definition at line 2644 of file dbl_presolve.c.

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

Referenced by dbl_ILLlp_preop_init().

void dbl_ILLlp_preop_free ( dbl_ILLlp_preop op  ) 

Definition at line 2634 of file dbl_presolve.c.

References dbl_ILLlp_preline_free(), dbl_ILLlp_preop_init(), and dbl_ILLlp_preop::line.

Referenced by dbl_ILLlp_predata_free().

Here is the call graph for this function:

void dbl_ILLlp_preop_init ( dbl_ILLlp_preop op  ) 

Definition at line 2622 of file dbl_presolve.c.

References dbl_ILLlp_preop::colindex, dbl_ILLlp_preline_init(), dbl_ILLlp_preop::line, dbl_ILLlp_preop::ptype, and dbl_ILLlp_preop::rowindex.

Referenced by dbl_get_next_preop(), and dbl_ILLlp_preop_free().

Here is the call graph for this function:

int dbl_ILLlp_presolve ( dbl_ILLlpdata lp,
int  pre_types 
)

Definition at line 462 of file dbl_presolve.c.

References dbl_ILL_LP_STATUS_OK, dbl_ILLlp_predata_free(), dbl_ILLlp_predata_init(), dbl_ILLlp_sinfo_free(), dbl_ILLlp_sinfo_init(), dbl_simple_presolve(), ILL_CLEANUP_IF, ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, dbl_ILLlpdata::presolve, and dbl_ILLlpdata::sinfo.

Here is the call graph for this function:

int dbl_ILLlp_scale ( dbl_ILLlpdata lp  ) 

Definition at line 349 of file dbl_presolve.c.

References dbl_ILLlpdata::A, dbl_ILL_MAXDOUBLE, dbl_ILL_MINDOUBLE, ILL_ERROR, dbl_ILLlpdata::lower, dbl_ILLmatrix::matbeg, dbl_ILLmatrix::matcnt, dbl_ILLmatrix::matind, dbl_ILLmatrix::matval, dbl_ILLlpdata::ncols, dbl_ILLlpdata::nrows, dbl_ILLlpdata::nstruct, dbl_ILLlpdata::obj, dbl_ILLlpdata::rhs, dbl_ILLlpdata::rowmap, dbl_ILLlpdata::structmap, and dbl_ILLlpdata::upper.

void dbl_ILLlp_sinfo_free ( dbl_ILLlp_sinfo sinfo  ) 

void dbl_ILLlp_sinfo_init ( dbl_ILLlp_sinfo sinfo  ) 

int dbl_ILLlp_sinfo_print ( dbl_ILLlp_sinfo s  ) 

Definition at line 2482 of file dbl_presolve.c.

References dbl_ILLlp_sinfo::A, dbl_ILLlpdata::A, dbl_ILLlp_sinfo::colnames, dbl_ILLlpdata::colnames, dbl_ILLlpdata_init(), ILL_IFFREE, ILL_RETURN, ILL_SAFE_MALLOC, dbl_ILLlpdata::intmarker, dbl_ILLlp_sinfo::lower, dbl_ILLlpdata::lower, dbl_ILLmatrix::matbeg, dbl_ILLmatrix::matcnt, dbl_ILLmatrix::matind, dbl_ILLmatrix::matval, dbl_ILLlp_sinfo::ncols, dbl_ILLlpdata::ncols, dbl_ILLlp_sinfo::nrows, dbl_ILLlpdata::nrows, dbl_ILLlp_sinfo::nzcount, dbl_ILLlpdata::nzcount, dbl_ILLlp_sinfo::obj, dbl_ILLlpdata::obj, dbl_ILLlpdata::objname, dbl_ILLlp_sinfo::objsense, dbl_ILLlpdata::objsense, dbl_ILLlpdata::probname, dbl_ILLlp_sinfo::rhs, dbl_ILLlpdata::rhs, dbl_ILLlpdata::rownames, dbl_ILLlpdata::sense, dbl_ILLlp_sinfo::upper, and dbl_ILLlpdata::upper.

Here is the call graph for this function:

static void dbl_init_graph ( dbl_graph G  ) 

Definition at line 2442 of file dbl_presolve.c.

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

Referenced by dbl_free_graph(), and dbl_simple_presolve().

Here is the call graph for this function:

static void dbl_set_fixed_variable ( dbl_graph G,
int  j,
double  val 
) [static]

Definition at line 2054 of file dbl_presolve.c.

References dbl_node::adj, dbl_edge::coef, dbl_graph::cols, dbl_node::deg, dbl_edge::del, dbl_node::del, dbl_edge::row, and dbl_graph::rows.

Referenced by dbl_empty_columns(), dbl_fixed_variables(), and dbl_forcing_constraints().

static int dbl_simple_presolve ( dbl_ILLlpdata lp,
dbl_ILLlp_predata pre,
dbl_ILLlp_sinfo info,
int  pre_types,
int *  status 
) [static]

Definition at line 580 of file dbl_presolve.c.

References dbl_ILLlp_preop::colindex, dbl_build_graph(), dbl_debug, dbl_dump_graph(), dbl_dump_line(), dbl_duplicate_cols(), dbl_duplicate_rows(), dbl_empty_columns(), dbl_fixed_variables(), dbl_forcing_constraints(), dbl_ILL_LP_STATUS_OK, dbl_ILL_PRE_DELETE_EMPTY_COLUMN, dbl_ILL_PRE_DELETE_EMPTY_ROW, dbl_ILL_PRE_DELETE_FIXED_VARIABLE, dbl_ILL_PRE_DELETE_FORCED_VARIABLE, dbl_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE, dbl_ILL_PRE_DELETE_SINGLETON_ROW, dbl_ILL_PRE_DELETE_SINGLETON_VARIABLE, dbl_ILL_PRE_DUPLICATE_COL, dbl_ILL_PRE_DUPLICATE_ROW, dbl_ILL_PRE_EMPTY_COL, dbl_ILL_PRE_FIXED, dbl_ILL_PRE_FORCING, dbl_ILL_PRE_SINGLE_COL, dbl_ILL_PRE_SINGLE_ROW, dbl_init_graph(), dbl_singleton_columns(), dbl_singleton_rows(), ILL_CLEANUP_IF, dbl_ILLlp_preop::line, dbl_ILLlpdata::ncols, dbl_ILLlpdata::nrows, dbl_ILLlpdata::nzcount, dbl_ILLlp_predata::opcount, dbl_ILLlp_predata::oplist, dbl_ILLlp_preop::ptype, and dbl_ILLlp_preop::rowindex.

Referenced by dbl_ILLlp_presolve().

Here is the call graph for this function:

static int dbl_singleton_columns ( dbl_graph G,
dbl_ILLlp_predata pre,
int *  hit 
)

Definition at line 1416 of file dbl_presolve.c.

References dbl_node::adj, dbl_edge::coef, dbl_edge::col, dbl_ILLlp_preop::colindex, dbl_graph::cols, dbl_get_implied_variable_bounds(), dbl_get_next_preop(), dbl_grab_lp_line(), dbl_ILL_MAXDOUBLE, dbl_ILL_MINDOUBLE, dbl_ILL_PRE_DELETE_FREE_SINGLETON_VARIABLE, dbl_ILL_PRE_DELETE_SINGLETON_VARIABLE, dbl_node::deg, dbl_edge::del, dbl_node::del, ILL_CLEANUP_IF, dbl_ILLlp_preop::line, dbl_node::lower, dbl_graph::ncols, dbl_node::obj, dbl_ILLlp_predata::opcount, dbl_ILLlp_preop::ptype, dbl_ILLlp_preop::rowindex, dbl_graph::rows, and dbl_node::upper.

Referenced by dbl_simple_presolve().

Here is the call graph for this function:

static int dbl_singleton_rows ( dbl_graph G,
dbl_ILLlp_predata pre,
int *  hit 
)

Definition at line 1167 of file dbl_presolve.c.

References dbl_node::adj, dbl_edge::coef, dbl_edge::col, dbl_ILLlp_preop::colindex, dbl_graph::cols, dbl_add_to_list(), dbl_get_next_preop(), dbl_grab_lp_line(), dbl_ILL_PRE_DELETE_EMPTY_ROW, dbl_ILL_PRE_DELETE_SINGLETON_ROW, dbl_ILL_PRE_FEAS_TOL, dbl_node::deg, dbl_edge::del, dbl_node::del, ILL_CLEANUP_IF, ILL_SAFE_MALLOC, dbl_graph::intptrworld, dbl_ILLlp_preop::line, dbl_node::lower, dbl_intptr::next, dbl_graph::nrows, dbl_ILLlp_preop::ptype, dbl_ILLlp_preline::rhs, dbl_node::rhs, dbl_edge::row, dbl_ILLlp_preop::rowindex, dbl_graph::rows, and dbl_node::upper.

Referenced by dbl_simple_presolve().

Here is the call graph for this function:

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

Definition at line 218 of file dbl_presolve.c.

References dbl_ILL_MAXDOUBLE, dbl_ILLlp_rows_clear(), ILL_SAFE_MALLOC, dbl_ILLmatrix::matbeg, dbl_ILLmatrix::matcnt, dbl_ILLmatrix::matcols, dbl_ILLmatrix::matcolsize, dbl_ILLmatrix::matfree, dbl_ILLmatrix::matind, dbl_ILLmatrix::matsize, and dbl_ILLmatrix::matval.

Here is the call graph for this function:


Variable Documentation

int dbl_debug = 0 [static]

Definition at line 67 of file dbl_presolve.c.

Referenced by dbl_simple_presolve().

int TRACE = 0 [static]

Definition at line 24 of file dbl_presolve.c.


Generated on Thu Mar 29 09:33:56 2012 for QSopt_ex by  doxygen 1.4.7