mpq_simplex.c File Reference

#include "basicdefs.h"
#include "config.h"
#include "mpq_iqsutil.h"
#include "mpq_lpdata.h"
#include "mpq_lpdefs.h"
#include "stddefs.h"
#include "mpq_fct.h"
#include "mpq_ratio.h"
#include "mpq_price.h"
#include "mpq_basis.h"
#include "mpq_simplex.h"
#include "mpq_dstruct.h"
#include "mpq_qstruct.h"
#include "mpq_qsopt.h"
#include "mpq_lib.h"
#include "mpq_lp.h"

Include dependency graph for mpq_simplex.c:

Go to the source code of this file.

Defines

#define mpq_QSOPT_CURRENT_PRECICION

Functions

int mpq_build_internal_lpinfo (mpq_lpinfo *lp)
static int mpq_dual_phaseI_step (mpq_lpinfo *lp, mpq_price_info *pinf, mpq_svector *updz, mpq_svector *wz, mpq_iter_info *it)
static int mpq_dual_phaseII_step (mpq_lpinfo *lp, mpq_price_info *pinf, mpq_svector *updz, mpq_svector *wz, mpq_iter_info *it)
void mpq_free_internal_lpinfo (mpq_lpinfo *lp)
static void mpq_get_current_stat (mpq_lp_status_info *p, int algorithm, int *bstat)
int mpq_ILLsimplex (mpq_lpinfo *lp, int algorithm, mpq_ILLlp_basis *B, mpq_price_info *pinf, int *status, int sdisplay, itcnt_t *itcnt)
void mpq_ILLsimplex_free_lpinfo (mpq_lpinfo *lp)
int mpq_ILLsimplex_infcertificate (mpq_lpinfo *lp, mpq_t *pi)
void mpq_ILLsimplex_init_lpinfo (mpq_lpinfo *lp)
void mpq_ILLsimplex_load_lpinfo (mpq_ILLlpdata *qslp, mpq_lpinfo *lp)
int mpq_ILLsimplex_pivotin (mpq_lpinfo *lp, mpq_price_info *pinf, int rcnt, int *rlist, int pivot_opt, int *basis_mod)
int mpq_ILLsimplex_retest_dsolution (mpq_lpinfo *lp, mpq_price_info *p, int phase, mpq_feas_info *fi)
int mpq_ILLsimplex_retest_psolution (mpq_lpinfo *lp, mpq_price_info *p, int phase, mpq_feas_info *fi)
void mpq_ILLsimplex_set_bound (mpq_lpinfo *lp, const mpq_t *objbound, int sense)
int mpq_ILLsimplex_solution (mpq_lpinfo *lp, mpq_t *xz, mpq_t *piz, mpq_t *dz, mpq_t *objval)
void mpq_init_internal_lpinfo (mpq_lpinfo *lp)
static void mpq_init_lp_status_info (mpq_lp_status_info *ls)
static void mpq_init_simplex_tols (mpq_lpinfo *lp)
static void mpq_monitor_iter (mpq_lpinfo *lp, mpq_price_info *p, mpq_iter_info *it, int cphase)
static int mpq_primal_phaseI_step (mpq_lpinfo *lp, mpq_price_info *pinf, mpq_svector *updz, mpq_svector *wz, mpq_iter_info *it)
static int mpq_primal_phaseII_step (mpq_lpinfo *lp, mpq_price_info *pinf, mpq_svector *updz, mpq_svector *wz, mpq_iter_info *it)
static int mpq_report_value (mpq_lpinfo *lp, mpq_iter_info *it, const char *value_name, mpq_t value)
static void mpq_restore_paraminfo (mpq_iter_info *it, mpq_price_info *pinf)
static void mpq_save_paraminfo (mpq_price_info *pinf, mpq_iter_info *it)
static int mpq_terminate_simplex (mpq_lpinfo *lp, int phase, mpq_iter_info *it)
static int mpq_test_progress (mpq_t objval, mpq_t prevobj)

Variables

static int TRACE = 0


Define Documentation

#define mpq_QSOPT_CURRENT_PRECICION

Definition at line 26 of file mpq_simplex.c.


Function Documentation

int mpq_build_internal_lpinfo ( mpq_lpinfo lp  ) 

Definition at line 318 of file mpq_simplex.c.

References mpq_ILLlpdata::A, mpq_ILLlp_sinfo::A, mpq_lpinfo::basisstat, mpq_lpinfo::bz, mpq_lpinfo::cz, mpq_ILLlpdata::lower, mpq_ILLlp_sinfo::lower, mpq_lpinfo::lz, mpq_ILLmatrix::matbeg, mpq_lpinfo::matbeg, mpq_ILLmatrix::matcnt, mpq_lpinfo::matcnt, mpq_ILLmatrix::matind, mpq_lpinfo::matind, mpq_ILLmatrix::matval, mpq_lpinfo::matval, mpq_ILL_MAX, mpq_init_lp_status_info(), mpq_ILLlpdata::ncols, mpq_ILLlp_sinfo::ncols, mpq_lpinfo::ncols, mpq_lpinfo::nnbasic, mpq_ILLlpdata::nrows, mpq_ILLlp_sinfo::nrows, mpq_lpinfo::nrows, mpq_lpinfo::O, mpq_ILLlpdata::obj, mpq_ILLlp_sinfo::obj, mpq_ILLlpdata::objsense, mpq_lpinfo::probstat, mpq_ILLlpdata::rhs, mpq_ILLlp_sinfo::rhs, mpq_ILLlpdata::sinfo, mpq_ILLlpdata::upper, mpq_ILLlp_sinfo::upper, and mpq_lpinfo::uz.

