lib.c File Reference

#include "qs_config.h"
#include "iqsutil.h"
#include "lpdata.h"
#include "lpdefs.h"
#include "simplex.h"
#include "price.h"
#include "basis.h"
#include "lib.h"
#include "qstruct.h"
#include "qsopt.h"
#include "lp.h"
#include "mps.h"

Include dependency graph for lib.c:

Go to the source code of this file.

Defines

#define EXTRA_COLS   (100)
#define EXTRA_MAT   (1000)
#define EXTRA_ROWS   (100)
#define PRINT_TOL   PFEAS_TOLER
#define READ_BASIS_LL   2
#define READ_BASIS_UL   3
#define READ_BASIS_XL   0
#define READ_BASIS_XU   1

Functions

static void check_pinf (price_info *pinf, int *it_exists)
static int delcols_work (lpinfo *lp, char *colmark)
int ILLlib_addcol (lpinfo *lp, ILLlp_basis *B, int cnt, int *ind, EGlpNum_t *val, const EGlpNum_t obj, const EGlpNum_t lower, const EGlpNum_t upper, const char *name, int factorok)
int ILLlib_addcols (lpinfo *lp, ILLlp_basis *B, int num, int *cmatcnt, int *cmatbeg, int *cmatind, EGlpNum_t *cmatval, EGlpNum_t *obj, EGlpNum_t *lower, EGlpNum_t *upper, const char **names, int factorok)
int ILLlib_addrow (lpinfo *lp, ILLlp_basis *B, int cnt, int *ind, const EGlpNum_t *val, const EGlpNum_t rhs, int sense, const EGlpNum_t range, const char *name)
int ILLlib_addrows (lpinfo *lp, ILLlp_basis *B, int num, int *rmatcnt, int *rmatbeg, int *rmatind, const EGlpNum_t *rmatval, const EGlpNum_t *rhs, char *sense, const EGlpNum_t *range, const char **names, int *factorok)
int ILLlib_basis_order (lpinfo *lp, int *header)
int ILLlib_cache_solution (lpinfo *lp, ILLlp_cache *C)
int ILLlib_chgbnd (lpinfo *lp, int indx, int lu, const EGlpNum_t bnd)
int ILLlib_chgbnds (lpinfo *lp, int cnt, int *indx, char *lu, const EGlpNum_t *bnd)
int ILLlib_chgcoef (lpinfo *lp, int rowindex, int colindex, EGlpNum_t coef)
int ILLlib_chgobj (lpinfo *lp, int indx, EGlpNum_t coef)
int ILLlib_chgrange (lpinfo *lp, int indx, EGlpNum_t coef)
int ILLlib_chgrhs (lpinfo *lp, int indx, EGlpNum_t coef)
int ILLlib_chgsense (lpinfo *lp, int num, int *rowlist, char *sense)
int ILLlib_colindex (lpinfo *lp, const char *name, int *colindex)
int ILLlib_colnames (lpinfo *lp, char **colnames)
int ILLlib_delcols (lpinfo *lp, ILLlp_basis *B, int num, int *dellist, int *basis_ok)
int ILLlib_delrows (lpinfo *lp, ILLlp_basis *B, ILLlp_cache *C, int num, int *dellist, int *basis_ok, int *cache_ok)
int ILLlib_findName (ILLlpdata *qslp, int forRow, const char *name, int id, char buf[ILL_namebufsize])
int ILLlib_get_slack (lpinfo *lp, ILLlp_cache *C, EGlpNum_t *slack)
int ILLlib_get_x (lpinfo *lp, ILLlp_cache *C, EGlpNum_t *x)
int ILLlib_getbasis (lpinfo *lp, char *cstat, char *rstat)
int ILLlib_getbnd (lpinfo *lp, int indx, int lu, EGlpNum_t *bnd)
int ILLlib_getbnds (lpinfo *lp, EGlpNum_t *lower, EGlpNum_t *upper)
int ILLlib_getbnds_list (lpinfo *lp, int num, int *collist, EGlpNum_t *lower, EGlpNum_t *upper)
int ILLlib_getcoef (lpinfo *lp, int rowindex, int colindex, EGlpNum_t *coef)
int ILLlib_getcols (lpinfo *lp, int num, int *collist, int **colcnt, int **colbeg, int **colind, EGlpNum_t **colval, EGlpNum_t **obj, EGlpNum_t **lower, EGlpNum_t **upper, char ***names)
int ILLlib_getintflags (lpinfo *lp, int *intflags)
int ILLlib_getobj (lpinfo *lp, EGlpNum_t *obj)
int ILLlib_getobj_list (lpinfo *lp, int num, int *collist, EGlpNum_t *obj)
int ILLlib_getrhs (lpinfo *lp, EGlpNum_t *rhs)
int ILLlib_getrownorms (lpinfo *lp, price_info *pinf, EGlpNum_t *rownorms)
int ILLlib_getrows (lpinfo *lp, int num, int *rowlist, int **rowcnt, int **rowbeg, int **rowind, EGlpNum_t **rowval, EGlpNum_t **rhs, char **sense, EGlpNum_t **range, char ***names)
int ILLlib_getsenses (lpinfo *lp, char *senses)
int ILLlib_iter (lpinfo *lp)
int ILLlib_loadbasis (ILLlp_basis *B, int nstruct, int nrows, char *cstat, char *rstat)
int ILLlib_loadrownorms (lpinfo *lp, price_info *pinf, EGlpNum_t *rownorms)
int ILLlib_newcol (lpinfo *lp, ILLlp_basis *B, const EGlpNum_t obj, const EGlpNum_t lower, const EGlpNum_t upper, const char *name, int factorok)
int ILLlib_newcols (lpinfo *lp, ILLlp_basis *B, int num, EGlpNum_t *obj, EGlpNum_t *lower, EGlpNum_t *upper, const char **names, int factorok)
int ILLlib_newrow (lpinfo *lp, ILLlp_basis *B, const EGlpNum_t rhs, int sense, const EGlpNum_t range, const char *name)
int ILLlib_newrows (lpinfo *lp, ILLlp_basis *B, int num, const EGlpNum_t *rhs, char *sense, const EGlpNum_t *range, const char **names)
int ILLlib_objval (lpinfo *lp, ILLlp_cache *C, EGlpNum_t *val)
int ILLlib_optimize (lpinfo *lp, ILLlp_basis *B, price_info *pinf, int algo, int *status, int simplex_display, itcnt_t *itcnt)
int ILLlib_print_x (EGioFile_t *fd, lpinfo *lp, ILLlp_cache *C, EGlpNum_t *x, int nonZerosOnly)
int ILLlib_readbasis (lpinfo *lp, ILLlp_basis *B, const char *fname)
int ILLlib_recompute_rownorms (lpinfo *lp, price_info *pinf)
int ILLlib_rowindex (lpinfo *lp, const char *name, int *rowindex)
int ILLlib_rownames (lpinfo *lp, char **rownames)
int ILLlib_solution (lpinfo *lp, ILLlp_cache *C, EGlpNum_t *val, EGlpNum_t *x, EGlpNum_t *pi, EGlpNum_t *slack, EGlpNum_t *rc)
int ILLlib_strongbranch (lpinfo *lp, price_info *pinf, int *candidatelist, int ncand, EGlpNum_t *xlist, EGlpNum_t *downpen, EGlpNum_t *uppen, int iterations, EGlpNum_t objbound, itcnt_t *itcnt)
int ILLlib_tableau (lpinfo *lp, int row, EGlpNum_t *binv, EGlpNum_t *tabrow)
int ILLlib_writebasis (lpinfo *lp, ILLlp_basis *B, const char *fname)
int ILLwrite_lp_file (ILLlpdata *lp, EGioFile_t *out, qserror_collector *c)
static int matrix_addcoef (lpinfo *lp, ILLmatrix *A, int row, int col, EGlpNum_t val)
static int matrix_addcol (ILLmatrix *A, int colcnt, int *colind, EGlpNum_t *colval)
static int matrix_addrow (ILLmatrix *A, int rowcnt, int *rowind, const EGlpNum_t *rowval)
static int matrix_addrow_end (ILLmatrix *A, int row, int rowcnt, int *rowind, const EGlpNum_t *rowval)
static int matrix_getcoef (ILLmatrix *A, int row, int col, EGlpNum_t *val)
static int reset_colindex (lpinfo *lp)
static int reset_rowindex (lpinfo *lp)


