simplex.c File Reference

#include "basicdefs.h"
#include "config.h"
#include "iqsutil.h"
#include "lpdata.h"
#include "lpdefs.h"
#include "stddefs.h"
#include "fct.h"
#include "ratio.h"
#include "price.h"
#include "basis.h"
#include "simplex.h"
#include "dstruct.h"
#include "qstruct.h"
#include "qsopt.h"
#include "lib.h"
#include "lp.h"

Include dependency graph for simplex.c:

Go to the source code of this file.

Defines

#define QSOPT_CURRENT_PRECICION

Functions

int build_internal_lpinfo (lpinfo *lp)
static int dual_phaseI_step (lpinfo *lp, price_info *pinf, svector *updz, svector *wz, iter_info *it)
static int dual_phaseII_step (lpinfo *lp, price_info *pinf, svector *updz, svector *wz, iter_info *it)
void free_internal_lpinfo (lpinfo *lp)
static void get_current_stat (lp_status_info *p, int algorithm, int *bstat)
int ILLsimplex (lpinfo *lp, int algorithm, ILLlp_basis *B, price_info *pinf, int *status, int sdisplay, itcnt_t *itcnt)
void ILLsimplex_free_lpinfo (lpinfo *lp)
int ILLsimplex_infcertificate (lpinfo *lp, EGlpNum_t *pi)
void ILLsimplex_init_lpinfo (lpinfo *lp)
void ILLsimplex_load_lpinfo (ILLlpdata *qslp, lpinfo *lp)
int ILLsimplex_pivotin (lpinfo *lp, price_info *pinf, int rcnt, int *rlist, int pivot_opt, int *basis_mod)
int ILLsimplex_retest_dsolution (lpinfo *lp, price_info *p, int phase, feas_info *fi)
int ILLsimplex_retest_psolution (lpinfo *lp, price_info *p, int phase, feas_info *fi)
void ILLsimplex_set_bound (lpinfo *lp, const EGlpNum_t *objbound, int sense)
int ILLsimplex_solution (lpinfo *lp, EGlpNum_t *xz, EGlpNum_t *piz, EGlpNum_t *dz, EGlpNum_t *objval)
void init_internal_lpinfo (lpinfo *lp)
static void init_lp_status_info (lp_status_info *ls)
static void init_simplex_tols (lpinfo *lp)
static void monitor_iter (lpinfo *lp, price_info *p, iter_info *it, int cphase)
static int primal_phaseI_step (lpinfo *lp, price_info *pinf, svector *updz, svector *wz, iter_info *it)
static int primal_phaseII_step (lpinfo *lp, price_info *pinf, svector *updz, svector *wz, iter_info *it)
static int report_value (lpinfo *lp, iter_info *it, const char *value_name, EGlpNum_t value)
static void restore_paraminfo (iter_info *it, price_info *pinf)
static void save_paraminfo (price_info *pinf, iter_info *it)
static int terminate_simplex (lpinfo *lp, int phase, iter_info *it)
static int test_progress (EGlpNum_t objval, EGlpNum_t prevobj)

Variables

static int TRACE = 0


Define Documentation

#define QSOPT_CURRENT_PRECICION

Definition at line 26 of file simplex.c.


Function Documentation

int build_internal_lpinfo ( lpinfo lp  ) 

Definition at line 318 of file simplex.c.

References ILLlp_sinfo::A, ILLlpdata::A, lpinfo::basisstat, lpinfo::bz, lpinfo::cz, ILL_MAX, init_lp_status_info(), ILLlp_sinfo::lower, ILLlpdata::lower, lpinfo::lz, lpinfo::matbeg, ILLmatrix::matbeg, lpinfo::matcnt, ILLmatrix::matcnt, lpinfo::matind, ILLmatrix::matind, lpinfo::matval, ILLmatrix::matval, lpinfo::ncols, ILLlp_sinfo::ncols, ILLlpdata::ncols, lpinfo::nnbasic, lpinfo::nrows, ILLlp_sinfo::nrows, ILLlpdata::nrows, lpinfo::O, ILLlp_sinfo::obj, ILLlpdata::obj, ILLlpdata::objsense, lpinfo::probstat, ILLlp_sinfo::rhs, ILLlpdata::rhs, ILLlpdata::sinfo, ILLlp_sinfo::upper, ILLlpdata::upper, and lpinfo::uz.

Referenced by ILLsimplex().

Here is the call graph for this function:

static int dual_phaseI_step ( lpinfo lp,
price_info pinf,
svector updz,
svector wz,
iter_info it 
)

Definition at line 2150 of file simplex.c.

References __QS_SB_VERB, iter_info::algorithm, CNT_DPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COMPLETE_PRICING, price_info::d_strategy, tol_struct::dfeas_tol, price_info::dI_price, lpinfo::dinfeas, price_res::dinfeas, feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, ratio_res::ecoeff, ratio_res::eindex, fct_test_dfeasible(), fct_test_pI_x(), fct_test_workvector(), lpinfo::final_phase, tol_struct::id_tol, ILL_CLEANUP, ILL_LP_SOLVED, ILLbasis_factor(), ILLbasis_update(), ILLfct_check_dfeasible(), ILLfct_compute_dpIy(), ILLfct_compute_dsteep_upv(), ILLfct_compute_dz(), ILLfct_compute_phaseI_xbz(), ILLfct_compute_piz(), ILLfct_compute_yz(), ILLfct_compute_zA(), ILLfct_compute_zz(), ILLfct_dual_adjust(), ILLfct_set_status_values(), ILLfct_test_pivot(), ILLfct_update_basis_info(), ILLfct_update_counts(), ILLfct_update_dfeas(), ILLfct_update_dpI_prices(), ILLfct_update_dz(), ILLfct_update_piz(), ILLprice_compute_primal_inf(), ILLprice_dual(), ILLprice_free_heap(), ILLprice_init_mpartial_price(), ILLprice_test_for_heap(), ILLprice_update_pricing_info(), ILLratio_dI_test(), ILLsimplex_retest_dsolution(), ratio_res::lbound, price_res::lindex, price_res::lvstat, monitor_iter(), MULTI_PART_PRICING, iter_info::n_pivot_fail, iter_info::n_restart, iter_info::newphase, iter_info::nextphase, iter_info::nextstep, iter_info::noprog, iter_info::nosolve, lpinfo::nrows, NULL, svector::nzcnt, PARAM_MAX_NOSOLVE, tol_struct::pfeas_tol, PHASEI, PHASEII, price_res::pinfeas, ratio_res::pivotval, iter_info::prevobj, PRICE_OPTIMAL, price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, feas_info::pstatus, QS_PRICE_DSTEEP, RATIO_BCHANGE, RATIO_FAILED, ratio_res::ratio_stat, iter_info::resumeid, ROW_PIVOT, ROW_PRICING, iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_FACTOR, SIMPLEX_MAX_PIVOT_FAIL, SIMPLEX_PHASE_NEW, SIMPLEX_PHASE_RECOMP, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_TERMINATE, iter_info::solstatus, test_dsteep_norms(), test_progress(), lpinfo::tol, feas_info::totinfeas, ratio_res::tz, VARTIFICIAL, VFREE, lpinfo::zA, and lpinfo::zz.

Referenced by ILLsimplex().

Here is the call graph for this function:

static int dual_phaseII_step ( lpinfo lp,
price_info pinf,
svector updz,
svector wz,
iter_info it 
)

Definition at line 2403 of file simplex.c.

