dbl_simplex.c File Reference

#include "basicdefs.h"
#include "config.h"
#include "dbl_iqsutil.h"
#include "dbl_lpdata.h"
#include "dbl_lpdefs.h"
#include "stddefs.h"
#include "dbl_fct.h"
#include "dbl_ratio.h"
#include "dbl_price.h"
#include "dbl_basis.h"
#include "dbl_simplex.h"
#include "dbl_dstruct.h"
#include "dbl_qstruct.h"
#include "dbl_qsopt.h"
#include "dbl_lib.h"
#include "dbl_lp.h"

Include dependency graph for dbl_simplex.c:

Go to the source code of this file.

Defines

#define dbl_QSOPT_CURRENT_PRECICION

Functions

int dbl_build_internal_lpinfo (dbl_lpinfo *lp)
static int dbl_dual_phaseI_step (dbl_lpinfo *lp, dbl_price_info *pinf, dbl_svector *updz, dbl_svector *wz, dbl_iter_info *it)
static int dbl_dual_phaseII_step (dbl_lpinfo *lp, dbl_price_info *pinf, dbl_svector *updz, dbl_svector *wz, dbl_iter_info *it)
void dbl_free_internal_lpinfo (dbl_lpinfo *lp)
static void dbl_get_current_stat (dbl_lp_status_info *p, int algorithm, int *bstat)
int dbl_ILLsimplex (dbl_lpinfo *lp, int algorithm, dbl_ILLlp_basis *B, dbl_price_info *pinf, int *status, int sdisplay, itcnt_t *itcnt)
void dbl_ILLsimplex_free_lpinfo (dbl_lpinfo *lp)
int dbl_ILLsimplex_infcertificate (dbl_lpinfo *lp, double *pi)
void dbl_ILLsimplex_init_lpinfo (dbl_lpinfo *lp)
void dbl_ILLsimplex_load_lpinfo (dbl_ILLlpdata *qslp, dbl_lpinfo *lp)
int dbl_ILLsimplex_pivotin (dbl_lpinfo *lp, dbl_price_info *pinf, int rcnt, int *rlist, int pivot_opt, int *basis_mod)
int dbl_ILLsimplex_retest_dsolution (dbl_lpinfo *lp, dbl_price_info *p, int phase, dbl_feas_info *fi)
int dbl_ILLsimplex_retest_psolution (dbl_lpinfo *lp, dbl_price_info *p, int phase, dbl_feas_info *fi)
void dbl_ILLsimplex_set_bound (dbl_lpinfo *lp, const double *objbound, int sense)
int dbl_ILLsimplex_solution (dbl_lpinfo *lp, double *xz, double *piz, double *dz, double *objval)
void dbl_init_internal_lpinfo (dbl_lpinfo *lp)
static void dbl_init_lp_status_info (dbl_lp_status_info *ls)
static void dbl_init_simplex_tols (dbl_lpinfo *lp)
static void dbl_monitor_iter (dbl_lpinfo *lp, dbl_price_info *p, dbl_iter_info *it, int cphase)
static int dbl_primal_phaseI_step (dbl_lpinfo *lp, dbl_price_info *pinf, dbl_svector *updz, dbl_svector *wz, dbl_iter_info *it)
static int dbl_primal_phaseII_step (dbl_lpinfo *lp, dbl_price_info *pinf, dbl_svector *updz, dbl_svector *wz, dbl_iter_info *it)
static int dbl_report_value (dbl_lpinfo *lp, dbl_iter_info *it, const char *value_name, double value)
static void dbl_restore_paraminfo (dbl_iter_info *it, dbl_price_info *pinf)
static void dbl_save_paraminfo (dbl_price_info *pinf, dbl_iter_info *it)
static int dbl_terminate_simplex (dbl_lpinfo *lp, int phase, dbl_iter_info *it)
static int dbl_test_progress (double objval, double prevobj)

Variables

static int TRACE = 0


Define Documentation

#define dbl_QSOPT_CURRENT_PRECICION

Definition at line 26 of file dbl_simplex.c.


Function Documentation

int dbl_build_internal_lpinfo ( dbl_lpinfo lp  ) 

Definition at line 318 of file dbl_simplex.c.

References dbl_ILLlp_sinfo::A, dbl_ILLlpdata::A, dbl_lpinfo::basisstat, dbl_lpinfo::bz, dbl_lpinfo::cz, dbl_ILL_MAX, dbl_init_lp_status_info(), dbl_ILLlp_sinfo::lower, dbl_ILLlpdata::lower, dbl_lpinfo::lz, dbl_lpinfo::matbeg, dbl_ILLmatrix::matbeg, dbl_lpinfo::matcnt, dbl_ILLmatrix::matcnt, dbl_lpinfo::matind, dbl_ILLmatrix::matind, dbl_lpinfo::matval, dbl_ILLmatrix::matval, dbl_lpinfo::ncols, dbl_ILLlp_sinfo::ncols, dbl_ILLlpdata::ncols, dbl_lpinfo::nnbasic, dbl_lpinfo::nrows, dbl_ILLlp_sinfo::nrows, dbl_ILLlpdata::nrows, dbl_lpinfo::O, dbl_ILLlp_sinfo::obj, dbl_ILLlpdata::obj, dbl_ILLlpdata::objsense, dbl_lpinfo::probstat, dbl_ILLlp_sinfo::rhs, dbl_ILLlpdata::rhs, dbl_ILLlpdata::sinfo, dbl_ILLlp_sinfo::upper, dbl_ILLlpdata::upper, and dbl_lpinfo::uz.