Referenced by mpq_ILLsimplex(), QSexact_basis_dualstatus(), QSexact_basis_optimalstatus(), and QSexact_basis_status().

Here is the call graph for this function:

static int mpq_dual_phaseI_step ( mpq_lpinfo lp,
mpq_price_info pinf,
mpq_svector updz,
mpq_svector wz,
mpq_iter_info it 
)

Definition at line 2150 of file mpq_simplex.c.

References __QS_SB_VERB, mpq_iter_info::algorithm, CNT_DPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COMPLETE_PRICING, mpq_price_info::d_strategy, mpq_tol_struct::dfeas_tol, mpq_price_info::dI_price, mpq_lpinfo::dinfeas, mpq_price_res::dinfeas, mpq_feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, mpq_ratio_res::ecoeff, mpq_ratio_res::eindex, mpq_lpinfo::final_phase, mpq_tol_struct::id_tol, ILL_CLEANUP, ILL_LP_SOLVED, mpq_ratio_res::lbound, mpq_price_res::lindex, mpq_price_res::lvstat, mpq_ILLbasis_factor(), mpq_ILLbasis_update(), mpq_ILLfct_check_dfeasible(), mpq_ILLfct_compute_dpIy(), mpq_ILLfct_compute_dsteep_upv(), mpq_ILLfct_compute_dz(), mpq_ILLfct_compute_phaseI_xbz(), mpq_ILLfct_compute_piz(), mpq_ILLfct_compute_yz(), mpq_ILLfct_compute_zA(), mpq_ILLfct_compute_zz(), mpq_ILLfct_dual_adjust(), mpq_ILLfct_set_status_values(), mpq_ILLfct_test_pivot(), mpq_ILLfct_update_basis_info(), mpq_ILLfct_update_counts(), mpq_ILLfct_update_dfeas(), mpq_ILLfct_update_dpI_prices(), mpq_ILLfct_update_dz(), mpq_ILLfct_update_piz(), mpq_ILLprice_compute_primal_inf(), mpq_ILLprice_dual(), mpq_ILLprice_free_heap(), mpq_ILLprice_init_mpartial_price(), mpq_ILLprice_test_for_heap(), mpq_ILLprice_update_pricing_info(), mpq_ILLratio_dI_test(), mpq_ILLsimplex_retest_dsolution(), mpq_monitor_iter(), mpq_test_dsteep_norms(), mpq_test_progress(), MULTI_PART_PRICING, mpq_iter_info::n_pivot_fail, mpq_iter_info::n_restart, mpq_iter_info::newphase, mpq_iter_info::nextphase, mpq_iter_info::nextstep, mpq_iter_info::noprog, mpq_iter_info::nosolve, mpq_lpinfo::nrows, NULL, mpq_svector::nzcnt, PARAM_MAX_NOSOLVE, mpq_tol_struct::pfeas_tol, PHASEI, PHASEII, mpq_price_res::pinfeas, mpq_ratio_res::pivotval, mpq_iter_info::prevobj, PRICE_OPTIMAL, mpq_price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, mpq_feas_info::pstatus, QS_PRICE_DSTEEP, RATIO_BCHANGE, RATIO_FAILED, mpq_ratio_res::ratio_stat, mpq_iter_info::resumeid, ROW_PIVOT, ROW_PRICING, mpq_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, mpq_iter_info::solstatus, mpq_lpinfo::tol, mpq_feas_info::totinfeas, mpq_ratio_res::tz, VARTIFICIAL, VFREE, mpq_lpinfo::zA, and mpq_lpinfo::zz.

Referenced by mpq_ILLsimplex().

Here is the call graph for this function:

static int mpq_dual_phaseII_step ( mpq_lpinfo lp,
mpq_price_info pinf,
mpq_svector updz,
mpq_svector wz,
mpq_iter_info it 
)

Definition at line 2403 of file mpq_simplex.c.