References __QS_SB_VERB, iter_info::algorithm, lpinfo::baz, pI_uinfo::c_obj, CNT_DPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, ratio_res::coeffch, COMPLETE_PRICING, price_info::d_strategy, tol_struct::dfeas_tol, price_info::dII_price, price_res::dinfeas, lpinfo::dobjval, feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, DUAL_UNBOUNDED, ratio_res::ecoeff, ratio_res::eindex, fct_test_pII_pi_dz(), fct_test_pII_x(), fct_test_workvector(), lpinfo::final_phase, tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, ILLbasis_factor(), ILLbasis_update(), ILLfct_adjust_viol_coefs(), ILLfct_check_dfeasible(), ILLfct_check_pfeasible(), ILLfct_coef_shift(), ILLfct_compute_dobj(), ILLfct_compute_dpIIy(), ILLfct_compute_dsteep_upv(), ILLfct_compute_dz(), ILLfct_compute_piz(), ILLfct_compute_xbz(), ILLfct_compute_yz(), ILLfct_compute_zA(), ILLfct_compute_zz(), ILLfct_dual_adjust(), ILLfct_set_status_values(), ILLfct_test_pivot(), ILLfct_unroll_coef_change(), ILLfct_update_basis_info(), ILLfct_update_counts(), ILLfct_update_dIIfeas(), ILLfct_update_dpII_prices(), ILLfct_update_dz(), ILLfct_update_piz(), ILLprice_compute_primal_inf(), ILLprice_dual(), ILLprice_free_heap(), ILLprice_init_mpartial_price(), ILLprice_test_for_heap(), ILLprice_update_pricing_info(), ILLratio_longdII_test(), ILLsimplex_retest_dsolution(), lpinfo::infub_ix, tol_struct::ip_tol, ratio_res::lbound, price_res::lindex, price_res::lvstat, monitor_iter(), MULTI_PART_PRICING, iter_info::n_pivot_fail, iter_info::n_restart, lpinfo::nbaz, lpinfo::ncchange, iter_info::newphase, iter_info::nextphase, iter_info::nextstep, iter_info::noprog, iter_info::nosolve, lpinfo::nrows, NULL, svector::nzcnt, lpinfo::objval, PARAM_MAX_NOSOLVE, tol_struct::pfeas_tol, PHASEII, price_res::pinfeas, ratio_res::pivotval, iter_info::prevobj, PRICE_OPTIMAL, price_res::price_stat, iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, feas_info::pstatus, QS_LP_CHANGE_PREC, QS_PRICE_DSTEEP, QS_PRICE_PDEVEX, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, ratio_res::ratio_stat, RATIO_UNBOUNDED, iter_info::resumeid, ROW_PIVOT, ROW_PRICING, iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_FACTOR, SIMPLEX_MAX_PIVOT_FAIL, SIMPLEX_PHASE_NEW, SIMPLEX_PHASE_RECOMP, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_RESUME_UNSHIFT, SIMPLEX_TERMINATE, iter_info::solstatus, STAT_LOWER, STAT_ZERO, test_dsteep_norms(), test_progress(), lpinfo::tol, feas_info::totinfeas, ratio_res::tz, lpinfo::upd, VARTIFICIAL, VFREE, lpinfo::vstat, lpinfo::vtype, lpinfo::yjz, lpinfo::zA, and lpinfo::zz.

Referenced by ILLsimplex().

Here is the call graph for this function:

void free_internal_lpinfo ( lpinfo lp  ) 

Definition at line 238 of file simplex.c.

References lpinfo::bchanges, lpinfo::bfeas, bndinfo::cbound, lpinfo::cchanges, coefinfo::ccoef, lpinfo::cnts, lpinfo::cz, lpinfo::dfeas, tol_struct::dfeas_tol, lpinfo::dz, tol_struct::id_tol, ILL_IFFREE, ILLsvector_free(), tol_struct::ip_tol, lpinfo::iwork, pI_uinfo::ix, lpinfo::localrows, lpinfo::lz, bndinfo::next, coefinfo::next, bndinfo::pbound, coefinfo::pcoef, pI_uinfo::perm, tol_struct::pfeas_tol, lpinfo::pIdz, lpinfo::pIpiz, tol_struct::pivot_tol, lpinfo::pIxbz, lpinfo::piz, lpinfo::rowbeg, lpinfo::rowcnt, lpinfo::rowind, lpinfo::rowval, lpinfo::srhs, lpinfo::ssoln, tol_struct::szero_tol, pI_uinfo::t, lpinfo::tol, lpinfo::upd, lpinfo::uz, lpinfo::vclass, lpinfo::vtype, lpinfo::work, lpinfo::xbz, count_struct::y_ravg, lpinfo::yjz, count_struct::z_ravg, lpinfo::zA, count_struct::za_ravg, and lpinfo::zz.

Referenced by ILLsimplex(), and ILLsimplex_free_lpinfo().

Here is the call graph for this function:

static void get_current_stat ( lp_status_info p,
int  algorithm,
int *  bstat 
)

Definition at line 2803 of file simplex.c.

References DUAL_FEASIBLE, lp_status_info::dual_feasible, DUAL_INFEASIBLE, lp_status_info::dual_infeasible, DUAL_SIMPLEX, DUAL_UNBOUNDED, lp_status_info::dual_unbounded, NONOPTIMAL, OPTIMAL, lp_status_info::optimal, PRIMAL_FEASIBLE, lp_status_info::primal_feasible, PRIMAL_INFEASIBLE, lp_status_info::primal_infeasible, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, and lp_status_info::primal_unbounded.

Referenced by ILLsimplex().

int ILLsimplex ( lpinfo lp,
int  algorithm,
ILLlp_basis B,
price_info pinf,
int *  status,
int  sdisplay,
itcnt_t itcnt 
)

Definition at line 799 of file simplex.c.