Here is the call graph for this function:

static int dbl_dual_phaseI_step ( dbl_lpinfo lp,
dbl_price_info pinf,
dbl_svector updz,
dbl_svector wz,
dbl_iter_info it 
)

Definition at line 2150 of file dbl_simplex.c.

References __QS_SB_VERB, dbl_iter_info::algorithm, CNT_DPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COMPLETE_PRICING, dbl_price_info::d_strategy, dbl_fct_test_dfeasible(), dbl_fct_test_pI_x(), dbl_fct_test_workvector(), dbl_ILLbasis_factor(), dbl_ILLbasis_update(), dbl_ILLfct_check_dfeasible(), dbl_ILLfct_compute_dpIy(), dbl_ILLfct_compute_dsteep_upv(), dbl_ILLfct_compute_dz(), dbl_ILLfct_compute_phaseI_xbz(), dbl_ILLfct_compute_piz(), dbl_ILLfct_compute_yz(), dbl_ILLfct_compute_zA(), dbl_ILLfct_compute_zz(), dbl_ILLfct_dual_adjust(), dbl_ILLfct_set_status_values(), dbl_ILLfct_test_pivot(), dbl_ILLfct_update_basis_info(), dbl_ILLfct_update_counts(), dbl_ILLfct_update_dfeas(), dbl_ILLfct_update_dpI_prices(), dbl_ILLfct_update_dz(), dbl_ILLfct_update_piz(), dbl_ILLprice_compute_primal_inf(), dbl_ILLprice_dual(), dbl_ILLprice_free_heap(), dbl_ILLprice_init_mpartial_price(), dbl_ILLprice_test_for_heap(), dbl_ILLprice_update_pricing_info(), dbl_ILLratio_dI_test(), dbl_ILLsimplex_retest_dsolution(), dbl_monitor_iter(), dbl_test_dsteep_norms(), dbl_test_progress(), dbl_tol_struct::dfeas_tol, dbl_price_info::dI_price, dbl_lpinfo::dinfeas, dbl_price_res::dinfeas, dbl_feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, dbl_ratio_res::ecoeff, dbl_ratio_res::eindex, dbl_lpinfo::final_phase, dbl_tol_struct::id_tol, ILL_CLEANUP, ILL_LP_SOLVED, dbl_ratio_res::lbound, dbl_price_res::lindex, dbl_price_res::lvstat, MULTI_PART_PRICING, dbl_iter_info::n_pivot_fail, dbl_iter_info::n_restart, dbl_iter_info::newphase, dbl_iter_info::nextphase, dbl_iter_info::nextstep, dbl_iter_info::noprog, dbl_iter_info::nosolve, dbl_lpinfo::nrows, NULL, dbl_svector::nzcnt, PARAM_MAX_NOSOLVE, dbl_tol_struct::pfeas_tol, PHASEI, PHASEII, dbl_price_res::pinfeas, dbl_ratio_res::pivotval, dbl_iter_info::prevobj, PRICE_OPTIMAL, dbl_price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, dbl_feas_info::pstatus, QS_PRICE_DSTEEP, RATIO_BCHANGE, RATIO_FAILED, dbl_ratio_res::ratio_stat, dbl_iter_info::resumeid, ROW_PIVOT, ROW_PRICING, dbl_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, dbl_iter_info::solstatus, dbl_lpinfo::tol, dbl_feas_info::totinfeas, dbl_ratio_res::tz, VARTIFICIAL, VFREE, dbl_lpinfo::zA, and dbl_lpinfo::zz.

Referenced by dbl_ILLsimplex().

Here is the call graph for this function:

static int dbl_dual_phaseII_step ( dbl_lpinfo lp,
dbl_price_info pinf,
dbl_svector updz,
dbl_svector wz,
dbl_iter_info it 
)

Definition at line 2403 of file dbl_simplex.c.