Define Documentation

#define EXTRA_COLS   (100)

Definition at line 881 of file lib.c.

Referenced by ILLlib_addcol().

#define EXTRA_MAT   (1000)

Definition at line 882 of file lib.c.

Referenced by matrix_addrow_end().

#define EXTRA_ROWS   (100)

Definition at line 880 of file lib.c.

Referenced by ILLlib_addrow().

#define PRINT_TOL   PFEAS_TOLER

Definition at line 4153 of file lib.c.

Referenced by ILLlib_print_x().

#define READ_BASIS_LL   2

Definition at line 3716 of file lib.c.

Referenced by ILLlib_readbasis().

#define READ_BASIS_UL   3

Definition at line 3717 of file lib.c.

Referenced by ILLlib_readbasis().

#define READ_BASIS_XL   0

Definition at line 3714 of file lib.c.

Referenced by ILLlib_readbasis().

#define READ_BASIS_XU   1

Definition at line 3715 of file lib.c.

Referenced by ILLlib_readbasis().


Function Documentation

static void check_pinf ( price_info pinf,
int *  it_exists 
) [static]

Definition at line 4259 of file lib.c.

References price_info::dI_price, price_info::dII_price, price_info::dsinfo, d_steep_info::norms, and QS_PRICE_DSTEEP.

Referenced by ILLlib_getrownorms(), and ILLlib_strongbranch().

static int delcols_work ( lpinfo lp,
char *  colmark 
)

Definition at line 1738 of file lib.c.

References ILLlpdata::A, ILLlpdata::colnames, ILLlpdata::coltab, ILL_IFFREE, ILL_SAFE_MALLOC, ILLsymboltab_delete(), ILLlpdata::intmarker, ILLlpdata::lower, ILLmatrix::matbeg, ILLmatrix::matcnt, ILLmatrix::matcols, ILLmatrix::matind, ILLmatrix::matrows, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::obj, ILLlpdata::rowmap, ILLlpdata::structmap, and ILLlpdata::upper.