References __QS_SB_VERB, iter_info::algorithm, lpinfo::basisid, lpinfo::basisstat, build_internal_lpinfo(), iter_info::chkobj, lpinfo::cnts, ILLlp_basis::colnorms, price_info::cur_price, iter_info::curtime, tol_struct::dfeas_tol, count_struct::dI_iter, itcnt_t::dI_iter, count_struct::dII_iter, itcnt_t::dII_iter, lpinfo::dinfeas, lpinfo::dobjval, price_info::dsinfo, feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, dual_phaseI_step(), DUAL_PHASEII, dual_phaseII_step(), DUAL_SIMPLEX, DUAL_UNBOUNDED, lp_status_info::dual_unbounded, lpinfo::fbasisid, free_internal_lpinfo(), get_current_stat(), ILL_BND_REACHED, ILL_CLEANUP, ILL_DPHASEI_ERROR, ILL_DPHASEII_ERROR, ILL_LP_ABORTED, ILL_LP_SOLVED, ILL_LP_UNSOLVED, ILL_MAX_ITER, ILL_MAX_TIME, ILL_PPHASEI_ERROR, ILL_PPHASEII_ERROR, ILLbasis_factor(), ILLbasis_get_cinitial(), ILLbasis_get_initial(), ILLbasis_load(), ILLfct_check_dfeasible(), ILLfct_check_pfeasible(), ILLfct_compute_dobj(), ILLfct_compute_dz(), ILLfct_compute_piz(), ILLfct_compute_pobj(), ILLfct_compute_xbz(), ILLfct_dual_adjust(), ILLfct_print_counts(), ILLfct_set_status_values(), ILLfct_set_variable_type(), ILLfct_unroll_bound_change(), ILLfct_unroll_coef_change(), ILLprice_build_pricing_info(), ILLprice_free_pricing_info(), ILLprice_get_price(), ILLprice_load_colnorms(), ILLprice_load_rownorms(), ILLsimplex_infcertificate(), ILLstring_report, ILLsvector_alloc(), ILLsvector_free(), ILLsvector_init(), ILLutil_zeit(), INFTY, init_internal_lpinfo(), init_lp_status_info(), iter_info::inner, iter_info::itercnt, lpinfo::matcnt, iter_info::n_pivot_fail, iter_info::n_restart, lpinfo::ncols, iter_info::newphase, iter_info::nextphase, iter_info::nextstep, p_devex_info::ninit, iter_info::noprog, p_steep_info::norms, d_steep_info::norms, iter_info::nosolve, lpinfo::nrows, ILLlpdata::nrows, NULL, lpinfo::O, OBJBND_TOLER, lpinfo::objbound, iter_info::objtol, lpinfo::objval, OPTIMAL, lp_status_info::optimal, PARAM_MAX_NOPROG, price_info::pdinfo, tol_struct::pfeas_tol, PHASEII, count_struct::pI_iter, itcnt_t::pI_iter, price_info::pI_price, count_struct::pII_iter, itcnt_t::pII_iter, lpinfo::pinfeas, lpinfo::pobjval, iter_info::prevobj, iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, lp_status_info::primal_infeasible, PRIMAL_OR_DUAL, PRIMAL_PHASEI, primal_phaseI_step(), PRIMAL_PHASEII, primal_phaseII_step(), PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, lp_status_info::primal_unbounded, ILLlpdata::probname, price_info::psinfo, feas_info::pstatus, QS_LP_ABORTED, QS_LP_CHANGE_PREC, QS_LP_INFEASIBLE, QS_LP_ITER_LIMIT, QS_LP_NUMERR, QS_LP_OBJ_LIMIT, QS_LP_OPTIMAL, QS_LP_TIME_LIMIT, QS_LP_UNBOUNDED, QS_LP_UNSOLVED, QS_PRICE_DDEVEX, QS_PRICE_PDEVEX, ILLlpdata::reporter, restore_paraminfo(), iter_info::resumeid, iter_info::rounds, ILLlp_basis::rownorms, save_paraminfo(), iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_MAX_RESTART, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_RESUME_UNSHIFT, iter_info::solstatus, lpinfo::starttime, terminate_simplex(), lpinfo::tol, itcnt_t::tot_iter, and feas_info::totinfeas.

Referenced by ILLlib_optimize().

Here is the call graph for this function:

void ILLsimplex_free_lpinfo ( lpinfo lp  ) 

Definition at line 105 of file simplex.c.