References __QS_SB_VERB, dbl_iter_info::algorithm, dbl_lpinfo::baz, dbl_pI_uinfo::c_obj, CNT_DPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, dbl_ratio_res::coeffch, COMPLETE_PRICING, dbl_price_info::d_strategy, dbl_fct_test_pII_pi_dz(), dbl_fct_test_pII_x(), dbl_fct_test_workvector(), dbl_ILLbasis_factor(), dbl_ILLbasis_update(), dbl_ILLfct_adjust_viol_coefs(), dbl_ILLfct_check_dfeasible(), dbl_ILLfct_check_pfeasible(), dbl_ILLfct_coef_shift(), dbl_ILLfct_compute_dobj(), dbl_ILLfct_compute_dpIIy(), dbl_ILLfct_compute_dsteep_upv(), dbl_ILLfct_compute_dz(), dbl_ILLfct_compute_piz(), dbl_ILLfct_compute_xbz(), dbl_ILLfct_compute_yz(), dbl_ILLfct_compute_zA(), dbl_ILLfct_compute_zz(), dbl_ILLfct_dual_adjust(), dbl_ILLfct_set_status_values(), dbl_ILLfct_test_pivot(), dbl_ILLfct_unroll_coef_change(), dbl_ILLfct_update_basis_info(), dbl_ILLfct_update_counts(), dbl_ILLfct_update_dIIfeas(), dbl_ILLfct_update_dpII_prices(), dbl_ILLfct_update_dz(), dbl_ILLfct_update_piz(), dbl_ILLprice_compute_primal_inf(), dbl_ILLprice_dual(), dbl_ILLprice_free_heap(), dbl_ILLprice_init_mpartial_price(), dbl_ILLprice_test_for_heap(), dbl_ILLprice_update_pricing_info(), dbl_ILLratio_longdII_test(), dbl_ILLsimplex_retest_dsolution(), dbl_monitor_iter(), dbl_test_dsteep_norms(), dbl_test_progress(), dbl_tol_struct::dfeas_tol, dbl_price_info::dII_price, dbl_price_res::dinfeas, dbl_lpinfo::dobjval, dbl_feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, DUAL_UNBOUNDED, dbl_ratio_res::ecoeff, dbl_ratio_res::eindex, dbl_lpinfo::final_phase, dbl_tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, dbl_lpinfo::infub_ix, dbl_tol_struct::ip_tol, dbl_ratio_res::lbound, dbl_price_res::lindex, dbl_price_res::lvstat, MULTI_PART_PRICING, dbl_iter_info::n_pivot_fail, dbl_iter_info::n_restart, dbl_lpinfo::nbaz, dbl_lpinfo::ncchange, dbl_iter_info::newphase, dbl_iter_info::nextphase, dbl_iter_info::nextstep, dbl_iter_info::noprog, dbl_iter_info::nosolve, dbl_lpinfo::nrows, NULL, dbl_svector::nzcnt, dbl_lpinfo::objval, PARAM_MAX_NOSOLVE, dbl_tol_struct::pfeas_tol, PHASEII, dbl_price_res::pinfeas, dbl_ratio_res::pivotval, dbl_iter_info::prevobj, PRICE_OPTIMAL, dbl_price_res::price_stat, dbl_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, dbl_feas_info::pstatus, QS_LP_CHANGE_PREC, QS_PRICE_DSTEEP, QS_PRICE_PDEVEX, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, dbl_ratio_res::ratio_stat, RATIO_UNBOUNDED, dbl_iter_info::resumeid, ROW_PIVOT, ROW_PRICING, dbl_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, dbl_iter_info::solstatus, STAT_LOWER, STAT_ZERO, dbl_lpinfo::tol, dbl_feas_info::totinfeas, dbl_ratio_res::tz, dbl_lpinfo::upd, VARTIFICIAL, VFREE, dbl_lpinfo::vstat, dbl_lpinfo::vtype, dbl_lpinfo::yjz, dbl_lpinfo::zA, and dbl_lpinfo::zz.

Referenced by dbl_ILLsimplex().

Here is the call graph for this function:

void dbl_free_internal_lpinfo ( dbl_lpinfo lp  ) 

Definition at line 238 of file dbl_simplex.c.

References dbl_lpinfo::bchanges, dbl_lpinfo::bfeas, dbl_bndinfo::cbound, dbl_lpinfo::cchanges, dbl_coefinfo::ccoef, dbl_lpinfo::cnts, dbl_lpinfo::cz, dbl_ILLsvector_free(), dbl_lpinfo::dfeas, dbl_tol_struct::dfeas_tol, dbl_lpinfo::dz, dbl_tol_struct::id_tol, ILL_IFFREE, dbl_tol_struct::ip_tol, dbl_lpinfo::iwork, dbl_pI_uinfo::ix, dbl_lpinfo::localrows, dbl_lpinfo::lz, dbl_bndinfo::next, dbl_coefinfo::next, dbl_bndinfo::pbound, dbl_coefinfo::pcoef, dbl_pI_uinfo::perm, dbl_tol_struct::pfeas_tol, dbl_lpinfo::pIdz, dbl_lpinfo::pIpiz, dbl_tol_struct::pivot_tol, dbl_lpinfo::pIxbz, dbl_lpinfo::piz, dbl_lpinfo::rowbeg, dbl_lpinfo::rowcnt, dbl_lpinfo::rowind, dbl_lpinfo::rowval, dbl_lpinfo::srhs, dbl_lpinfo::ssoln, dbl_tol_struct::szero_tol, dbl_pI_uinfo::t, dbl_lpinfo::tol, dbl_lpinfo::upd, dbl_lpinfo::uz, dbl_lpinfo::vclass, dbl_lpinfo::vtype, dbl_lpinfo::work, dbl_lpinfo::xbz, dbl_count_struct::y_ravg, dbl_lpinfo::yjz, dbl_count_struct::z_ravg, dbl_lpinfo::zA, dbl_count_struct::za_ravg, and dbl_lpinfo::zz.