Here is the call graph for this function:

int ILLlib_addcol ( lpinfo lp,
ILLlp_basis B,
int  cnt,
int *  ind,
EGlpNum_t *  val,
const EGlpNum_t  obj,
const EGlpNum_t  lower,
const EGlpNum_t  upper,
const char *  name,
int  factorok 
)

Definition at line 2098 of file lib.c.

References ILLlpdata::A, lpinfo::basisid, ILLlpdata::colnames, ILLlp_basis::colnorms, ILLlpdata::colsize, ILLlpdata::coltab, ILLlp_basis::cstat, EXTRA_COLS, ILL_CLEANUP, ILL_FAILfalse, ILL_FAILtrue, ILL_IFFREE, ILL_MAXDOUBLE, ILL_MINDOUBLE, ILL_namebufsize, ILL_UTIL_STR, ILLlib_findName(), ILLlp_rows_clear(), ILLlp_sinfo_free(), ILLsymboltab_register(), ILLlpdata::intmarker, ILLlpdata::lower, matrix_addcol(), lpinfo::nbaz, ILLlpdata::ncols, ILLlpdata::nstruct, NULL, ILLlpdata::nzcount, lpinfo::O, ILLlpdata::obj, QS_COL_BSTAT_FREE, QS_COL_BSTAT_LOWER, QS_COL_BSTAT_UPPER, ILLlpdata::rA, ILLlpdata::sinfo, STAT_LOWER, STAT_UPPER, STAT_ZERO, ILLlpdata::structmap, ILLlpdata::structsize, ILLlpdata::upper, lpinfo::vindex, and lpinfo::vstat.

Referenced by ILLlib_addcols(), ILLlib_newcol(), QSadd_col(), and QScopy_prob().

Here is the call graph for this function:

int ILLlib_addcols ( lpinfo lp,
ILLlp_basis B,
int  num,
int *  cmatcnt,
int *  cmatbeg,
int *  cmatind,
EGlpNum_t *  cmatval,
EGlpNum_t *  obj,
EGlpNum_t *  lower,
EGlpNum_t *  upper,
const char **  names,
int  factorok 
)

Definition at line 2059 of file lib.c.

References ILLlib_addcol().

Referenced by ILLlib_newcols(), QSadd_cols(), and QSload_prob().

Here is the call graph for this function:

int ILLlib_addrow ( lpinfo lp,
ILLlp_basis B,
int  cnt,
int *  ind,
const EGlpNum_t *  val,
const EGlpNum_t  rhs,
int  sense,
const EGlpNum_t  range,
const char *  name 
)

Definition at line 1145 of file lib.c.

References ILLlpdata::A, EXTRA_ROWS, ILL_CLEANUP, ILL_IFFREE, ILL_namebufsize, ILLlp_rows_clear(), ILLlp_sinfo_free(), ILLlpdata::ncols, ILLlpdata::nrows, lpinfo::O, ILLlpdata::rA, ILLlpdata::rangeval, ILLlpdata::rhs, ILLlpdata::rowmap, ILLlpdata::rownames, ILLlpdata::rowsize, ILLlpdata::sense, and ILLlpdata::sinfo.

Referenced by ILLlib_newrow().

Here is the call graph for this function:

int ILLlib_addrows ( lpinfo lp,
ILLlp_basis B,
int  num,
int *  rmatcnt,
int *  rmatbeg,
int *  rmatind,
const EGlpNum_t *  rmatval,
const EGlpNum_t *  rhs,
char *  sense,
const EGlpNum_t *  range,
const char **  names,
int *  factorok 
)

Definition at line 941 of file lib.c.

References ILLlpdata::A, lpinfo::baz, ILLlp_basis::colnorms, ILL_IFFREE, ILL_SAFE_MALLOC, ILLprice_get_new_rownorms(), ILLmatrix::matbeg, lpinfo::matbeg, ILLmatrix::matcnt, lpinfo::matcnt, ILLmatrix::matind, lpinfo::matind, ILLmatrix::matval, lpinfo::matval, ILLlpdata::ncols, lpinfo::ncols, ILLlpdata::nrows, lpinfo::nrows, ILLlpdata::nstruct, lpinfo::O, ILLlp_basis::rownorms, ILLlp_basis::rownorms_size, and ILLlpdata::structmap.

Referenced by ILLlib_newrows(), QSadd_ranged_rows(), and QSadd_rows().

Here is the call graph for this function:

int ILLlib_basis_order ( lpinfo lp,
int *  header 
)

Definition at line 497 of file lib.c.

References lpinfo::baz, ILL_IFFREE, ILL_SAFE_MALLOC, ILLlpdata::ncols, ILLlpdata::nrows, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::rowmap, and ILLlpdata::structmap.

Referenced by QSget_basis_order().

int ILLlib_cache_solution ( lpinfo lp,
ILLlp_cache C 
)

Definition at line 242 of file lib.c.

References ILL_CLEANUP, ILLlib_solution(), ILLlpdata::nrows, ILLlp_cache::nrows, ILLlpdata::nstruct, ILLlp_cache::nstruct, lpinfo::O, ILLlp_cache::pi, ILLlp_cache::rc, ILLlp_cache::slack, ILLlp_cache::val, and ILLlp_cache::x.