References lpinfo::cz, free_internal_lpinfo(), ILLbasis_free_basisinfo(), lpinfo::lz, and lpinfo::uz.

Referenced by QSfree_prob().

Here is the call graph for this function:

int ILLsimplex_infcertificate ( lpinfo lp,
EGlpNum_t *  pi 
)

Definition at line 651 of file simplex.c.

References lpinfo::basisstat, lpinfo::baz, svector::coef, DUAL_PHASEII, lp_status_info::dual_unbounded, lpinfo::final_phase, svector::indx, lpinfo::infub_ix, lpinfo::lz, NINFTY, lpinfo::nrows, NULL, svector::nzcnt, lpinfo::pIpiz, lp_status_info::primal_infeasible, PRIMAL_PHASEI, lpinfo::uz, lpinfo::xbz, and lpinfo::zz.

Referenced by ILLsimplex(), and QSget_infeas_array().

void ILLsimplex_init_lpinfo ( lpinfo lp  ) 

Definition at line 98 of file simplex.c.

References ILLbasis_init_basisinfo(), and init_internal_lpinfo().

Referenced by QScreate_prob().

Here is the call graph for this function:

void ILLsimplex_load_lpinfo ( ILLlpdata qslp,
lpinfo lp 
)

Definition at line 118 of file simplex.c.

References lpinfo::basisid, INFTY, lpinfo::iterskip, lpinfo::maxiter, lpinfo::maxtime, lpinfo::O, and lpinfo::objbound.

Referenced by QScreate_prob(), and QSget_prob().

int ILLsimplex_pivotin ( lpinfo lp,
price_info pinf,
int  rcnt,
int *  rlist,
int  pivot_opt,
int *  basis_mod 
)

Definition at line 2834 of file simplex.c.

References ratio_res::ecoeff, ILL_SAFE_MALLOC, ratio_res::lbound, NULL, lpinfo::O, ratio_res::pivotval, ILLlpdata::rowmap, SIMPLEX_PIVOTINROW, STAT_BASIC, feas_info::totinfeas, ratio_res::tz, and lpinfo::vstat.

Referenced by QSopt_pivotin_col(), and QSopt_pivotin_row().

int ILLsimplex_retest_dsolution ( lpinfo lp,
price_info p,
int  phase,
feas_info fi 
)

Definition at line 518 of file simplex.c.

References lpinfo::basisid, COMPLETE_PRICING, price_info::d_strategy, tol_struct::dfeas_tol, feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, lpinfo::fbasisid, tol_struct::id_tol, ILLbasis_refactor(), ILLfct_check_dfeasible(), ILLfct_check_pfeasible(), ILLfct_check_pIpfeasible(), ILLfct_compute_dobj(), ILLfct_compute_dz(), ILLfct_compute_phaseI_xbz(), ILLfct_compute_piz(), ILLfct_compute_xbz(), ILLprice_compute_primal_inf(), ILLprice_update_mpartial_price(), tol_struct::ip_tol, NULL, PARAM_DUAL_REFACTORGAP, PARAM_DUAL_RESOLVEGAP, tol_struct::pfeas_tol, feas_info::pstatus, ROW_PRICING, and lpinfo::tol.

Referenced by dual_phaseI_step(), dual_phaseII_step(), and terminate_simplex().

Here is the call graph for this function:

int ILLsimplex_retest_psolution ( lpinfo lp,
price_info p,
int  phase,
feas_info fi 
)

Definition at line 457 of file simplex.c.

References __QS_SB_VERB, lpinfo::basisid, COMPLETE_PRICING, tol_struct::dfeas_tol, feas_info::dstatus, lpinfo::fbasisid, tol_struct::id_tol, ILLbasis_refactor(), ILLfct_check_dfeasible(), ILLfct_check_pfeasible(), ILLfct_check_pIdfeasible(), ILLfct_compute_dz(), ILLfct_compute_phaseI_dz(), ILLfct_compute_phaseI_piz(), ILLfct_compute_piz(), ILLfct_compute_pobj(), ILLfct_compute_xbz(), ILLprice_compute_dual_inf(), tol_struct::ip_tol, NULL, price_info::p_strategy, PARAM_PRIMAL_REFACTORGAP, PARAM_PRIMAL_RESOLVEGAP, tol_struct::pfeas_tol, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, feas_info::pstatus, QS_LP_CHANGE_PREC, and lpinfo::tol.

Referenced by primal_phaseI_step(), primal_phaseII_step(), and terminate_simplex().

Here is the call graph for this function:

void ILLsimplex_set_bound ( lpinfo lp,
const EGlpNum_t *  objbound,
int  sense 
)

Definition at line 131 of file simplex.c.

References ILL_MAX, and lpinfo::objbound.

Referenced by QSchange_objsense(), and QSset_param_EGlpNum().

int ILLsimplex_solution ( lpinfo lp,
EGlpNum_t *  xz,
EGlpNum_t *  piz,
EGlpNum_t *  dz,
EGlpNum_t *  objval 
)

Definition at line 597 of file simplex.c.

References lpinfo::basisstat, lpinfo::baz, lpinfo::lz, lpinfo::nbaz, lpinfo::nnbasic, lpinfo::nrows, NULL, lp_status_info::optimal, lpinfo::piz, STAT_LOWER, STAT_UPPER, lpinfo::uz, lpinfo::vstat, and lpinfo::xbz.

Referenced by ILLlib_solution().

void init_internal_lpinfo ( lpinfo lp  ) 

Definition at line 180 of file simplex.c.

References lpinfo::bchanges, lpinfo::bfeas, lpinfo::cchanges, lpinfo::cnts, lpinfo::cz, lpinfo::dfeas, tol_struct::dfeas_tol, lpinfo::dz, tol_struct::id_tol, ILL_SAFE_MALLOC, ILLsvector_init(), tol_struct::ip_tol, lpinfo::iwork, pI_uinfo::ix, lpinfo::localrows, lpinfo::lz, lpinfo::nnbasic, lpinfo::nrows, pI_uinfo::perm, tol_struct::pfeas_tol, lpinfo::pIdz, lpinfo::pIpiz, tol_struct::pivot_tol, lpinfo::pIxbz, lpinfo::piz, lpinfo::rowbeg, lpinfo::rowcnt, lpinfo::rowind, lpinfo::rowval, lpinfo::srhs, lpinfo::ssoln, tol_struct::szero_tol, pI_uinfo::t, lpinfo::tol, lpinfo::upd, lpinfo::uz, lpinfo::vclass, lpinfo::vtype, lpinfo::work, lpinfo::xbz, count_struct::y_ravg, lpinfo::yjz, count_struct::z_ravg, lpinfo::zA, count_struct::za_ravg, and lpinfo::zz.

Referenced by ILLsimplex(), and ILLsimplex_init_lpinfo().

Here is the call graph for this function:

static void init_lp_status_info ( lp_status_info ls  )  [static]

Definition at line 141 of file simplex.c.

References lp_status_info::dual_feasible, lp_status_info::dual_infeasible, lp_status_info::dual_unbounded, lp_status_info::optimal, lp_status_info::primal_feasible, lp_status_info::primal_infeasible, and lp_status_info::primal_unbounded.

Referenced by build_internal_lpinfo(), and ILLsimplex().

static void init_simplex_tols ( lpinfo lp  ) 

Definition at line 153 of file simplex.c.

References tol_struct::dfeas_tol, DFEAS_TOLER, tol_struct::id_tol, tol_struct::ip_tol, tol_struct::pfeas_tol, PFEAS_TOLER, tol_struct::pivot_tol, PIVOT_TOLER, tol_struct::szero_tol, SZERO_TOLER, lpinfo::tol, and VERBOSE_LEVEL.

static void monitor_iter ( lpinfo lp,
price_info p,
iter_info it,
int  cphase 
)

Definition at line 1336 of file simplex.c.

References __QS_SB_VERB, iter_info::algorithm, iter_info::chkobj, iter_info::curtime, tol_struct::dfeas_tol, lpinfo::dinfeas, lpinfo::dobjval, feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, ILL_BND_REACHED, ILL_CLEANUP, ILL_LP_ABORTED, ILL_MAX_ITER, ILL_MAX_TIME, ILLfct_check_dfeasible(), ILLfct_compute_dobj(), ILLfct_perturb_bounds(), ILLfct_perturb_coefs(), ILLfct_set_status_values(), ILLfct_unroll_coef_change(), ILLutil_our_floor(), ILLutil_zeit(), INFTY, iter_info::inner, iter_info::itercnt, lpinfo::maxiter, lpinfo::maxtime, iter_info::n_restart, iter_info::newphase, iter_info::nextphase, iter_info::nextstep, iter_info::noprog, lpinfo::objbound, iter_info::objtol, tol_struct::pfeas_tol, PHASEII, lpinfo::pinfeas, lpinfo::pobjval, iter_info::prevobj, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, report_value(), restore_paraminfo(), iter_info::resumeid, iter_info::rounds, iter_info::sdisplay, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_TERMINATE, iter_info::solstatus, lpinfo::starttime, lpinfo::tol, and feas_info::totinfeas.