References __QS_SB_VERB, mpq_iter_info::algorithm, mpq_lpinfo::baz, mpq_pI_uinfo::c_obj, CNT_DPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, mpq_ratio_res::coeffch, COMPLETE_PRICING, mpq_price_info::d_strategy, mpq_tol_struct::dfeas_tol, mpq_price_info::dII_price, mpq_price_res::dinfeas, mpq_lpinfo::dobjval, mpq_feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, DUAL_UNBOUNDED, mpq_ratio_res::ecoeff, mpq_ratio_res::eindex, mpq_lpinfo::final_phase, mpq_tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, mpq_lpinfo::infub_ix, mpq_tol_struct::ip_tol, mpq_ratio_res::lbound, mpq_price_res::lindex, mpq_price_res::lvstat, mpq_ILLbasis_factor(), mpq_ILLbasis_update(), mpq_ILLfct_adjust_viol_coefs(), mpq_ILLfct_check_dfeasible(), mpq_ILLfct_check_pfeasible(), mpq_ILLfct_coef_shift(), mpq_ILLfct_compute_dobj(), mpq_ILLfct_compute_dpIIy(), mpq_ILLfct_compute_dsteep_upv(), mpq_ILLfct_compute_dz(), mpq_ILLfct_compute_piz(), mpq_ILLfct_compute_xbz(), mpq_ILLfct_compute_yz(), mpq_ILLfct_compute_zA(), mpq_ILLfct_compute_zz(), mpq_ILLfct_dual_adjust(), mpq_ILLfct_set_status_values(), mpq_ILLfct_test_pivot(), mpq_ILLfct_unroll_coef_change(), mpq_ILLfct_update_basis_info(), mpq_ILLfct_update_counts(), mpq_ILLfct_update_dIIfeas(), mpq_ILLfct_update_dpII_prices(), mpq_ILLfct_update_dz(), mpq_ILLfct_update_piz(), mpq_ILLprice_compute_primal_inf(), mpq_ILLprice_dual(), mpq_ILLprice_free_heap(), mpq_ILLprice_init_mpartial_price(), mpq_ILLprice_test_for_heap(), mpq_ILLprice_update_pricing_info(), mpq_ILLratio_longdII_test(), mpq_ILLsimplex_retest_dsolution(), mpq_monitor_iter(), mpq_test_dsteep_norms(), mpq_test_progress(), MULTI_PART_PRICING, mpq_iter_info::n_pivot_fail, mpq_iter_info::n_restart, mpq_lpinfo::nbaz, mpq_lpinfo::ncchange, mpq_iter_info::newphase, mpq_iter_info::nextphase, mpq_iter_info::nextstep, mpq_iter_info::noprog, mpq_iter_info::nosolve, mpq_lpinfo::nrows, NULL, mpq_svector::nzcnt, mpq_lpinfo::objval, PARAM_MAX_NOSOLVE, mpq_tol_struct::pfeas_tol, PHASEII, mpq_price_res::pinfeas, mpq_ratio_res::pivotval, mpq_iter_info::prevobj, PRICE_OPTIMAL, mpq_price_res::price_stat, mpq_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, mpq_feas_info::pstatus, QS_LP_CHANGE_PREC, QS_PRICE_DSTEEP, QS_PRICE_PDEVEX, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, mpq_ratio_res::ratio_stat, RATIO_UNBOUNDED, mpq_iter_info::resumeid, ROW_PIVOT, ROW_PRICING, mpq_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, mpq_iter_info::solstatus, STAT_LOWER, STAT_ZERO, mpq_lpinfo::tol, mpq_feas_info::totinfeas, mpq_ratio_res::tz, mpq_lpinfo::upd, VARTIFICIAL, VFREE, mpq_lpinfo::vstat, mpq_lpinfo::vtype, mpq_lpinfo::yjz, mpq_lpinfo::zA, and mpq_lpinfo::zz.

Referenced by mpq_ILLsimplex().

Here is the call graph for this function:

void mpq_free_internal_lpinfo ( mpq_lpinfo lp  ) 

Definition at line 238 of file mpq_simplex.c.

References mpq_lpinfo::bchanges, mpq_lpinfo::bfeas, mpq_bndinfo::cbound, mpq_lpinfo::cchanges, mpq_coefinfo::ccoef, mpq_lpinfo::cnts, mpq_lpinfo::cz, mpq_lpinfo::dfeas, mpq_tol_struct::dfeas_tol, mpq_lpinfo::dz, mpq_tol_struct::id_tol, ILL_IFFREE, mpq_tol_struct::ip_tol, mpq_lpinfo::iwork, mpq_pI_uinfo::ix, mpq_lpinfo::localrows, mpq_lpinfo::lz, mpq_ILLsvector_free(), mpq_coefinfo::next, mpq_bndinfo::next, mpq_bndinfo::pbound, mpq_coefinfo::pcoef, mpq_pI_uinfo::perm, mpq_tol_struct::pfeas_tol, mpq_lpinfo::pIdz, mpq_lpinfo::pIpiz, mpq_tol_struct::pivot_tol, mpq_lpinfo::pIxbz, mpq_lpinfo::piz, mpq_lpinfo::rowbeg, mpq_lpinfo::rowcnt, mpq_lpinfo::rowind, mpq_lpinfo::rowval, mpq_lpinfo::srhs, mpq_lpinfo::ssoln, mpq_tol_struct::szero_tol, mpq_pI_uinfo::t, mpq_lpinfo::tol, mpq_lpinfo::upd, mpq_lpinfo::uz, mpq_lpinfo::vclass, mpq_lpinfo::vtype, mpq_lpinfo::work, mpq_lpinfo::xbz, mpq_count_struct::y_ravg, mpq_lpinfo::yjz, mpq_count_struct::z_ravg, mpq_lpinfo::zA, mpq_count_struct::za_ravg, and mpq_lpinfo::zz.