Referenced by grab_cache().

Here is the call graph for this function:

int ILLlib_chgbnd ( lpinfo lp,
int  indx,
int  lu,
const EGlpNum_t  bnd 
)

Definition at line 532 of file lib.c.

References ILL_CLEANUP, ILL_IFFREE, ILLlp_sinfo_free(), ILLlpdata::lower, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::sinfo, ILLlpdata::structmap, and ILLlpdata::upper.

Referenced by child_work(), fix_variables(), ILLlib_chgbnds(), ILLlib_strongbranch(), plunge(), plunge_work(), QSchange_bound(), and round_variables().

Here is the call graph for this function:

int ILLlib_chgbnds ( lpinfo lp,
int  cnt,
int *  indx,
char *  lu,
const EGlpNum_t *  bnd 
)

Definition at line 586 of file lib.c.

References ILL_CLEANUP, and ILLlib_chgbnd().

Referenced by process_bfs_bbnode(), and QSchange_bounds().

Here is the call graph for this function:

int ILLlib_chgcoef ( lpinfo lp,
int  rowindex,
int  colindex,
EGlpNum_t  coef 
)

Definition at line 1860 of file lib.c.

References ILLlpdata::A, ILL_CLEANUP, ILL_IFFREE, ILLlp_rows_clear(), ILLlp_sinfo_free(), matrix_addcoef(), ILLlpdata::nrows, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::rA, ILLlpdata::sinfo, and ILLlpdata::structmap.

Referenced by QSchange_coef().

Here is the call graph for this function:

int ILLlib_chgobj ( lpinfo lp,
int  indx,
EGlpNum_t  coef 
)

Definition at line 3180 of file lib.c.

References ILL_CLEANUP, ILL_IFFREE, ILLlp_sinfo_free(), ILLlpdata::nstruct, lpinfo::O, ILLlpdata::obj, ILLlpdata::sinfo, and ILLlpdata::structmap.

Referenced by QSchange_objcoef().

Here is the call graph for this function:

int ILLlib_chgrange ( lpinfo lp,
int  indx,
EGlpNum_t  coef 
)

Definition at line 3244 of file lib.c.

References ILL_CLEANUP, ILL_IFFREE, ILLlp_sinfo_free(), ILLlpdata::nrows, lpinfo::O, ILLlpdata::rangeval, ILLlpdata::rowsize, ILLlpdata::sense, and ILLlpdata::sinfo.

Referenced by QSchange_range().

Here is the call graph for this function:

int ILLlib_chgrhs ( lpinfo lp,
int  indx,
EGlpNum_t  coef 
)

Definition at line 3298 of file lib.c.

References ILL_CLEANUP, ILL_IFFREE, ILLlp_sinfo_free(), ILLlpdata::nrows, lpinfo::O, ILLlpdata::rhs, and ILLlpdata::sinfo.

Referenced by QSchange_rhscoef().

Here is the call graph for this function:

int ILLlib_chgsense ( lpinfo lp,
int  num,
int *  rowlist,
char *  sense 
)

Definition at line 1913 of file lib.c.

References ILLlpdata::A, ILL_CLEANUP, ILL_MAXDOUBLE, ILLlpdata::lower, ILLmatrix::matbeg, ILLmatrix::matcnt, ILLmatrix::matval, lpinfo::O, ILLlpdata::rowmap, ILLlpdata::sense, and ILLlpdata::upper.

Referenced by QSchange_senses().

int ILLlib_colindex ( lpinfo lp,
const char *  name,
int *  colindex 
)

Definition at line 3522 of file lib.c.

References ILLlpdata::coltab, ILL_CLEANUP, ILLsymboltab_getindex(), lpinfo::O, and reset_colindex().

Referenced by ILLlib_readbasis(), and QSget_column_index().

Here is the call graph for this function:

int ILLlib_colnames ( lpinfo lp,
char **  colnames 
)

Definition at line 3428 of file lib.c.

References ILLlpdata::colnames, ILL_CLEANUP, ILL_IFFREE, ILL_SAFE_MALLOC, ILLlpdata::nstruct, and lpinfo::O.

Referenced by QSget_colnames().

int ILLlib_delcols ( lpinfo lp,
ILLlp_basis B,
int  num,
int *  dellist,
int *  basis_ok 
)

Definition at line 1597 of file lib.c.

References ILLlpdata::A, ILLlp_basis::colnorms, ILLlp_basis::cstat, ILL_CLEANUP, ILL_IFFREE, ILL_SAFE_MALLOC, ILLlp_rows_clear(), ILLmatrix::matcols, ILLlpdata::nstruct, ILLlp_basis::nstruct, lpinfo::O, QS_COL_BSTAT_BASIC, ILLlpdata::rA, and ILLlpdata::structmap.

Referenced by QSdelete_cols().

Here is the call graph for this function:

int ILLlib_delrows ( lpinfo lp,
ILLlp_basis B,
ILLlp_cache C,
int  num,
int *  dellist,
int *  basis_ok,
int *  cache_ok 
)

Definition at line 1329 of file lib.c.