Here is the call graph for this function:

static void dbl_get_current_stat ( dbl_lp_status_info p,
int  algorithm,
int *  bstat 
)

Definition at line 2803 of file dbl_simplex.c.

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

Referenced by dbl_ILLsimplex().

int dbl_ILLsimplex ( dbl_lpinfo lp,
int  algorithm,
dbl_ILLlp_basis B,
dbl_price_info pinf,
int *  status,
int  sdisplay,
itcnt_t itcnt 
)

Definition at line 799 of file dbl_simplex.c.

References __QS_SB_VERB, dbl_iter_info::algorithm, dbl_lpinfo::basisid, dbl_lpinfo::basisstat, dbl_iter_info::chkobj, dbl_lpinfo::cnts, dbl_ILLlp_basis::colnorms, dbl_price_info::cur_price, dbl_iter_info::curtime, dbl_build_internal_lpinfo(), dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_free_internal_lpinfo(), dbl_get_current_stat(), dbl_ILLbasis_factor(), dbl_ILLbasis_get_cinitial(), dbl_ILLbasis_get_initial(), dbl_ILLbasis_load(), dbl_ILLfct_check_dfeasible(), dbl_ILLfct_check_pfeasible(), dbl_ILLfct_compute_dobj(), dbl_ILLfct_compute_dz(), dbl_ILLfct_compute_piz(), dbl_ILLfct_compute_pobj(), dbl_ILLfct_compute_xbz(), dbl_ILLfct_dual_adjust(), dbl_ILLfct_print_counts(), dbl_ILLfct_set_status_values(), dbl_ILLfct_set_variable_type(), dbl_ILLfct_unroll_bound_change(), dbl_ILLfct_unroll_coef_change(), dbl_ILLprice_build_pricing_info(), dbl_ILLprice_free_pricing_info(), dbl_ILLprice_get_price(), dbl_ILLprice_load_colnorms(), dbl_ILLprice_load_rownorms(), dbl_ILLsimplex_infcertificate(), dbl_ILLsvector_alloc(), dbl_ILLsvector_free(), dbl_ILLsvector_init(), dbl_INFTY, dbl_init_internal_lpinfo(), dbl_init_lp_status_info(), dbl_OBJBND_TOLER, dbl_primal_phaseI_step(), dbl_primal_phaseII_step(), dbl_restore_paraminfo(), dbl_save_paraminfo(), dbl_terminate_simplex(), dbl_tol_struct::dfeas_tol, dbl_count_struct::dI_iter, itcnt_t::dI_iter, dbl_count_struct::dII_iter, itcnt_t::dII_iter, dbl_lpinfo::dinfeas, dbl_lpinfo::dobjval, dbl_price_info::dsinfo, dbl_feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, DUAL_UNBOUNDED, dbl_lp_status_info::dual_unbounded, dbl_lpinfo::fbasisid, 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, ILLstring_report, ILLutil_zeit(), dbl_iter_info::inner, dbl_iter_info::itercnt, dbl_lpinfo::matcnt, dbl_iter_info::n_pivot_fail, dbl_iter_info::n_restart, dbl_lpinfo::ncols, dbl_iter_info::newphase, dbl_iter_info::nextphase, dbl_iter_info::nextstep, dbl_p_devex_info::ninit, dbl_iter_info::noprog, dbl_p_steep_info::norms, dbl_d_steep_info::norms, dbl_iter_info::nosolve, dbl_lpinfo::nrows, dbl_ILLlpdata::nrows, NULL, dbl_lpinfo::O, dbl_lpinfo::objbound, dbl_iter_info::objtol, dbl_lpinfo::objval, OPTIMAL, dbl_lp_status_info::optimal, PARAM_MAX_NOPROG, dbl_price_info::pdinfo, dbl_tol_struct::pfeas_tol, PHASEII, dbl_count_struct::pI_iter, itcnt_t::pI_iter, dbl_price_info::pI_price, dbl_count_struct::pII_iter, itcnt_t::pII_iter, dbl_lpinfo::pinfeas, dbl_lpinfo::pobjval, dbl_iter_info::prevobj, dbl_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, dbl_lp_status_info::primal_infeasible, PRIMAL_OR_DUAL, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, dbl_lp_status_info::primal_unbounded, dbl_ILLlpdata::probname, dbl_price_info::psinfo, dbl_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, dbl_ILLlpdata::reporter, dbl_iter_info::resumeid, dbl_iter_info::rounds, dbl_ILLlp_basis::rownorms, dbl_iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_MAX_RESTART, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_RESUME_UNSHIFT, dbl_iter_info::solstatus, dbl_lpinfo::starttime, dbl_lpinfo::tol, itcnt_t::tot_iter, and dbl_feas_info::totinfeas.