Referenced by dual_phaseI_step(), dual_phaseII_step(), primal_phaseI_step(), and primal_phaseII_step().

Here is the call graph for this function:

static int primal_phaseI_step ( lpinfo lp,
price_info pinf,
svector updz,
svector wz,
iter_info it 
)

Definition at line 1546 of file simplex.c.

References iter_info::algorithm, lpinfo::baz, pI_uinfo::c_obj, CNT_PPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, price_info::d_scaleinf, tol_struct::dfeas_tol, price_res::dinfeas, price_res::dir, feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, ratio_res::ecoeff, price_res::eindex, fct_test_pfeasible(), fct_test_workvector(), lpinfo::final_phase, ILL_CLEANUP, ILL_IFTRACE2, ILL_LP_SOLVED, ILLbasis_update(), ILLfct_check_pfeasible(), ILLfct_compute_phaseI_dz(), ILLfct_compute_phaseI_piz(), ILLfct_compute_ppIzz(), ILLfct_compute_psteep_upv(), ILLfct_compute_xbz(), ILLfct_compute_yz(), ILLfct_compute_zA(), ILLfct_compute_zz(), ILLfct_set_status_values(), ILLfct_update_basis_info(), ILLfct_update_counts(), ILLfct_update_pfeas(), ILLfct_update_ppI_prices(), ILLfct_update_xz(), ILLprice_compute_dual_inf(), ILLprice_free_heap(), ILLprice_init_mpartial_price(), ILLprice_primal(), ILLprice_test_for_heap(), ILLprice_update_pricing_info(), ILLratio_pI_test(), ILLsimplex_retest_psolution(), tol_struct::ip_tol, ratio_res::lbound, ratio_res::lindex, ratio_res::lvstat, monitor_iter(), MULTI_PART_PRICING, iter_info::n_restart, lpinfo::nbaz, iter_info::newphase, iter_info::nextphase, iter_info::nextstep, lpinfo::nnbasic, iter_info::noprog, iter_info::nosolve, lpinfo::nrows, NULL, svector::nzcnt, price_info::p_strategy, PARAM_MAX_NOSOLVE, tol_struct::pfeas_tol, PHASEI, PHASEII, price_info::pI_price, lpinfo::pIdz, lpinfo::pinfeas, price_res::pinfeas, lpinfo::pIpiz, ratio_res::pivotval, iter_info::prevobj, PRICE_OPTIMAL, price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, feas_info::pstatus, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, RATIO_NOBCHANGE, ratio_res::ratio_stat, iter_info::resumeid, iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_PHASE_RECOMP, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_TERMINATE, iter_info::solstatus, lpinfo::srhs, lpinfo::ssoln, test_progress(), lpinfo::tol, feas_info::totinfeas, ratio_res::tz, lpinfo::upd, VARTIFICIAL, VFREE, lpinfo::vtype, lpinfo::yjz, and lpinfo::zz.

Referenced by ILLsimplex().

Here is the call graph for this function:

static int primal_phaseII_step ( lpinfo lp,
price_info pinf,
svector updz,
svector wz,
iter_info it 
)

Definition at line 1826 of file simplex.c.