References ILLlpdata::A, DFEAS_TOLER, ILL_CLEANUP, ILL_IFFREE, ILL_SAFE_MALLOC, ILLlp_rows_clear(), ILLmatrix::matbeg, ILLmatrix::matcnt, ILLmatrix::matcols, ILLmatrix::matind, ILLmatrix::matrows, ILLmatrix::matval, ILLlpdata::nstruct, lpinfo::O, ILLlp_cache::pi, QS_ROW_BSTAT_LOWER, QS_ROW_BSTAT_UPPER, ILLlpdata::rA, and ILLlp_basis::rstat.

Referenced by QSdelete_rows().

Here is the call graph for this function:

int ILLlib_findName ( ILLlpdata qslp,
int  forRow,
const char *  name,
int  id,
char  buf[ILL_namebufsize] 
)

Definition at line 4201 of file lib.c.

References ILLlpdata::coltab, ILLsymboltab_create(), ILLsymboltab_lookup(), ILLsymboltab_uname(), ILLsymboltab_unique_name(), NULL, ILLlpdata::rowtab, and ILLsymboltab::tablesize.

Referenced by get_row_col_name(), and ILLlib_addcol().

Here is the call graph for this function:

int ILLlib_get_slack ( lpinfo lp,
ILLlp_cache C,
EGlpNum_t *  slack 
)

Definition at line 403 of file lib.c.

References ILLlib_solution().

Referenced by QSget_slack_array().

Here is the call graph for this function:

int ILLlib_get_x ( lpinfo lp,
ILLlp_cache C,
EGlpNum_t *  x 
)

Definition at line 388 of file lib.c.

References ILLlib_solution().

Referenced by ILLlib_print_x(), ILLlib_strongbranch(), plunge_work(), and QSget_x_array().

Here is the call graph for this function:

int ILLlib_getbasis ( lpinfo lp,
char *  cstat,
char *  rstat 
)

Definition at line 3582 of file lib.c.

References lpinfo::basisid, ILL_CLEANUP, ILLlpdata::nrows, ILLlpdata::nstruct, lpinfo::O, QS_COL_BSTAT_BASIC, QS_COL_BSTAT_FREE, QS_COL_BSTAT_LOWER, QS_COL_BSTAT_UPPER, STAT_BASIC, STAT_LOWER, STAT_UPPER, STAT_ZERO, ILLlpdata::structmap, and lpinfo::vstat.

Referenced by child_work(), grab_basis(), ILLlib_strongbranch(), ILLlib_writebasis(), and ILLmip_bfs().

int ILLlib_getbnd ( lpinfo lp,
int  indx,
int  lu,
EGlpNum_t *  bnd 
)

Definition at line 608 of file lib.c.

References ILL_CLEANUP, ILLlpdata::lower, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::structmap, and ILLlpdata::upper.

Referenced by child_work(), ILLlib_strongbranch(), and QSget_bound().

int ILLlib_getbnds ( lpinfo lp,
EGlpNum_t *  lower,
EGlpNum_t *  upper 
)

Definition at line 690 of file lib.c.

References ILL_CLEANUP, ILLlpdata::lower, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::structmap, and ILLlpdata::upper.

Referenced by QSget_bounds().

int ILLlib_getbnds_list ( lpinfo lp,
int  num,
int *  collist,
EGlpNum_t *  lower,
EGlpNum_t *  upper 
)

Definition at line 652 of file lib.c.

References ILL_CLEANUP, ILLlpdata::lower, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::structmap, and ILLlpdata::upper.

Referenced by QSget_bounds_list().

int ILLlib_getcoef ( lpinfo lp,
int  rowindex,
int  colindex,
EGlpNum_t *  coef 
)

Definition at line 1822 of file lib.c.

References ILLlpdata::A, ILL_CLEANUP, matrix_getcoef(), ILLlpdata::nrows, ILLlpdata::nstruct, lpinfo::O, and ILLlpdata::structmap.

Referenced by QSget_coef().

Here is the call graph for this function:

int ILLlib_getcols ( lpinfo lp,
int  num,
int *  collist,
int **  colcnt,
int **  colbeg,
int **  colind,
EGlpNum_t **  colval,
EGlpNum_t **  obj,
EGlpNum_t **  lower,
EGlpNum_t **  upper,
char ***  names 
)

Definition at line 2910 of file lib.c.

References ILLlpdata::A, ILLlpdata::colnames, ILL_CLEANUP, ILL_SAFE_MALLOC, ILLlpdata::lower, ILLmatrix::matbeg, ILLmatrix::matcnt, ILLmatrix::matind, ILLmatrix::matval, lpinfo::O, ILLlpdata::obj, ILLlpdata::structmap, and ILLlpdata::upper.

Referenced by QSget_columns(), and QSget_columns_list().

int ILLlib_getintflags ( lpinfo lp,
int *  intflags 
)

Definition at line 3384 of file lib.c.

References ILL_CLEANUP, ILLlpdata::intmarker, ILLlpdata::nstruct, and lpinfo::O.

Referenced by QSget_intcount(), and QSget_intflags().

int ILLlib_getobj ( lpinfo lp,
EGlpNum_t *  obj 
)

Definition at line 3151 of file lib.c.

References ILL_CLEANUP, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::obj, and ILLlpdata::structmap.

Referenced by QSget_obj().

int ILLlib_getobj_list ( lpinfo lp,
int  num,
int *  collist,
EGlpNum_t *  obj 
)