Here is the call graph for this function:

void dbl_ILLsimplex_free_lpinfo ( dbl_lpinfo lp  ) 

Definition at line 105 of file dbl_simplex.c.

References dbl_lpinfo::cz, dbl_free_internal_lpinfo(), dbl_ILLbasis_free_basisinfo(), dbl_lpinfo::lz, and dbl_lpinfo::uz.

Here is the call graph for this function:

int dbl_ILLsimplex_infcertificate ( dbl_lpinfo lp,
double *  pi 
)

Definition at line 651 of file dbl_simplex.c.

References dbl_lpinfo::basisstat, dbl_lpinfo::baz, dbl_svector::coef, dbl_NINFTY, DUAL_PHASEII, dbl_lp_status_info::dual_unbounded, dbl_lpinfo::final_phase, dbl_svector::indx, dbl_lpinfo::infub_ix, dbl_lpinfo::lz, dbl_lpinfo::nrows, NULL, dbl_svector::nzcnt, dbl_lpinfo::pIpiz, dbl_lp_status_info::primal_infeasible, PRIMAL_PHASEI, dbl_lpinfo::uz, dbl_lpinfo::xbz, and dbl_lpinfo::zz.

void dbl_ILLsimplex_init_lpinfo ( dbl_lpinfo lp  ) 

Definition at line 98 of file dbl_simplex.c.

References dbl_ILLbasis_init_basisinfo(), and dbl_init_internal_lpinfo().

Here is the call graph for this function:

void dbl_ILLsimplex_load_lpinfo ( dbl_ILLlpdata qslp,
dbl_lpinfo lp 
)

Definition at line 118 of file dbl_simplex.c.

References dbl_lpinfo::basisid, dbl_INFTY, dbl_lpinfo::iterskip, dbl_lpinfo::maxiter, dbl_lpinfo::maxtime, dbl_lpinfo::O, and dbl_lpinfo::objbound.

int dbl_ILLsimplex_pivotin ( dbl_lpinfo lp,
dbl_price_info pinf,
int  rcnt,
int *  rlist,
int  pivot_opt,
int *  basis_mod 
)

Definition at line 2834 of file dbl_simplex.c.

References dbl_ratio_res::ecoeff, ILL_SAFE_MALLOC, dbl_ratio_res::lbound, NULL, dbl_lpinfo::O, dbl_ratio_res::pivotval, dbl_ILLlpdata::rowmap, SIMPLEX_PIVOTINROW, STAT_BASIC, dbl_feas_info::totinfeas, dbl_ratio_res::tz, and dbl_lpinfo::vstat.

int dbl_ILLsimplex_retest_dsolution ( dbl_lpinfo lp,
dbl_price_info p,
int  phase,
dbl_feas_info fi 
)

Definition at line 518 of file dbl_simplex.c.

References dbl_lpinfo::basisid, COMPLETE_PRICING, dbl_price_info::d_strategy, dbl_ILLbasis_refactor(), dbl_ILLfct_check_dfeasible(), dbl_ILLfct_check_pfeasible(), dbl_ILLfct_check_pIpfeasible(), dbl_ILLfct_compute_dobj(), dbl_ILLfct_compute_dz(), dbl_ILLfct_compute_phaseI_xbz(), dbl_ILLfct_compute_piz(), dbl_ILLfct_compute_xbz(), dbl_ILLprice_compute_primal_inf(), dbl_ILLprice_update_mpartial_price(), dbl_tol_struct::dfeas_tol, dbl_feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, dbl_lpinfo::fbasisid, dbl_tol_struct::id_tol, dbl_tol_struct::ip_tol, NULL, PARAM_DUAL_REFACTORGAP, PARAM_DUAL_RESOLVEGAP, dbl_tol_struct::pfeas_tol, dbl_feas_info::pstatus, ROW_PRICING, and dbl_lpinfo::tol.

Here is the call graph for this function:

int dbl_ILLsimplex_retest_psolution ( dbl_lpinfo lp,
dbl_price_info p,
int  phase,
dbl_feas_info fi 
)

Definition at line 457 of file dbl_simplex.c.