Referenced by mpq_ILLsimplex(), mpq_ILLsimplex_free_lpinfo(), QSexact_basis_dualstatus(), QSexact_basis_optimalstatus(), and QSexact_basis_status().

Here is the call graph for this function:

static void mpq_get_current_stat ( mpq_lp_status_info p,
int  algorithm,
int *  bstat 
)

Definition at line 2803 of file mpq_simplex.c.

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

Referenced by mpq_ILLsimplex().

int mpq_ILLsimplex ( mpq_lpinfo lp,
int  algorithm,
mpq_ILLlp_basis B,
mpq_price_info pinf,
int *  status,
int  sdisplay,
itcnt_t itcnt 
)

Definition at line 799 of file mpq_simplex.c.

References __QS_SB_VERB, mpq_iter_info::algorithm, mpq_lpinfo::basisid, mpq_lpinfo::basisstat, mpq_iter_info::chkobj, mpq_lpinfo::cnts, mpq_ILLlp_basis::colnorms, mpq_price_info::cur_price, mpq_iter_info::curtime, mpq_tol_struct::dfeas_tol, mpq_count_struct::dI_iter, itcnt_t::dI_iter, mpq_count_struct::dII_iter, itcnt_t::dII_iter, mpq_lpinfo::dinfeas, mpq_lpinfo::dobjval, mpq_price_info::dsinfo, mpq_feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, DUAL_UNBOUNDED, mpq_lp_status_info::dual_unbounded, mpq_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(), mpq_iter_info::inner, mpq_iter_info::itercnt, mpq_lpinfo::matcnt, mpq_build_internal_lpinfo(), mpq_dual_phaseI_step(), mpq_dual_phaseII_step(), mpq_free_internal_lpinfo(), mpq_get_current_stat(), mpq_ILLbasis_factor(), mpq_ILLbasis_get_cinitial(), mpq_ILLbasis_get_initial(), mpq_ILLbasis_load(), mpq_ILLfct_check_dfeasible(), mpq_ILLfct_check_pfeasible(), mpq_ILLfct_compute_dobj(), mpq_ILLfct_compute_dz(), mpq_ILLfct_compute_piz(), mpq_ILLfct_compute_pobj(), mpq_ILLfct_compute_xbz(), mpq_ILLfct_dual_adjust(), mpq_ILLfct_print_counts(), mpq_ILLfct_set_status_values(), mpq_ILLfct_set_variable_type(), mpq_ILLfct_unroll_bound_change(), mpq_ILLfct_unroll_coef_change(), mpq_ILLprice_build_pricing_info(), mpq_ILLprice_free_pricing_info(), mpq_ILLprice_get_price(), mpq_ILLprice_load_colnorms(), mpq_ILLprice_load_rownorms(), mpq_ILLsimplex_infcertificate(), mpq_ILLsvector_alloc(), mpq_ILLsvector_free(), mpq_ILLsvector_init(), mpq_INFTY, mpq_init_internal_lpinfo(), mpq_init_lp_status_info(), mpq_OBJBND_TOLER, mpq_primal_phaseI_step(), mpq_primal_phaseII_step(), mpq_restore_paraminfo(), mpq_save_paraminfo(), mpq_terminate_simplex(), mpq_iter_info::n_pivot_fail, mpq_iter_info::n_restart, mpq_lpinfo::ncols, mpq_iter_info::newphase, mpq_iter_info::nextphase, mpq_iter_info::nextstep, mpq_p_devex_info::ninit, mpq_iter_info::noprog, mpq_p_steep_info::norms, mpq_d_steep_info::norms, mpq_iter_info::nosolve, mpq_lpinfo::nrows, mpq_ILLlpdata::nrows, NULL, mpq_lpinfo::O, mpq_lpinfo::objbound, mpq_iter_info::objtol, mpq_lpinfo::objval, OPTIMAL, mpq_lp_status_info::optimal, PARAM_MAX_NOPROG, mpq_price_info::pdinfo, mpq_tol_struct::pfeas_tol, PHASEII, mpq_count_struct::pI_iter, itcnt_t::pI_iter, mpq_price_info::pI_price, mpq_count_struct::pII_iter, itcnt_t::pII_iter, mpq_lpinfo::pinfeas, mpq_lpinfo::pobjval, mpq_iter_info::prevobj, mpq_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, mpq_lp_status_info::primal_infeasible, PRIMAL_OR_DUAL, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, mpq_lp_status_info::primal_unbounded, mpq_ILLlpdata::probname, mpq_price_info::psinfo, mpq_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, mpq_ILLlpdata::reporter, mpq_iter_info::resumeid, mpq_iter_info::rounds, mpq_ILLlp_basis::rownorms, mpq_iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_MAX_RESTART, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_RESUME_UNSHIFT, mpq_iter_info::solstatus, mpq_lpinfo::starttime, mpq_lpinfo::tol, itcnt_t::tot_iter, and mpq_feas_info::totinfeas.