Definition at line 3111 of file lib.c.

References ILL_CLEANUP, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::obj, and ILLlpdata::structmap.

Referenced by QSget_obj_list().

int ILLlib_getrhs ( lpinfo lp,
EGlpNum_t *  rhs 
)

Definition at line 3216 of file lib.c.

References ILL_CLEANUP, ILLlpdata::nrows, lpinfo::O, and ILLlpdata::rhs.

Referenced by QSget_rhs().

int ILLlib_getrownorms ( lpinfo lp,
price_info pinf,
EGlpNum_t *  rownorms 
)

Definition at line 4057 of file lib.c.

References check_pinf(), price_info::dsinfo, ILL_CLEANUP, d_steep_info::norms, ILLlpdata::nrows, ILLlpdata::nstruct, lpinfo::O, STAT_BASIC, ILLlpdata::structmap, lpinfo::vindex, and lpinfo::vstat.

Referenced by child_work(), grab_basis(), ILLlib_strongbranch(), and ILLmip_bfs().

Here is the call graph for this function:

int ILLlib_getrows ( lpinfo lp,
int  num,
int *  rowlist,
int **  rowcnt,
int **  rowbeg,
int **  rowind,
EGlpNum_t **  rowval,
EGlpNum_t **  rhs,
char **  sense,
EGlpNum_t **  range,
char ***  names 
)

Definition at line 2700 of file lib.c.

References ILL_CLEANUP, ILL_SAFE_MALLOC, ILLlp_rows_init(), lpinfo::O, ILLlpdata::rangeval, ILLlpdata::rhs, ILLlp_rows::rowbeg, ILLlp_rows::rowcnt, ILLlp_rows::rowind, and ILLlp_rows::rowval.

Referenced by QSget_ranged_rows(), QSget_ranged_rows_list(), QSget_rows(), and QSget_rows_list().

Here is the call graph for this function:

int ILLlib_getsenses ( lpinfo lp,
char *  senses 
)

Definition at line 1975 of file lib.c.

References ILL_CLEANUP, ILLlpdata::nrows, lpinfo::O, and ILLlpdata::sense.

Referenced by QSget_senses().

int ILLlib_iter ( lpinfo lp  ) 

Definition at line 4138 of file lib.c.

References lpinfo::cnts, count_struct::dI_iter, count_struct::dII_iter, count_struct::pI_iter, and count_struct::pII_iter.

Referenced by child_work(), and startup_mip().

int ILLlib_loadbasis ( ILLlp_basis B,
int  nstruct,
int  nrows,
char *  cstat,
char *  rstat 
)

Definition at line 3679 of file lib.c.

References ILLlp_basis::cstat, ILLlp_basis_alloc(), ILLlp_basis_init(), and ILLlp_basis::rstat.

Here is the call graph for this function:

int ILLlib_loadrownorms ( lpinfo lp,
price_info pinf,
EGlpNum_t *  rownorms 
)

Definition at line 4109 of file lib.c.

References ILLprice_load_rownorms().

Referenced by QSadd_ranged_rows(), and QSadd_rows().

Here is the call graph for this function:

int ILLlib_newcol ( lpinfo lp,
ILLlp_basis B,
const EGlpNum_t  obj,
const EGlpNum_t  lower,
const EGlpNum_t  upper,
const char *  name,
int  factorok 
)

Definition at line 2002 of file lib.c.

References ILLlib_addcol().

Referenced by QSnew_col().

Here is the call graph for this function:

int ILLlib_newcols ( lpinfo lp,
ILLlp_basis B,
int  num,
EGlpNum_t *  obj,
EGlpNum_t *  lower,
EGlpNum_t *  upper,
const char **  names,
int  factorok 
)

Definition at line 2021 of file lib.c.

References ILL_IFFREE, ILL_SAFE_MALLOC, and ILLlib_addcols().

Here is the call graph for this function:

int ILLlib_newrow ( lpinfo lp,
ILLlp_basis B,
const EGlpNum_t  rhs,
int  sense,
const EGlpNum_t  range,
const char *  name 
)

Definition at line 884 of file lib.c.

References ILLlib_addrow().

Referenced by QSnew_row().

Here is the call graph for this function:

int ILLlib_newrows ( lpinfo lp,
ILLlp_basis B,
int  num,
const EGlpNum_t *  rhs,
char *  sense,
const EGlpNum_t *  range,
const char **  names 
)

Definition at line 902 of file lib.c.

References ILL_CLEANUP, ILL_IFFREE, ILL_SAFE_MALLOC, and ILLlib_addrows().

Referenced by QScopy_prob(), and QSload_prob().

Here is the call graph for this function:

int ILLlib_objval ( lpinfo lp,
ILLlp_cache C,
EGlpNum_t *  val 
)

Definition at line 419 of file lib.c.

References lpinfo::basisstat, lpinfo::dobjval, ILLlib_solution(), and lp_status_info::optimal.

Referenced by child_work(), fix_variables(), plunge_work(), QSget_objval(), and startup_mip().

Here is the call graph for this function:

int ILLlib_optimize ( lpinfo lp,
ILLlp_basis B,
price_info pinf,
int  algo,
int *  status,
int  simplex_display,
itcnt_t itcnt 
)