References __QS_SB_VERB, dbl_lpinfo::basisid, COMPLETE_PRICING, dbl_ILLbasis_refactor(), dbl_ILLfct_check_dfeasible(), dbl_ILLfct_check_pfeasible(), dbl_ILLfct_check_pIdfeasible(), dbl_ILLfct_compute_dz(), dbl_ILLfct_compute_phaseI_dz(), dbl_ILLfct_compute_phaseI_piz(), dbl_ILLfct_compute_piz(), dbl_ILLfct_compute_pobj(), dbl_ILLfct_compute_xbz(), dbl_ILLprice_compute_dual_inf(), dbl_tol_struct::dfeas_tol, dbl_feas_info::dstatus, dbl_lpinfo::fbasisid, dbl_tol_struct::id_tol, dbl_tol_struct::ip_tol, NULL, dbl_price_info::p_strategy, PARAM_PRIMAL_REFACTORGAP, PARAM_PRIMAL_RESOLVEGAP, dbl_tol_struct::pfeas_tol, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, dbl_feas_info::pstatus, QS_LP_CHANGE_PREC, and dbl_lpinfo::tol.

Here is the call graph for this function:

void dbl_ILLsimplex_set_bound ( dbl_lpinfo lp,
const double *  objbound,
int  sense 
)

Definition at line 131 of file dbl_simplex.c.

References dbl_ILL_MAX, and dbl_lpinfo::objbound.

int dbl_ILLsimplex_solution ( dbl_lpinfo lp,
double *  xz,
double *  piz,
double *  dz,
double *  objval 
)

Definition at line 597 of file dbl_simplex.c.

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

void dbl_init_internal_lpinfo ( dbl_lpinfo lp  ) 

Definition at line 180 of file dbl_simplex.c.

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

Here is the call graph for this function:

static void dbl_init_lp_status_info ( dbl_lp_status_info ls  )  [static]

Definition at line 141 of file dbl_simplex.c.

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

Referenced by dbl_build_internal_lpinfo(), and dbl_ILLsimplex().

static void dbl_init_simplex_tols ( dbl_lpinfo lp  ) 

Definition at line 153 of file dbl_simplex.c.

References dbl_DFEAS_TOLER, dbl_PFEAS_TOLER, dbl_PIVOT_TOLER, dbl_SZERO_TOLER, dbl_tol_struct::dfeas_tol, dbl_tol_struct::id_tol, dbl_tol_struct::ip_tol, dbl_tol_struct::pfeas_tol, dbl_tol_struct::pivot_tol, dbl_tol_struct::szero_tol, dbl_lpinfo::tol, and VERBOSE_LEVEL.

static void dbl_monitor_iter ( dbl_lpinfo lp,
dbl_price_info p,
dbl_iter_info it,
int  cphase 
)

Definition at line 1336 of file dbl_simplex.c.

References __QS_SB_VERB, dbl_iter_info::algorithm, dbl_iter_info::chkobj, dbl_iter_info::curtime, dbl_ILLfct_check_dfeasible(), dbl_ILLfct_compute_dobj(), dbl_ILLfct_perturb_bounds(), dbl_ILLfct_perturb_coefs(), dbl_ILLfct_set_status_values(), dbl_ILLfct_unroll_coef_change(), dbl_ILLutil_our_floor(), dbl_INFTY, dbl_report_value(), dbl_restore_paraminfo(), dbl_tol_struct::dfeas_tol, dbl_lpinfo::dinfeas, dbl_lpinfo::dobjval, dbl_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, ILLutil_zeit(), dbl_iter_info::inner, dbl_iter_info::itercnt, dbl_lpinfo::maxiter, dbl_lpinfo::maxtime, dbl_iter_info::n_restart, dbl_iter_info::newphase, dbl_iter_info::nextphase, dbl_iter_info::nextstep, dbl_iter_info::noprog, dbl_lpinfo::objbound, dbl_iter_info::objtol, dbl_tol_struct::pfeas_tol, PHASEII, dbl_lpinfo::pinfeas, dbl_lpinfo::pobjval, dbl_iter_info::prevobj, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, dbl_iter_info::resumeid, dbl_iter_info::rounds, dbl_iter_info::sdisplay, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_TERMINATE, dbl_iter_info::solstatus, dbl_lpinfo::starttime, dbl_lpinfo::tol, and dbl_feas_info::totinfeas.

Referenced by dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_primal_phaseI_step(), and dbl_primal_phaseII_step().

Here is the call graph for this function:

static int dbl_primal_phaseI_step ( dbl_lpinfo lp,
dbl_price_info pinf,
dbl_svector updz,
dbl_svector wz,
dbl_iter_info it 
)

Definition at line 1546 of file dbl_simplex.c.