Here is the call graph for this function:

void mpq_ILLsimplex_free_lpinfo ( mpq_lpinfo lp  ) 

Definition at line 105 of file mpq_simplex.c.

References mpq_lpinfo::cz, mpq_lpinfo::lz, mpq_free_internal_lpinfo(), mpq_ILLbasis_free_basisinfo(), and mpq_lpinfo::uz.

Here is the call graph for this function:

int mpq_ILLsimplex_infcertificate ( mpq_lpinfo lp,
mpq_t *  pi 
)

Definition at line 651 of file mpq_simplex.c.

References mpq_lpinfo::basisstat, mpq_lpinfo::baz, mpq_svector::coef, DUAL_PHASEII, mpq_lp_status_info::dual_unbounded, mpq_lpinfo::final_phase, mpq_svector::indx, mpq_lpinfo::infub_ix, mpq_lpinfo::lz, mpq_NINFTY, mpq_lpinfo::nrows, NULL, mpq_svector::nzcnt, mpq_lpinfo::pIpiz, mpq_lp_status_info::primal_infeasible, PRIMAL_PHASEI, mpq_lpinfo::uz, mpq_lpinfo::xbz, and mpq_lpinfo::zz.

void mpq_ILLsimplex_init_lpinfo ( mpq_lpinfo lp  ) 

Definition at line 98 of file mpq_simplex.c.

References mpq_ILLbasis_init_basisinfo(), and mpq_init_internal_lpinfo().

Here is the call graph for this function:

void mpq_ILLsimplex_load_lpinfo ( mpq_ILLlpdata qslp,
mpq_lpinfo lp 
)

Definition at line 118 of file mpq_simplex.c.

References mpq_lpinfo::basisid, mpq_lpinfo::iterskip, mpq_lpinfo::maxiter, mpq_lpinfo::maxtime, mpq_INFTY, mpq_lpinfo::O, and mpq_lpinfo::objbound.

int mpq_ILLsimplex_pivotin ( mpq_lpinfo lp,
mpq_price_info pinf,
int  rcnt,
int *  rlist,
int  pivot_opt,
int *  basis_mod 
)

Definition at line 2834 of file mpq_simplex.c.

References mpq_ratio_res::ecoeff, ILL_SAFE_MALLOC, mpq_ratio_res::lbound, NULL, mpq_lpinfo::O, mpq_ratio_res::pivotval, mpq_ILLlpdata::rowmap, SIMPLEX_PIVOTINROW, STAT_BASIC, mpq_feas_info::totinfeas, mpq_ratio_res::tz, and mpq_lpinfo::vstat.

Referenced by mpq_QSopt_pivotin_col(), and mpq_QSopt_pivotin_row().

int mpq_ILLsimplex_retest_dsolution ( mpq_lpinfo lp,
mpq_price_info p,
int  phase,
mpq_feas_info fi 
)

Definition at line 518 of file mpq_simplex.c.

References mpq_lpinfo::basisid, COMPLETE_PRICING, mpq_price_info::d_strategy, mpq_tol_struct::dfeas_tol, mpq_feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, mpq_lpinfo::fbasisid, mpq_tol_struct::id_tol, mpq_tol_struct::ip_tol, mpq_ILLbasis_refactor(), mpq_ILLfct_check_dfeasible(), mpq_ILLfct_check_pfeasible(), mpq_ILLfct_check_pIpfeasible(), mpq_ILLfct_compute_dobj(), mpq_ILLfct_compute_dz(), mpq_ILLfct_compute_phaseI_xbz(), mpq_ILLfct_compute_piz(), mpq_ILLfct_compute_xbz(), mpq_ILLprice_compute_primal_inf(), mpq_ILLprice_update_mpartial_price(), NULL, PARAM_DUAL_REFACTORGAP, PARAM_DUAL_RESOLVEGAP, mpq_tol_struct::pfeas_tol, mpq_feas_info::pstatus, ROW_PRICING, and mpq_lpinfo::tol.

Here is the call graph for this function:

int mpq_ILLsimplex_retest_psolution ( mpq_lpinfo lp,
mpq_price_info p,
int  phase,
mpq_feas_info fi 
)

Definition at line 457 of file mpq_simplex.c.