Definition at line 170 of file lib.c.

References __QS_SB_VERB, E_SIMPLEX_ERROR, ILLlib_writebasis(), ILLsimplex(), ILLwrite_lp(), NULL, lpinfo::O, QS_LP_CHANGE_PREC, and QS_LP_UNSOLVED.

Referenced by child_work(), ILLlib_strongbranch(), opt_work(), plunge(), plunge_work(), and startup_mip().

Here is the call graph for this function:

int ILLlib_print_x ( EGioFile_t *  fd,
lpinfo lp,
ILLlp_cache C,
EGlpNum_t *  x,
int  nonZerosOnly 
)

Definition at line 4155 of file lib.c.

References ILLlpdata::colnames, ILL_FAILfalse, ILLlib_get_x(), lpinfo::ncols, ILLlpdata::nstruct, NULL, lpinfo::O, PRINT_TOL, and strtmp.

Referenced by ILLeditor(), and solver_main().

Here is the call graph for this function:

int ILLlib_readbasis ( lpinfo lp,
ILLlp_basis B,
const char *  fname 
)

Definition at line 3719 of file lib.c.

References ILLlp_basis::cstat, ILL_CLEANUP, ILL_MAXDOUBLE, ILL_MINDOUBLE, ILL_MPS_ENDATA, ILL_MPS_NAME, ILL_SAFE_MALLOC, ILL_UTIL_STR, ILLlib_colindex(), ILLlib_rowindex(), ILLline_reader_new(), ILLlp_basis_init(), ILLmps_empty_field(), ILLmps_empty_key(), ILLmps_error(), ILLmps_next_field(), ILLmps_next_line(), ILLmps_section_name, ILLmps_state_init(), ILLmps_warn(), ILLutil_index(), ILLlpdata::lower, ILLlp_basis::nrows, ILLlpdata::nrows, ILLlp_basis::nstruct, ILLlpdata::nstruct, NULL, lpinfo::O, ILLlpdata::probname, QS_COL_BSTAT_BASIC, QS_COL_BSTAT_FREE, QS_COL_BSTAT_LOWER, QS_COL_BSTAT_UPPER, QS_ROW_BSTAT_BASIC, QS_ROW_BSTAT_LOWER, QS_ROW_BSTAT_UPPER, READ_BASIS_LL, READ_BASIS_UL, READ_BASIS_XL, READ_BASIS_XU, ILLlp_basis::rstat, ILLlpdata::structmap, and ILLlpdata::upper.

Referenced by QSread_and_load_basis(), and QSread_basis().

Here is the call graph for this function:

int ILLlib_recompute_rownorms ( lpinfo lp,
price_info pinf 
)

Definition at line 4124 of file lib.c.

References DUAL_PHASEII, and ILLprice_build_pricing_info().

Referenced by QScompute_row_norms().

Here is the call graph for this function:

int ILLlib_rowindex ( lpinfo lp,
const char *  name,
int *  rowindex 
)

Definition at line 3552 of file lib.c.

References ILL_CLEANUP, ILLsymboltab_getindex(), lpinfo::O, reset_rowindex(), and ILLlpdata::rowtab.

Referenced by ILLlib_readbasis(), and QSget_row_index().

Here is the call graph for this function:

int ILLlib_rownames ( lpinfo lp,
char **  rownames 
)

Definition at line 3332 of file lib.c.

References ILL_CLEANUP, ILL_IFFREE, ILL_SAFE_MALLOC, ILLlpdata::nrows, lpinfo::O, and ILLlpdata::rownames.

Referenced by QSget_rownames().

int ILLlib_solution ( lpinfo lp,
ILLlp_cache C,
EGlpNum_t *  val,
EGlpNum_t *  x,
EGlpNum_t *  pi,
EGlpNum_t *  slack,
EGlpNum_t *  rc 
)

Definition at line 265 of file lib.c.

References ILL_CLEANUP, ILL_MAX, ILLsimplex_solution(), ILLlpdata::ncols, ILLlp_cache::nrows, ILLlpdata::nrows, ILLlp_cache::nstruct, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::objsense, ILLlp_cache::pi, ILLlp_cache::rc, ILLlpdata::rowmap, ILLlp_cache::slack, ILLlpdata::structmap, ILLlp_cache::val, and ILLlp_cache::x.

Referenced by fix_variables(), ILLlib_cache_solution(), ILLlib_get_slack(), ILLlib_get_x(), ILLlib_objval(), QSget_pi_array(), QSget_rc_array(), and QSget_solution().

Here is the call graph for this function:

int ILLlib_strongbranch ( lpinfo lp,
price_info pinf,
int *  candidatelist,
int  ncand,
EGlpNum_t *  xlist,
EGlpNum_t *  downpen,
EGlpNum_t *  uppen,
int  iterations,
EGlpNum_t  objbound,
itcnt_t itcnt 
)

Definition at line 724 of file lib.c.