References dbl_iter_info::algorithm, dbl_lpinfo::baz, dbl_pI_uinfo::c_obj, CNT_PPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, dbl_price_info::d_scaleinf, dbl_fct_test_pfeasible(), dbl_fct_test_workvector(), dbl_ILLbasis_update(), dbl_ILLfct_check_pfeasible(), dbl_ILLfct_compute_phaseI_dz(), dbl_ILLfct_compute_phaseI_piz(), dbl_ILLfct_compute_ppIzz(), dbl_ILLfct_compute_psteep_upv(), dbl_ILLfct_compute_xbz(), dbl_ILLfct_compute_yz(), dbl_ILLfct_compute_zA(), dbl_ILLfct_compute_zz(), dbl_ILLfct_set_status_values(), dbl_ILLfct_update_basis_info(), dbl_ILLfct_update_counts(), dbl_ILLfct_update_pfeas(), dbl_ILLfct_update_ppI_prices(), dbl_ILLfct_update_xz(), dbl_ILLprice_compute_dual_inf(), dbl_ILLprice_free_heap(), dbl_ILLprice_init_mpartial_price(), dbl_ILLprice_primal(), dbl_ILLprice_test_for_heap(), dbl_ILLprice_update_pricing_info(), dbl_ILLratio_pI_test(), dbl_ILLsimplex_retest_psolution(), dbl_monitor_iter(), dbl_test_progress(), dbl_tol_struct::dfeas_tol, dbl_price_res::dinfeas, dbl_price_res::dir, dbl_feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, dbl_ratio_res::ecoeff, dbl_price_res::eindex, dbl_lpinfo::final_phase, ILL_CLEANUP, ILL_IFTRACE2, ILL_LP_SOLVED, dbl_tol_struct::ip_tol, dbl_ratio_res::lbound, dbl_ratio_res::lindex, dbl_ratio_res::lvstat, MULTI_PART_PRICING, dbl_iter_info::n_restart, dbl_lpinfo::nbaz, dbl_iter_info::newphase, dbl_iter_info::nextphase, dbl_iter_info::nextstep, dbl_lpinfo::nnbasic, dbl_iter_info::noprog, dbl_iter_info::nosolve, dbl_lpinfo::nrows, NULL, dbl_svector::nzcnt, dbl_price_info::p_strategy, PARAM_MAX_NOSOLVE, dbl_tol_struct::pfeas_tol, PHASEI, PHASEII, dbl_price_info::pI_price, dbl_lpinfo::pIdz, dbl_lpinfo::pinfeas, dbl_price_res::pinfeas, dbl_lpinfo::pIpiz, dbl_ratio_res::pivotval, dbl_iter_info::prevobj, PRICE_OPTIMAL, dbl_price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, dbl_feas_info::pstatus, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, RATIO_NOBCHANGE, dbl_ratio_res::ratio_stat, dbl_iter_info::resumeid, dbl_iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_PHASE_RECOMP, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_TERMINATE, dbl_iter_info::solstatus, dbl_lpinfo::srhs, dbl_lpinfo::ssoln, dbl_lpinfo::tol, dbl_feas_info::totinfeas, dbl_ratio_res::tz, dbl_lpinfo::upd, VARTIFICIAL, VFREE, dbl_lpinfo::vtype, dbl_lpinfo::yjz, and dbl_lpinfo::zz.

Referenced by dbl_ILLsimplex().

Here is the call graph for this function:

static int dbl_primal_phaseII_step ( dbl_lpinfo lp,
dbl_price_info pinf,
dbl_svector updz,
dbl_svector wz,
dbl_iter_info it 
)

Definition at line 1826 of file dbl_simplex.c.

References dbl_iter_info::algorithm, dbl_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, dbl_ratio_res::boundch, CNT_PPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZARAVG, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, dbl_price_info::d_scaleinf, dbl_ILLbasis_update(), dbl_ILLfct_bound_shift(), dbl_ILLfct_check_dfeasible(), dbl_ILLfct_check_pfeasible(), dbl_ILLfct_compute_dz(), dbl_ILLfct_compute_piz(), dbl_ILLfct_compute_pobj(), dbl_ILLfct_compute_psteep_upv(), dbl_ILLfct_compute_xbz(), dbl_ILLfct_compute_yz(), dbl_ILLfct_compute_zA(), dbl_ILLfct_compute_zz(), dbl_ILLfct_set_status_values(), dbl_ILLfct_unroll_bound_change(), dbl_ILLfct_update_basis_info(), dbl_ILLfct_update_counts(), dbl_ILLfct_update_dz(), dbl_ILLfct_update_piz(), dbl_ILLfct_update_xz(), dbl_ILLprice_compute_dual_inf(), dbl_ILLprice_free_heap(), dbl_ILLprice_init_mpartial_price(), dbl_ILLprice_primal(), dbl_ILLprice_test_for_heap(), dbl_ILLprice_update_mpartial_price(), dbl_ILLprice_update_pricing_info(), dbl_ILLratio_pII_test(), dbl_ILLsimplex_retest_psolution(), dbl_monitor_iter(), dbl_test_progress(), dbl_tol_struct::dfeas_tol, dbl_lpinfo::dinfeas, dbl_price_res::dinfeas, dbl_price_res::dir, dbl_feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, dbl_lpinfo::dz, dbl_ratio_res::ecoeff, dbl_price_res::eindex, dbl_lpinfo::final_phase, dbl_tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, dbl_tol_struct::ip_tol, dbl_ratio_res::lbound, dbl_ratio_res::lindex, dbl_ratio_res::lvstat, MULTI_PART_PRICING, dbl_iter_info::n_restart, dbl_lpinfo::nbaz, dbl_lpinfo::nbchange, dbl_iter_info::newphase, dbl_iter_info::nextphase, dbl_iter_info::nextstep, dbl_iter_info::noprog, dbl_iter_info::nosolve, NULL, dbl_svector::nzcnt, dbl_lpinfo::objval, dbl_price_info::p_strategy, PARAM_MAX_NOSOLVE, dbl_tol_struct::pfeas_tol, PHASEII, dbl_price_info::pII_price, dbl_price_res::pinfeas, dbl_ratio_res::pivotval, dbl_lpinfo::pobjval, dbl_iter_info::prevobj, PRICE_OPTIMAL, dbl_price_res::price_stat, dbl_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, dbl_feas_info::pstatus, QS_PRICE_DDEVEX, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NOBCHANGE, dbl_ratio_res::ratio_stat, RATIO_UNBOUNDED, dbl_iter_info::resumeid, dbl_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, dbl_iter_info::solstatus, STAT_UPPER, dbl_lpinfo::tol, dbl_feas_info::totinfeas, dbl_ratio_res::tz, VARTIFICIAL, VFREE, dbl_lpinfo::vtype, dbl_lpinfo::yjz, and dbl_lpinfo::zz.