References __QS_SB_VERB, mpq_lpinfo::basisid, COMPLETE_PRICING, mpq_tol_struct::dfeas_tol, mpq_feas_info::dstatus, mpq_lpinfo::fbasisid, mpq_tol_struct::id_tol, mpq_tol_struct::ip_tol, mpq_ILLbasis_refactor(), mpq_ILLfct_check_dfeasible(), mpq_ILLfct_check_pfeasible(), mpq_ILLfct_check_pIdfeasible(), mpq_ILLfct_compute_dz(), mpq_ILLfct_compute_phaseI_dz(), mpq_ILLfct_compute_phaseI_piz(), mpq_ILLfct_compute_piz(), mpq_ILLfct_compute_pobj(), mpq_ILLfct_compute_xbz(), mpq_ILLprice_compute_dual_inf(), NULL, mpq_price_info::p_strategy, PARAM_PRIMAL_REFACTORGAP, PARAM_PRIMAL_RESOLVEGAP, mpq_tol_struct::pfeas_tol, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, mpq_feas_info::pstatus, QS_LP_CHANGE_PREC, and mpq_lpinfo::tol.

Here is the call graph for this function:

void mpq_ILLsimplex_set_bound ( mpq_lpinfo lp,
const mpq_t *  objbound,
int  sense 
)

Definition at line 131 of file mpq_simplex.c.

References mpq_ILL_MAX, and mpq_lpinfo::objbound.

Referenced by mpq_QSchange_objsense(), and mpq_QSset_param_EGlpNum().

int mpq_ILLsimplex_solution ( mpq_lpinfo lp,
mpq_t *  xz,
mpq_t *  piz,
mpq_t *  dz,
mpq_t *  objval 
)

Definition at line 597 of file mpq_simplex.c.

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

void mpq_init_internal_lpinfo ( mpq_lpinfo lp  ) 

Definition at line 180 of file mpq_simplex.c.

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

Referenced by mpq_ILLsimplex(), mpq_ILLsimplex_init_lpinfo(), QSexact_basis_dualstatus(), QSexact_basis_optimalstatus(), and QSexact_basis_status().

Here is the call graph for this function:

static void mpq_init_lp_status_info ( mpq_lp_status_info ls  )  [static]

Definition at line 141 of file mpq_simplex.c.

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

Referenced by mpq_build_internal_lpinfo(), and mpq_ILLsimplex().

static void mpq_init_simplex_tols ( mpq_lpinfo lp  ) 

Definition at line 153 of file mpq_simplex.c.

References mpq_tol_struct::dfeas_tol, mpq_tol_struct::id_tol, mpq_tol_struct::ip_tol, mpq_DFEAS_TOLER, mpq_PFEAS_TOLER, mpq_PIVOT_TOLER, mpq_SZERO_TOLER, mpq_tol_struct::pfeas_tol, mpq_tol_struct::pivot_tol, mpq_tol_struct::szero_tol, mpq_lpinfo::tol, and VERBOSE_LEVEL.

static void mpq_monitor_iter ( mpq_lpinfo lp,
mpq_price_info p,
mpq_iter_info it,
int  cphase 
)

Definition at line 1336 of file mpq_simplex.c.

References __QS_SB_VERB, mpq_iter_info::algorithm, mpq_iter_info::chkobj, mpq_iter_info::curtime, mpq_tol_struct::dfeas_tol, mpq_lpinfo::dinfeas, mpq_lpinfo::dobjval, mpq_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(), mpq_iter_info::inner, mpq_iter_info::itercnt, mpq_lpinfo::maxiter, mpq_lpinfo::maxtime, mpq_ILLfct_check_dfeasible(), mpq_ILLfct_compute_dobj(), mpq_ILLfct_perturb_bounds(), mpq_ILLfct_perturb_coefs(), mpq_ILLfct_set_status_values(), mpq_ILLfct_unroll_coef_change(), mpq_ILLutil_our_floor(), mpq_INFTY, mpq_report_value(), mpq_restore_paraminfo(), mpq_iter_info::n_restart, mpq_iter_info::newphase, mpq_iter_info::nextphase, mpq_iter_info::nextstep, mpq_iter_info::noprog, mpq_lpinfo::objbound, mpq_iter_info::objtol, mpq_tol_struct::pfeas_tol, PHASEII, mpq_lpinfo::pinfeas, mpq_lpinfo::pobjval, mpq_iter_info::prevobj, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, mpq_iter_info::resumeid, mpq_iter_info::rounds, mpq_iter_info::sdisplay, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_TERMINATE, mpq_iter_info::solstatus, mpq_lpinfo::starttime, mpq_lpinfo::tol, and mpq_feas_info::totinfeas.

Referenced by mpq_dual_phaseI_step(), mpq_dual_phaseII_step(), mpq_primal_phaseI_step(), and mpq_primal_phaseII_step().

Here is the call graph for this function:

static int mpq_primal_phaseI_step ( mpq_lpinfo lp,
mpq_price_info pinf,
mpq_svector updz,
mpq_svector wz,
mpq_iter_info it 
)

Definition at line 1546 of file mpq_simplex.c.