References lpinfo::basisid, check_pinf(), ILLlp_basis::cstat, price_info::dI_price, price_info::dII_price, lpinfo::dobjval, DUAL_SIMPLEX, price_info::htrigger, ILL_MAX, ILLlib_chgbnd(), ILLlib_get_x(), ILLlib_getbasis(), ILLlib_getbnd(), ILLlib_getrownorms(), ILLlib_optimize(), ILLlp_basis_alloc(), ILLlp_basis_free(), ILLlp_basis_init(), ILLprice_free_pricing_info(), ILLprice_init_pricing_info(), lpinfo::maxiter, ILLlpdata::nrows, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::objsense, QS_PRICE_DSTEEP, ILLlp_basis::rownorms, ILLlp_basis::rstat, and t.

Referenced by QSopt_strongbranch().

Here is the call graph for this function:

int ILLlib_tableau ( lpinfo lp,
int  row,
EGlpNum_t *  binv,
EGlpNum_t *  tabrow 
)

Definition at line 441 of file lib.c.

References ILL_CLEANUP, ILLbasis_tableau_row(), ILLlpdata::ncols, ILLlpdata::nrows, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::rowmap, and ILLlpdata::structmap.

Referenced by QSget_binv_row(), and QSget_tableau_row().

Here is the call graph for this function:

int ILLlib_writebasis ( lpinfo lp,
ILLlp_basis B,
const char *  fname 
)

Definition at line 3941 of file lib.c.

References lpinfo::basisid, ILLlpdata::colnames, ILLlp_basis::cstat, ILL_CLEANUP, ILL_IFFREE, ILL_SAFE_MALLOC, ILLlib_getbasis(), ILLlpdata::nrows, ILLlpdata::nstruct, lpinfo::O, ILLlpdata::probname, QS_COL_BSTAT_BASIC, QS_COL_BSTAT_UPPER, QS_ROW_BSTAT_BASIC, QS_ROW_BSTAT_LOWER, ILLlpdata::rownames, and ILLlp_basis::rstat.

Referenced by ILLbasis_update(), ILLlib_optimize(), and QSwrite_basis().

Here is the call graph for this function:

int ILLwrite_lp_file ( ILLlpdata lp,
EGioFile_t *  out,
qserror_collector c 
)

Definition at line 4244 of file lib.c.

References ILLstring_reporter_copy(), ILLstring_reporter_init(), ILLwrite_lp(), and ILLlpdata::reporter.

Referenced by ILLbasis_get_cinitial(), ILLbasis_get_initial(), and ILLbasis_update().

Here is the call graph for this function:

static int matrix_addcoef ( lpinfo lp,
ILLmatrix A,
int  row,
int  col,
EGlpNum_t  val 
)

Definition at line 2521 of file lib.c.

References ILL_CLEANUP, ILLmatrix::matbeg, ILLmatrix::matcnt, ILLmatrix::matcols, ILLmatrix::matfree, ILLmatrix::matind, matrix_addrow_end(), ILLmatrix::matrows, ILLmatrix::matsize, ILLmatrix::matval, ILLlpdata::nzcount, and lpinfo::O.

Referenced by ILLlib_chgcoef().

Here is the call graph for this function:

static int matrix_addcol ( ILLmatrix A,
int  colcnt,
int *  colind,
EGlpNum_t *  colval 
)

Definition at line 2619 of file lib.c.

References ILL_CLEANUP, and ILLmatrix::matrows.

Referenced by ILLlib_addcol().

static int matrix_addrow ( ILLmatrix A,
int  rowcnt,
int *  rowind,
const EGlpNum_t *  rowval 
) [static]

Definition at line 2332 of file lib.c.

References ILL_CLEANUP, and ILLmatrix::matcols.

static int matrix_addrow_end ( ILLmatrix A,
int  row,
int  rowcnt,
int *  rowind,
const EGlpNum_t *  rowval 
)

Definition at line 2427 of file lib.c.

References EXTRA_MAT, ILL_SAFE_MALLOC, ILLmatrix::matbeg, ILLmatrix::matcnt, ILLmatrix::matcols, ILLmatrix::matcolsize, ILLmatrix::matfree, ILLmatrix::matind, ILLmatrix::matsize, and ILLmatrix::matval.

Referenced by matrix_addcoef().

static int matrix_getcoef ( ILLmatrix A,
int  row,
int  col,
EGlpNum_t *  val 
) [static]

Definition at line 1700 of file lib.c.

References ILL_CLEANUP, ILLmatrix::matbeg, ILLmatrix::matcnt, ILLmatrix::matcols, ILLmatrix::matind, ILLmatrix::matrows, and ILLmatrix::matval.

Referenced by ILLlib_getcoef().

static int reset_colindex ( lpinfo lp  ) 

Definition at line 3482 of file lib.c.

References ILLlpdata::colnames, ILLlpdata::coltab, ILLsymboltab_index_ok(), ILLsymboltab_index_reset(), ILLlpdata::nstruct, and lpinfo::O.

Referenced by ILLlib_colindex().

Here is the call graph for this function:

static int reset_rowindex ( lpinfo lp  ) 

Definition at line 3502 of file lib.c.

References ILLsymboltab_index_ok(), ILLsymboltab_index_reset(), ILLlpdata::nrows, lpinfo::O, ILLlpdata::rownames, and ILLlpdata::rowtab.

Referenced by ILLlib_rowindex().

Here is the call graph for this function:


Generated on Thu Mar 29 09:41:19 2012 for QSopt_ex by  doxygen 1.4.7