Referenced by dbl_ILLsimplex().

Here is the call graph for this function:

static int dbl_report_value ( dbl_lpinfo lp,
dbl_iter_info it,
const char *  value_name,
double  value 
)

Definition at line 3011 of file dbl_simplex.c.

References ILLstring_report, dbl_iter_info::itercnt, dbl_lpinfo::iterskip, NULL, dbl_lpinfo::O, QS_LP_ABORTED, dbl_ILLlpdata::reporter, dbl_iter_info::sdisplay, and dbl_iter_info::solstatus.

Referenced by dbl_monitor_iter().

static void dbl_restore_paraminfo ( dbl_iter_info it,
dbl_price_info pinf 
) [static]

Definition at line 784 of file dbl_simplex.c.

References dbl_iter_info::algorithm, dbl_param_info::d_strategy, dbl_price_info::d_strategy, dbl_price_info::dI_price, dbl_price_info::dII_price, dbl_param_info::dphaseI, dbl_param_info::dphaseII, dbl_iter_info::oldinfo, dbl_param_info::origalgo, dbl_param_info::p_strategy, dbl_price_info::p_strategy, dbl_price_info::pI_price, dbl_price_info::pII_price, dbl_param_info::pphaseI, and dbl_param_info::pphaseII.

Referenced by dbl_ILLsimplex(), and dbl_monitor_iter().

static void dbl_save_paraminfo ( dbl_price_info pinf,
dbl_iter_info it 
) [static]

Definition at line 769 of file dbl_simplex.c.

References dbl_iter_info::algorithm, dbl_price_info::d_strategy, dbl_param_info::d_strategy, dbl_price_info::dI_price, dbl_price_info::dII_price, dbl_param_info::dphaseI, dbl_param_info::dphaseII, dbl_iter_info::oldinfo, dbl_param_info::origalgo, dbl_price_info::p_strategy, dbl_param_info::p_strategy, dbl_price_info::pI_price, dbl_price_info::pII_price, dbl_param_info::pphaseI, and dbl_param_info::pphaseII.

Referenced by dbl_ILLsimplex().

static int dbl_terminate_simplex ( dbl_lpinfo lp,
int  phase,
dbl_iter_info it 
) [static]

Definition at line 1260 of file dbl_simplex.c.

References dbl_iter_info::algorithm, dbl_ILLfct_set_status_values(), dbl_ILLfct_unroll_bound_change(), dbl_ILLfct_unroll_coef_change(), dbl_ILLsimplex_retest_dsolution(), dbl_ILLsimplex_retest_psolution(), dbl_feas_info::dstatus, DUAL_PHASEI, DUAL_SIMPLEX, ILL_CLEANUP, ILL_MAX_ITER, ILL_MAX_TIME, dbl_lpinfo::nbchange, dbl_lpinfo::ncchange, NULL, PHASEI, PHASEII, PRIMAL_PHASEI, PRIMAL_SIMPLEX, dbl_feas_info::pstatus, dbl_iter_info::sdisplay, dbl_iter_info::solstatus, and dbl_feas_info::totinfeas.

Referenced by dbl_ILLsimplex().

Here is the call graph for this function:

static int dbl_test_progress ( double  objval,
double  prevobj 
) [static]

Definition at line 1314 of file dbl_simplex.c.

References dbl_PROGRESS_THRESH, and dbl_PROGRESS_ZERO.

Referenced by dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_primal_phaseI_step(), and dbl_primal_phaseII_step().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file dbl_simplex.c.


Generated on Thu Mar 29 09:34:51 2012 for QSopt_ex by  doxygen 1.4.7