References iter_info::algorithm, lpinfo::baz, BOUND_LOWER, BOUND_UPPER, ratio_res::boundch, CNT_PPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZARAVG, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, price_info::d_scaleinf, tol_struct::dfeas_tol, lpinfo::dinfeas, price_res::dinfeas, price_res::dir, feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, lpinfo::dz, ratio_res::ecoeff, price_res::eindex, lpinfo::final_phase, tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, ILLbasis_update(), ILLfct_bound_shift(), ILLfct_check_dfeasible(), ILLfct_check_pfeasible(), ILLfct_compute_dz(), ILLfct_compute_piz(), ILLfct_compute_pobj(), ILLfct_compute_psteep_upv(), ILLfct_compute_xbz(), ILLfct_compute_yz(), ILLfct_compute_zA(), ILLfct_compute_zz(), ILLfct_set_status_values(), ILLfct_unroll_bound_change(), ILLfct_update_basis_info(), ILLfct_update_counts(), ILLfct_update_dz(), ILLfct_update_piz(), ILLfct_update_xz(), ILLprice_compute_dual_inf(), ILLprice_free_heap(), ILLprice_init_mpartial_price(), ILLprice_primal(), ILLprice_test_for_heap(), ILLprice_update_mpartial_price(), ILLprice_update_pricing_info(), ILLratio_pII_test(), ILLsimplex_retest_psolution(), tol_struct::ip_tol, ratio_res::lbound, ratio_res::lindex, ratio_res::lvstat, monitor_iter(), MULTI_PART_PRICING, iter_info::n_restart, lpinfo::nbaz, lpinfo::nbchange, iter_info::newphase, iter_info::nextphase, iter_info::nextstep, iter_info::noprog, iter_info::nosolve, NULL, svector::nzcnt, lpinfo::objval, price_info::p_strategy, PARAM_MAX_NOSOLVE, tol_struct::pfeas_tol, PHASEII, price_info::pII_price, price_res::pinfeas, ratio_res::pivotval, lpinfo::pobjval, iter_info::prevobj, PRICE_OPTIMAL, price_res::price_stat, iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, feas_info::pstatus, QS_PRICE_DDEVEX, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NOBCHANGE, ratio_res::ratio_stat, RATIO_UNBOUNDED, iter_info::resumeid, iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_PHASE_RECOMP, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_RESUME_UNSHIFT, SIMPLEX_TERMINATE, iter_info::solstatus, STAT_UPPER, test_progress(), lpinfo::tol, feas_info::totinfeas, ratio_res::tz, VARTIFICIAL, VFREE, lpinfo::vtype, lpinfo::yjz, and lpinfo::zz.

Referenced by ILLsimplex().

Here is the call graph for this function:

static int report_value ( lpinfo lp,
iter_info it,
const char *  value_name,
EGlpNum_t  value 
)

Definition at line 3011 of file simplex.c.

References ILLstring_report, iter_info::itercnt, lpinfo::iterskip, NULL, lpinfo::O, QS_LP_ABORTED, ILLlpdata::reporter, iter_info::sdisplay, and iter_info::solstatus.

Referenced by monitor_iter().

static void restore_paraminfo ( iter_info it,
price_info pinf 
) [static]

Definition at line 784 of file simplex.c.

References iter_info::algorithm, param_info::d_strategy, price_info::d_strategy, price_info::dI_price, price_info::dII_price, param_info::dphaseI, param_info::dphaseII, iter_info::oldinfo, param_info::origalgo, param_info::p_strategy, price_info::p_strategy, price_info::pI_price, price_info::pII_price, param_info::pphaseI, and param_info::pphaseII.

Referenced by ILLsimplex(), and monitor_iter().

static void save_paraminfo ( price_info pinf,
iter_info it 
) [static]

Definition at line 769 of file simplex.c.

References iter_info::algorithm, price_info::d_strategy, param_info::d_strategy, price_info::dI_price, price_info::dII_price, param_info::dphaseI, param_info::dphaseII, iter_info::oldinfo, param_info::origalgo, price_info::p_strategy, param_info::p_strategy, price_info::pI_price, price_info::pII_price, param_info::pphaseI, and param_info::pphaseII.

Referenced by ILLsimplex().

static int terminate_simplex ( lpinfo lp,
int  phase,
iter_info it 
) [static]

Definition at line 1260 of file simplex.c.

References iter_info::algorithm, feas_info::dstatus, DUAL_PHASEI, DUAL_SIMPLEX, ILL_CLEANUP, ILL_MAX_ITER, ILL_MAX_TIME, ILLfct_set_status_values(), ILLfct_unroll_bound_change(), ILLfct_unroll_coef_change(), ILLsimplex_retest_dsolution(), ILLsimplex_retest_psolution(), lpinfo::nbchange, lpinfo::ncchange, NULL, PHASEI, PHASEII, PRIMAL_PHASEI, PRIMAL_SIMPLEX, feas_info::pstatus, iter_info::sdisplay, iter_info::solstatus, and feas_info::totinfeas.

Referenced by ILLsimplex().

Here is the call graph for this function:

static int test_progress ( EGlpNum_t  objval,
EGlpNum_t  prevobj 
) [static]

Definition at line 1314 of file simplex.c.

References PROGRESS_THRESH, and PROGRESS_ZERO.

Referenced by dual_phaseI_step(), dual_phaseII_step(), primal_phaseI_step(), and primal_phaseII_step().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file simplex.c.


Generated on Thu Mar 29 09:48:37 2012 for QSopt_ex by  doxygen 1.4.7