References mpq_iter_info::algorithm, mpq_lpinfo::baz, mpq_pI_uinfo::c_obj, CNT_PPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, mpq_price_info::d_scaleinf, mpq_tol_struct::dfeas_tol, mpq_price_res::dinfeas, mpq_price_res::dir, mpq_feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, mpq_ratio_res::ecoeff, mpq_price_res::eindex, mpq_lpinfo::final_phase, ILL_CLEANUP, ILL_IFTRACE2, ILL_LP_SOLVED, mpq_tol_struct::ip_tol, mpq_ratio_res::lbound, mpq_ratio_res::lindex, mpq_ratio_res::lvstat, mpq_ILLbasis_update(), mpq_ILLfct_check_pfeasible(), mpq_ILLfct_compute_phaseI_dz(), mpq_ILLfct_compute_phaseI_piz(), mpq_ILLfct_compute_ppIzz(), mpq_ILLfct_compute_psteep_upv(), mpq_ILLfct_compute_xbz(), mpq_ILLfct_compute_yz(), mpq_ILLfct_compute_zA(), mpq_ILLfct_compute_zz(), mpq_ILLfct_set_status_values(), mpq_ILLfct_update_basis_info(), mpq_ILLfct_update_counts(), mpq_ILLfct_update_pfeas(), mpq_ILLfct_update_ppI_prices(), mpq_ILLfct_update_xz(), mpq_ILLprice_compute_dual_inf(), mpq_ILLprice_free_heap(), mpq_ILLprice_init_mpartial_price(), mpq_ILLprice_primal(), mpq_ILLprice_test_for_heap(), mpq_ILLprice_update_pricing_info(), mpq_ILLratio_pI_test(), mpq_ILLsimplex_retest_psolution(), mpq_monitor_iter(), mpq_test_progress(), MULTI_PART_PRICING, mpq_iter_info::n_restart, mpq_lpinfo::nbaz, mpq_iter_info::newphase, mpq_iter_info::nextphase, mpq_iter_info::nextstep, mpq_lpinfo::nnbasic, mpq_iter_info::noprog, mpq_iter_info::nosolve, mpq_lpinfo::nrows, NULL, mpq_svector::nzcnt, mpq_price_info::p_strategy, PARAM_MAX_NOSOLVE, mpq_tol_struct::pfeas_tol, PHASEI, PHASEII, mpq_price_info::pI_price, mpq_lpinfo::pIdz, mpq_lpinfo::pinfeas, mpq_price_res::pinfeas, mpq_lpinfo::pIpiz, mpq_ratio_res::pivotval, mpq_iter_info::prevobj, PRICE_OPTIMAL, mpq_price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, mpq_feas_info::pstatus, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, RATIO_NOBCHANGE, mpq_ratio_res::ratio_stat, mpq_iter_info::resumeid, mpq_iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_PHASE_RECOMP, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_TERMINATE, mpq_iter_info::solstatus, mpq_lpinfo::srhs, mpq_lpinfo::ssoln, mpq_lpinfo::tol, mpq_feas_info::totinfeas, mpq_ratio_res::tz, mpq_lpinfo::upd, VARTIFICIAL, VFREE, mpq_lpinfo::vtype, mpq_lpinfo::yjz, and mpq_lpinfo::zz.

Referenced by mpq_ILLsimplex().

Here is the call graph for this function:

static int mpq_primal_phaseII_step ( mpq_lpinfo lp,
mpq_price_info pinf,
mpq_svector updz,
mpq_svector wz,
mpq_iter_info it 
)

Definition at line 1826 of file mpq_simplex.c.

References mpq_iter_info::algorithm, mpq_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, mpq_ratio_res::boundch, CNT_PPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZARAVG, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, mpq_price_info::d_scaleinf, mpq_tol_struct::dfeas_tol, mpq_lpinfo::dinfeas, mpq_price_res::dinfeas, mpq_price_res::dir, mpq_feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, mpq_lpinfo::dz, mpq_ratio_res::ecoeff, mpq_price_res::eindex, mpq_lpinfo::final_phase, mpq_tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, mpq_tol_struct::ip_tol, mpq_ratio_res::lbound, mpq_ratio_res::lindex, mpq_ratio_res::lvstat, mpq_ILLbasis_update(), mpq_ILLfct_bound_shift(), mpq_ILLfct_check_dfeasible(), mpq_ILLfct_check_pfeasible(), mpq_ILLfct_compute_dz(), mpq_ILLfct_compute_piz(), mpq_ILLfct_compute_pobj(), mpq_ILLfct_compute_psteep_upv(), mpq_ILLfct_compute_xbz(), mpq_ILLfct_compute_yz(), mpq_ILLfct_compute_zA(), mpq_ILLfct_compute_zz(), mpq_ILLfct_set_status_values(), mpq_ILLfct_unroll_bound_change(), mpq_ILLfct_update_basis_info(), mpq_ILLfct_update_counts(), mpq_ILLfct_update_dz(), mpq_ILLfct_update_piz(), mpq_ILLfct_update_xz(), mpq_ILLprice_compute_dual_inf(), mpq_ILLprice_free_heap(), mpq_ILLprice_init_mpartial_price(), mpq_ILLprice_primal(), mpq_ILLprice_test_for_heap(), mpq_ILLprice_update_mpartial_price(), mpq_ILLprice_update_pricing_info(), mpq_ILLratio_pII_test(), mpq_ILLsimplex_retest_psolution(), mpq_monitor_iter(), mpq_test_progress(), MULTI_PART_PRICING, mpq_iter_info::n_restart, mpq_lpinfo::nbaz, mpq_lpinfo::nbchange, mpq_iter_info::newphase, mpq_iter_info::nextphase, mpq_iter_info::nextstep, mpq_iter_info::noprog, mpq_iter_info::nosolve, NULL, mpq_svector::nzcnt, mpq_lpinfo::objval, mpq_price_info::p_strategy, PARAM_MAX_NOSOLVE, mpq_tol_struct::pfeas_tol, PHASEII, mpq_price_info::pII_price, mpq_price_res::pinfeas, mpq_ratio_res::pivotval, mpq_lpinfo::pobjval, mpq_iter_info::prevobj, PRICE_OPTIMAL, mpq_price_res::price_stat, mpq_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, mpq_feas_info::pstatus, QS_PRICE_DDEVEX, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NOBCHANGE, mpq_ratio_res::ratio_stat, RATIO_UNBOUNDED, mpq_iter_info::resumeid, mpq_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, mpq_iter_info::solstatus, STAT_UPPER, mpq_lpinfo::tol, mpq_feas_info::totinfeas, mpq_ratio_res::tz, VARTIFICIAL, VFREE, mpq_lpinfo::vtype, mpq_lpinfo::yjz, and mpq_lpinfo::zz.

Referenced by mpq_ILLsimplex().

Here is the call graph for this function:

static int mpq_report_value ( mpq_lpinfo lp,
mpq_iter_info it,
const char *  value_name,
mpq_t  value 
)

Definition at line 3011 of file mpq_simplex.c.

References ILLstring_report, mpq_iter_info::itercnt, mpq_lpinfo::iterskip, NULL, mpq_lpinfo::O, QS_LP_ABORTED, mpq_ILLlpdata::reporter, mpq_iter_info::sdisplay, and mpq_iter_info::solstatus.

Referenced by mpq_monitor_iter().

static void mpq_restore_paraminfo ( mpq_iter_info it,
mpq_price_info pinf 
) [static]

Definition at line 784 of file mpq_simplex.c.

References mpq_iter_info::algorithm, mpq_param_info::d_strategy, mpq_price_info::d_strategy, mpq_price_info::dI_price, mpq_price_info::dII_price, mpq_param_info::dphaseI, mpq_param_info::dphaseII, mpq_iter_info::oldinfo, mpq_param_info::origalgo, mpq_param_info::p_strategy, mpq_price_info::p_strategy, mpq_price_info::pI_price, mpq_price_info::pII_price, mpq_param_info::pphaseI, and mpq_param_info::pphaseII.

Referenced by mpq_ILLsimplex(), and mpq_monitor_iter().

static void mpq_save_paraminfo ( mpq_price_info pinf,
mpq_iter_info it 
) [static]

Definition at line 769 of file mpq_simplex.c.

References mpq_iter_info::algorithm, mpq_price_info::d_strategy, mpq_param_info::d_strategy, mpq_price_info::dI_price, mpq_price_info::dII_price, mpq_param_info::dphaseI, mpq_param_info::dphaseII, mpq_iter_info::oldinfo, mpq_param_info::origalgo, mpq_price_info::p_strategy, mpq_param_info::p_strategy, mpq_price_info::pI_price, mpq_price_info::pII_price, mpq_param_info::pphaseI, and mpq_param_info::pphaseII.

Referenced by mpq_ILLsimplex().

static int mpq_terminate_simplex ( mpq_lpinfo lp,
int  phase,
mpq_iter_info it 
) [static]

Definition at line 1260 of file mpq_simplex.c.

References mpq_iter_info::algorithm, mpq_feas_info::dstatus, DUAL_PHASEI, DUAL_SIMPLEX, ILL_CLEANUP, ILL_MAX_ITER, ILL_MAX_TIME, mpq_ILLfct_set_status_values(), mpq_ILLfct_unroll_bound_change(), mpq_ILLfct_unroll_coef_change(), mpq_ILLsimplex_retest_dsolution(), mpq_ILLsimplex_retest_psolution(), mpq_lpinfo::nbchange, mpq_lpinfo::ncchange, NULL, PHASEI, PHASEII, PRIMAL_PHASEI, PRIMAL_SIMPLEX, mpq_feas_info::pstatus, mpq_iter_info::sdisplay, mpq_iter_info::solstatus, and mpq_feas_info::totinfeas.

Referenced by mpq_ILLsimplex().

Here is the call graph for this function:

static int mpq_test_progress ( mpq_t  objval,
mpq_t  prevobj 
) [static]

Definition at line 1314 of file mpq_simplex.c.

References mpq_PROGRESS_THRESH, and mpq_PROGRESS_ZERO.

Referenced by mpq_dual_phaseI_step(), mpq_dual_phaseII_step(), mpq_primal_phaseI_step(), and mpq_primal_phaseII_step().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file mpq_simplex.c.


Generated on Thu Mar 29 09:45:07 2012 for QSopt_ex by  doxygen 1.4.7