mpf_simplex.c File Reference

#include "basicdefs.h"
#include "config.h"
#include "mpf_iqsutil.h"
#include "mpf_lpdata.h"
#include "mpf_lpdefs.h"
#include "stddefs.h"
#include "mpf_fct.h"
#include "mpf_ratio.h"
#include "mpf_price.h"
#include "mpf_basis.h"
#include "mpf_simplex.h"
#include "mpf_dstruct.h"
#include "mpf_qstruct.h"
#include "mpf_qsopt.h"
#include "mpf_lib.h"
#include "mpf_lp.h"

Include dependency graph for mpf_simplex.c:

Go to the source code of this file.

Defines

#define mpf_QSOPT_CURRENT_PRECICION

Functions

int mpf_build_internal_lpinfo (mpf_lpinfo *lp)
static int mpf_dual_phaseI_step (mpf_lpinfo *lp, mpf_price_info *pinf, mpf_svector *updz, mpf_svector *wz, mpf_iter_info *it)
static int mpf_dual_phaseII_step (mpf_lpinfo *lp, mpf_price_info *pinf, mpf_svector *updz, mpf_svector *wz, mpf_iter_info *it)
void mpf_free_internal_lpinfo (mpf_lpinfo *lp)
static void mpf_get_current_stat (mpf_lp_status_info *p, int algorithm, int *bstat)
int mpf_ILLsimplex (mpf_lpinfo *lp, int algorithm, mpf_ILLlp_basis *B, mpf_price_info *pinf, int *status, int sdisplay, itcnt_t *itcnt)
void mpf_ILLsimplex_free_lpinfo (mpf_lpinfo *lp)
int mpf_ILLsimplex_infcertificate (mpf_lpinfo *lp, mpf_t *pi)
void mpf_ILLsimplex_init_lpinfo (mpf_lpinfo *lp)
void mpf_ILLsimplex_load_lpinfo (mpf_ILLlpdata *qslp, mpf_lpinfo *lp)
int mpf_ILLsimplex_pivotin (mpf_lpinfo *lp, mpf_price_info *pinf, int rcnt, int *rlist, int pivot_opt, int *basis_mod)
int mpf_ILLsimplex_retest_dsolution (mpf_lpinfo *lp, mpf_price_info *p, int phase, mpf_feas_info *fi)
int mpf_ILLsimplex_retest_psolution (mpf_lpinfo *lp, mpf_price_info *p, int phase, mpf_feas_info *fi)
void mpf_ILLsimplex_set_bound (mpf_lpinfo *lp, const mpf_t *objbound, int sense)
int mpf_ILLsimplex_solution (mpf_lpinfo *lp, mpf_t *xz, mpf_t *piz, mpf_t *dz, mpf_t *objval)
void mpf_init_internal_lpinfo (mpf_lpinfo *lp)
static void mpf_init_lp_status_info (mpf_lp_status_info *ls)
static void mpf_init_simplex_tols (mpf_lpinfo *lp)
static void mpf_monitor_iter (mpf_lpinfo *lp, mpf_price_info *p, mpf_iter_info *it, int cphase)
static int mpf_primal_phaseI_step (mpf_lpinfo *lp, mpf_price_info *pinf, mpf_svector *updz, mpf_svector *wz, mpf_iter_info *it)
static int mpf_primal_phaseII_step (mpf_lpinfo *lp, mpf_price_info *pinf, mpf_svector *updz, mpf_svector *wz, mpf_iter_info *it)
static int mpf_report_value (mpf_lpinfo *lp, mpf_iter_info *it, const char *value_name, mpf_t value)
static void mpf_restore_paraminfo (mpf_iter_info *it, mpf_price_info *pinf)
static void mpf_save_paraminfo (mpf_price_info *pinf, mpf_iter_info *it)
static int mpf_terminate_simplex (mpf_lpinfo *lp, int phase, mpf_iter_info *it)
static int mpf_test_progress (mpf_t objval, mpf_t prevobj)

Variables

static int TRACE = 0


Define Documentation

#define mpf_QSOPT_CURRENT_PRECICION

Definition at line 26 of file mpf_simplex.c.


Function Documentation

int mpf_build_internal_lpinfo ( mpf_lpinfo lp  ) 

Definition at line 318 of file mpf_simplex.c.

References mpf_ILLlpdata::A, mpf_ILLlp_sinfo::A, mpf_lpinfo::basisstat, mpf_lpinfo::bz, mpf_lpinfo::cz, mpf_ILLlpdata::lower, mpf_ILLlp_sinfo::lower, mpf_lpinfo::lz, mpf_ILLmatrix::matbeg, mpf_lpinfo::matbeg, mpf_ILLmatrix::matcnt, mpf_lpinfo::matcnt, mpf_ILLmatrix::matind, mpf_lpinfo::matind, mpf_ILLmatrix::matval, mpf_lpinfo::matval, mpf_ILL_MAX, mpf_init_lp_status_info(), mpf_ILLlpdata::ncols, mpf_ILLlp_sinfo::ncols, mpf_lpinfo::ncols, mpf_lpinfo::nnbasic, mpf_ILLlpdata::nrows, mpf_ILLlp_sinfo::nrows, mpf_lpinfo::nrows, mpf_lpinfo::O, mpf_ILLlpdata::obj, mpf_ILLlp_sinfo::obj, mpf_ILLlpdata::objsense, mpf_lpinfo::probstat, mpf_ILLlpdata::rhs, mpf_ILLlp_sinfo::rhs, mpf_ILLlpdata::sinfo, mpf_ILLlpdata::upper, mpf_ILLlp_sinfo::upper, and mpf_lpinfo::uz.

Referenced by mpf_ILLsimplex().

Here is the call graph for this function:

static int mpf_dual_phaseI_step ( mpf_lpinfo lp,
mpf_price_info pinf,
mpf_svector updz,
mpf_svector wz,
mpf_iter_info it 
)

Definition at line 2150 of file mpf_simplex.c.

References __QS_SB_VERB, mpf_iter_info::algorithm, CNT_DPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COMPLETE_PRICING, mpf_price_info::d_strategy, mpf_tol_struct::dfeas_tol, mpf_price_info::dI_price, mpf_lpinfo::dinfeas, mpf_price_res::dinfeas, mpf_feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, mpf_ratio_res::ecoeff, mpf_ratio_res::eindex, mpf_lpinfo::final_phase, mpf_tol_struct::id_tol, ILL_CLEANUP, ILL_LP_SOLVED, mpf_ratio_res::lbound, mpf_price_res::lindex, mpf_price_res::lvstat, mpf_ILLbasis_factor(), mpf_ILLbasis_update(), mpf_ILLfct_check_dfeasible(), mpf_ILLfct_compute_dpIy(), mpf_ILLfct_compute_dsteep_upv(), mpf_ILLfct_compute_dz(), mpf_ILLfct_compute_phaseI_xbz(), mpf_ILLfct_compute_piz(), mpf_ILLfct_compute_yz(), mpf_ILLfct_compute_zA(), mpf_ILLfct_compute_zz(), mpf_ILLfct_dual_adjust(), mpf_ILLfct_set_status_values(), mpf_ILLfct_test_pivot(), mpf_ILLfct_update_basis_info(), mpf_ILLfct_update_counts(), mpf_ILLfct_update_dfeas(), mpf_ILLfct_update_dpI_prices(), mpf_ILLfct_update_dz(), mpf_ILLfct_update_piz(), mpf_ILLprice_compute_primal_inf(), mpf_ILLprice_dual(), mpf_ILLprice_free_heap(), mpf_ILLprice_init_mpartial_price(), mpf_ILLprice_test_for_heap(), mpf_ILLprice_update_pricing_info(), mpf_ILLratio_dI_test(), mpf_ILLsimplex_retest_dsolution(), mpf_monitor_iter(), mpf_test_dsteep_norms(), mpf_test_progress(), MULTI_PART_PRICING, mpf_iter_info::n_pivot_fail, mpf_iter_info::n_restart, mpf_iter_info::newphase, mpf_iter_info::nextphase, mpf_iter_info::nextstep, mpf_iter_info::noprog, mpf_iter_info::nosolve, mpf_lpinfo::nrows, NULL, mpf_svector::nzcnt, PARAM_MAX_NOSOLVE, mpf_tol_struct::pfeas_tol, PHASEI, PHASEII, mpf_price_res::pinfeas, mpf_ratio_res::pivotval, mpf_iter_info::prevobj, PRICE_OPTIMAL, mpf_price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, mpf_feas_info::pstatus, QS_PRICE_DSTEEP, RATIO_BCHANGE, RATIO_FAILED, mpf_ratio_res::ratio_stat, mpf_iter_info::resumeid, ROW_PIVOT, ROW_PRICING, mpf_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, mpf_iter_info::solstatus, mpf_lpinfo::tol, mpf_feas_info::totinfeas, mpf_ratio_res::tz, VARTIFICIAL, VFREE, mpf_lpinfo::zA, and mpf_lpinfo::zz.

Referenced by mpf_ILLsimplex().

Here is the call graph for this function:

static int mpf_dual_phaseII_step ( mpf_lpinfo lp,
mpf_price_info pinf,
mpf_svector updz,
mpf_svector wz,
mpf_iter_info it 
)

Definition at line 2403 of file mpf_simplex.c.

References __QS_SB_VERB, mpf_iter_info::algorithm, mpf_lpinfo::baz, mpf_pI_uinfo::c_obj, CNT_DPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, mpf_ratio_res::coeffch, COMPLETE_PRICING, mpf_price_info::d_strategy, mpf_tol_struct::dfeas_tol, mpf_price_info::dII_price, mpf_price_res::dinfeas, mpf_lpinfo::dobjval, mpf_feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, DUAL_UNBOUNDED, mpf_ratio_res::ecoeff, mpf_ratio_res::eindex, mpf_lpinfo::final_phase, mpf_tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, mpf_lpinfo::infub_ix, mpf_tol_struct::ip_tol, mpf_ratio_res::lbound, mpf_price_res::lindex, mpf_price_res::lvstat, mpf_ILLbasis_factor(), mpf_ILLbasis_update(), mpf_ILLfct_adjust_viol_coefs(), mpf_ILLfct_check_dfeasible(), mpf_ILLfct_check_pfeasible(), mpf_ILLfct_coef_shift(), mpf_ILLfct_compute_dobj(), mpf_ILLfct_compute_dpIIy(), mpf_ILLfct_compute_dsteep_upv(), mpf_ILLfct_compute_dz(), mpf_ILLfct_compute_piz(), mpf_ILLfct_compute_xbz(), mpf_ILLfct_compute_yz(), mpf_ILLfct_compute_zA(), mpf_ILLfct_compute_zz(), mpf_ILLfct_dual_adjust(), mpf_ILLfct_set_status_values(), mpf_ILLfct_test_pivot(), mpf_ILLfct_unroll_coef_change(), mpf_ILLfct_update_basis_info(), mpf_ILLfct_update_counts(), mpf_ILLfct_update_dIIfeas(), mpf_ILLfct_update_dpII_prices(), mpf_ILLfct_update_dz(), mpf_ILLfct_update_piz(), mpf_ILLprice_compute_primal_inf(), mpf_ILLprice_dual(), mpf_ILLprice_free_heap(), mpf_ILLprice_init_mpartial_price(), mpf_ILLprice_test_for_heap(), mpf_ILLprice_update_pricing_info(), mpf_ILLratio_longdII_test(), mpf_ILLsimplex_retest_dsolution(), mpf_monitor_iter(), mpf_test_dsteep_norms(), mpf_test_progress(), MULTI_PART_PRICING, mpf_iter_info::n_pivot_fail, mpf_iter_info::n_restart, mpf_lpinfo::nbaz, mpf_lpinfo::ncchange, mpf_iter_info::newphase, mpf_iter_info::nextphase, mpf_iter_info::nextstep, mpf_iter_info::noprog, mpf_iter_info::nosolve, mpf_lpinfo::nrows, NULL, mpf_svector::nzcnt, mpf_lpinfo::objval, PARAM_MAX_NOSOLVE, mpf_tol_struct::pfeas_tol, PHASEII, mpf_price_res::pinfeas, mpf_ratio_res::pivotval, mpf_iter_info::prevobj, PRICE_OPTIMAL, mpf_price_res::price_stat, mpf_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, mpf_feas_info::pstatus, QS_LP_CHANGE_PREC, QS_PRICE_DSTEEP, QS_PRICE_PDEVEX, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, mpf_ratio_res::ratio_stat, RATIO_UNBOUNDED, mpf_iter_info::resumeid, ROW_PIVOT, ROW_PRICING, mpf_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, mpf_iter_info::solstatus, STAT_LOWER, STAT_ZERO, mpf_lpinfo::tol, mpf_feas_info::totinfeas, mpf_ratio_res::tz, mpf_lpinfo::upd, VARTIFICIAL, VFREE, mpf_lpinfo::vstat, mpf_lpinfo::vtype, mpf_lpinfo::yjz, mpf_lpinfo::zA, and mpf_lpinfo::zz.

Referenced by mpf_ILLsimplex().

Here is the call graph for this function:

void mpf_free_internal_lpinfo ( mpf_lpinfo lp  ) 

Definition at line 238 of file mpf_simplex.c.

References mpf_lpinfo::bchanges, mpf_lpinfo::bfeas, mpf_bndinfo::cbound, mpf_lpinfo::cchanges, mpf_coefinfo::ccoef, mpf_lpinfo::cnts, mpf_lpinfo::cz, mpf_lpinfo::dfeas, mpf_tol_struct::dfeas_tol, mpf_lpinfo::dz, mpf_tol_struct::id_tol, ILL_IFFREE, mpf_tol_struct::ip_tol, mpf_lpinfo::iwork, mpf_pI_uinfo::ix, mpf_lpinfo::localrows, mpf_lpinfo::lz, mpf_ILLsvector_free(), mpf_coefinfo::next, mpf_bndinfo::next, mpf_bndinfo::pbound, mpf_coefinfo::pcoef, mpf_pI_uinfo::perm, mpf_tol_struct::pfeas_tol, mpf_lpinfo::pIdz, mpf_lpinfo::pIpiz, mpf_tol_struct::pivot_tol, mpf_lpinfo::pIxbz, mpf_lpinfo::piz, mpf_lpinfo::rowbeg, mpf_lpinfo::rowcnt, mpf_lpinfo::rowind, mpf_lpinfo::rowval, mpf_lpinfo::srhs, mpf_lpinfo::ssoln, mpf_tol_struct::szero_tol, mpf_pI_uinfo::t, mpf_lpinfo::tol, mpf_lpinfo::upd, mpf_lpinfo::uz, mpf_lpinfo::vclass, mpf_lpinfo::vtype, mpf_lpinfo::work, mpf_lpinfo::xbz, mpf_count_struct::y_ravg, mpf_lpinfo::yjz, mpf_count_struct::z_ravg, mpf_lpinfo::zA, mpf_count_struct::za_ravg, and mpf_lpinfo::zz.

Referenced by mpf_ILLsimplex(), and mpf_ILLsimplex_free_lpinfo().

Here is the call graph for this function:

static void mpf_get_current_stat ( mpf_lp_status_info p,
int  algorithm,
int *  bstat 
)

Definition at line 2803 of file mpf_simplex.c.

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

Referenced by mpf_ILLsimplex().

int mpf_ILLsimplex ( mpf_lpinfo lp,
int  algorithm,
mpf_ILLlp_basis B,
mpf_price_info pinf,
int *  status,
int  sdisplay,
itcnt_t itcnt 
)

Definition at line 799 of file mpf_simplex.c.

References __QS_SB_VERB, mpf_iter_info::algorithm, mpf_lpinfo::basisid, mpf_lpinfo::basisstat, mpf_iter_info::chkobj, mpf_lpinfo::cnts, mpf_ILLlp_basis::colnorms, mpf_price_info::cur_price, mpf_iter_info::curtime, mpf_tol_struct::dfeas_tol, mpf_count_struct::dI_iter, itcnt_t::dI_iter, mpf_count_struct::dII_iter, itcnt_t::dII_iter, mpf_lpinfo::dinfeas, mpf_lpinfo::dobjval, mpf_price_info::dsinfo, mpf_feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, DUAL_UNBOUNDED, mpf_lp_status_info::dual_unbounded, mpf_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(), mpf_iter_info::inner, mpf_iter_info::itercnt, mpf_lpinfo::matcnt, mpf_build_internal_lpinfo(), mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_free_internal_lpinfo(), mpf_get_current_stat(), mpf_ILLbasis_factor(), mpf_ILLbasis_get_cinitial(), mpf_ILLbasis_get_initial(), mpf_ILLbasis_load(), mpf_ILLfct_check_dfeasible(), mpf_ILLfct_check_pfeasible(), mpf_ILLfct_compute_dobj(), mpf_ILLfct_compute_dz(), mpf_ILLfct_compute_piz(), mpf_ILLfct_compute_pobj(), mpf_ILLfct_compute_xbz(), mpf_ILLfct_dual_adjust(), mpf_ILLfct_print_counts(), mpf_ILLfct_set_status_values(), mpf_ILLfct_set_variable_type(), mpf_ILLfct_unroll_bound_change(), mpf_ILLfct_unroll_coef_change(), mpf_ILLprice_build_pricing_info(), mpf_ILLprice_free_pricing_info(), mpf_ILLprice_get_price(), mpf_ILLprice_load_colnorms(), mpf_ILLprice_load_rownorms(), mpf_ILLsimplex_infcertificate(), mpf_ILLsvector_alloc(), mpf_ILLsvector_free(), mpf_ILLsvector_init(), mpf_INFTY, mpf_init_internal_lpinfo(), mpf_init_lp_status_info(), mpf_OBJBND_TOLER, mpf_primal_phaseI_step(), mpf_primal_phaseII_step(), mpf_restore_paraminfo(), mpf_save_paraminfo(), mpf_terminate_simplex(), mpf_iter_info::n_pivot_fail, mpf_iter_info::n_restart, mpf_lpinfo::ncols, mpf_iter_info::newphase, mpf_iter_info::nextphase, mpf_iter_info::nextstep, mpf_p_devex_info::ninit, mpf_iter_info::noprog, mpf_p_steep_info::norms, mpf_d_steep_info::norms, mpf_iter_info::nosolve, mpf_lpinfo::nrows, mpf_ILLlpdata::nrows, NULL, mpf_lpinfo::O, mpf_lpinfo::objbound, mpf_iter_info::objtol, mpf_lpinfo::objval, OPTIMAL, mpf_lp_status_info::optimal, PARAM_MAX_NOPROG, mpf_price_info::pdinfo, mpf_tol_struct::pfeas_tol, PHASEII, mpf_count_struct::pI_iter, itcnt_t::pI_iter, mpf_price_info::pI_price, mpf_count_struct::pII_iter, itcnt_t::pII_iter, mpf_lpinfo::pinfeas, mpf_lpinfo::pobjval, mpf_iter_info::prevobj, mpf_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, mpf_lp_status_info::primal_infeasible, PRIMAL_OR_DUAL, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, mpf_lp_status_info::primal_unbounded, mpf_ILLlpdata::probname, mpf_price_info::psinfo, mpf_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, mpf_ILLlpdata::reporter, mpf_iter_info::resumeid, mpf_iter_info::rounds, mpf_ILLlp_basis::rownorms, mpf_iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_MAX_RESTART, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_RESUME_UNSHIFT, mpf_iter_info::solstatus, mpf_lpinfo::starttime, mpf_lpinfo::tol, itcnt_t::tot_iter, and mpf_feas_info::totinfeas.

Here is the call graph for this function:

void mpf_ILLsimplex_free_lpinfo ( mpf_lpinfo lp  ) 

Definition at line 105 of file mpf_simplex.c.

References mpf_lpinfo::cz, mpf_lpinfo::lz, mpf_free_internal_lpinfo(), mpf_ILLbasis_free_basisinfo(), and mpf_lpinfo::uz.

Here is the call graph for this function:

int mpf_ILLsimplex_infcertificate ( mpf_lpinfo lp,
mpf_t *  pi 
)

Definition at line 651 of file mpf_simplex.c.

References mpf_lpinfo::basisstat, mpf_lpinfo::baz, mpf_svector::coef, DUAL_PHASEII, mpf_lp_status_info::dual_unbounded, mpf_lpinfo::final_phase, mpf_svector::indx, mpf_lpinfo::infub_ix, mpf_lpinfo::lz, mpf_NINFTY, mpf_lpinfo::nrows, NULL, mpf_svector::nzcnt, mpf_lpinfo::pIpiz, mpf_lp_status_info::primal_infeasible, PRIMAL_PHASEI, mpf_lpinfo::uz, mpf_lpinfo::xbz, and mpf_lpinfo::zz.

void mpf_ILLsimplex_init_lpinfo ( mpf_lpinfo lp  ) 

Definition at line 98 of file mpf_simplex.c.

References mpf_ILLbasis_init_basisinfo(), and mpf_init_internal_lpinfo().

Here is the call graph for this function:

void mpf_ILLsimplex_load_lpinfo ( mpf_ILLlpdata qslp,
mpf_lpinfo lp 
)

Definition at line 118 of file mpf_simplex.c.

References mpf_lpinfo::basisid, mpf_lpinfo::iterskip, mpf_lpinfo::maxiter, mpf_lpinfo::maxtime, mpf_INFTY, mpf_lpinfo::O, and mpf_lpinfo::objbound.

int mpf_ILLsimplex_pivotin ( mpf_lpinfo lp,
mpf_price_info pinf,
int  rcnt,
int *  rlist,
int  pivot_opt,
int *  basis_mod 
)

Definition at line 2834 of file mpf_simplex.c.

References mpf_ratio_res::ecoeff, ILL_SAFE_MALLOC, mpf_ratio_res::lbound, NULL, mpf_lpinfo::O, mpf_ratio_res::pivotval, mpf_ILLlpdata::rowmap, SIMPLEX_PIVOTINROW, STAT_BASIC, mpf_feas_info::totinfeas, mpf_ratio_res::tz, and mpf_lpinfo::vstat.

Referenced by mpf_QSopt_pivotin_col(), and mpf_QSopt_pivotin_row().

int mpf_ILLsimplex_retest_dsolution ( mpf_lpinfo lp,
mpf_price_info p,
int  phase,
mpf_feas_info fi 
)

Definition at line 518 of file mpf_simplex.c.

References mpf_lpinfo::basisid, COMPLETE_PRICING, mpf_price_info::d_strategy, mpf_tol_struct::dfeas_tol, mpf_feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, mpf_lpinfo::fbasisid, mpf_tol_struct::id_tol, mpf_tol_struct::ip_tol, mpf_ILLbasis_refactor(), mpf_ILLfct_check_dfeasible(), mpf_ILLfct_check_pfeasible(), mpf_ILLfct_check_pIpfeasible(), mpf_ILLfct_compute_dobj(), mpf_ILLfct_compute_dz(), mpf_ILLfct_compute_phaseI_xbz(), mpf_ILLfct_compute_piz(), mpf_ILLfct_compute_xbz(), mpf_ILLprice_compute_primal_inf(), mpf_ILLprice_update_mpartial_price(), NULL, PARAM_DUAL_REFACTORGAP, PARAM_DUAL_RESOLVEGAP, mpf_tol_struct::pfeas_tol, mpf_feas_info::pstatus, ROW_PRICING, and mpf_lpinfo::tol.

Here is the call graph for this function:

int mpf_ILLsimplex_retest_psolution ( mpf_lpinfo lp,
mpf_price_info p,
int  phase,
mpf_feas_info fi 
)

Definition at line 457 of file mpf_simplex.c.

References __QS_SB_VERB, mpf_lpinfo::basisid, COMPLETE_PRICING, mpf_tol_struct::dfeas_tol, mpf_feas_info::dstatus, mpf_lpinfo::fbasisid, mpf_tol_struct::id_tol, mpf_tol_struct::ip_tol, mpf_ILLbasis_refactor(), mpf_ILLfct_check_dfeasible(), mpf_ILLfct_check_pfeasible(), mpf_ILLfct_check_pIdfeasible(), mpf_ILLfct_compute_dz(), mpf_ILLfct_compute_phaseI_dz(), mpf_ILLfct_compute_phaseI_piz(), mpf_ILLfct_compute_piz(), mpf_ILLfct_compute_pobj(), mpf_ILLfct_compute_xbz(), mpf_ILLprice_compute_dual_inf(), NULL, mpf_price_info::p_strategy, PARAM_PRIMAL_REFACTORGAP, PARAM_PRIMAL_RESOLVEGAP, mpf_tol_struct::pfeas_tol, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, mpf_feas_info::pstatus, QS_LP_CHANGE_PREC, and mpf_lpinfo::tol.

Here is the call graph for this function:

void mpf_ILLsimplex_set_bound ( mpf_lpinfo lp,
const mpf_t *  objbound,
int  sense 
)

Definition at line 131 of file mpf_simplex.c.

References mpf_ILL_MAX, and mpf_lpinfo::objbound.

Referenced by mpf_QSchange_objsense(), and mpf_QSset_param_EGlpNum().

int mpf_ILLsimplex_solution ( mpf_lpinfo lp,
mpf_t *  xz,
mpf_t *  piz,
mpf_t *  dz,
mpf_t *  objval 
)

Definition at line 597 of file mpf_simplex.c.

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

void mpf_init_internal_lpinfo ( mpf_lpinfo lp  ) 

Definition at line 180 of file mpf_simplex.c.

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

Referenced by mpf_ILLsimplex(), and mpf_ILLsimplex_init_lpinfo().

Here is the call graph for this function:

static void mpf_init_lp_status_info ( mpf_lp_status_info ls  )  [static]

Definition at line 141 of file mpf_simplex.c.

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

Referenced by mpf_build_internal_lpinfo(), and mpf_ILLsimplex().

static void mpf_init_simplex_tols ( mpf_lpinfo lp  ) 

Definition at line 153 of file mpf_simplex.c.

References mpf_tol_struct::dfeas_tol, mpf_tol_struct::id_tol, mpf_tol_struct::ip_tol, mpf_DFEAS_TOLER, mpf_PFEAS_TOLER, mpf_PIVOT_TOLER, mpf_SZERO_TOLER, mpf_tol_struct::pfeas_tol, mpf_tol_struct::pivot_tol, mpf_tol_struct::szero_tol, mpf_lpinfo::tol, and VERBOSE_LEVEL.

static void mpf_monitor_iter ( mpf_lpinfo lp,
mpf_price_info p,
mpf_iter_info it,
int  cphase 
)

Definition at line 1336 of file mpf_simplex.c.

References __QS_SB_VERB, mpf_iter_info::algorithm, mpf_iter_info::chkobj, mpf_iter_info::curtime, mpf_tol_struct::dfeas_tol, mpf_lpinfo::dinfeas, mpf_lpinfo::dobjval, mpf_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(), mpf_iter_info::inner, mpf_iter_info::itercnt, mpf_lpinfo::maxiter, mpf_lpinfo::maxtime, mpf_ILLfct_check_dfeasible(), mpf_ILLfct_compute_dobj(), mpf_ILLfct_perturb_bounds(), mpf_ILLfct_perturb_coefs(), mpf_ILLfct_set_status_values(), mpf_ILLfct_unroll_coef_change(), mpf_ILLutil_our_floor(), mpf_INFTY, mpf_report_value(), mpf_restore_paraminfo(), mpf_iter_info::n_restart, mpf_iter_info::newphase, mpf_iter_info::nextphase, mpf_iter_info::nextstep, mpf_iter_info::noprog, mpf_lpinfo::objbound, mpf_iter_info::objtol, mpf_tol_struct::pfeas_tol, PHASEII, mpf_lpinfo::pinfeas, mpf_lpinfo::pobjval, mpf_iter_info::prevobj, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, mpf_iter_info::resumeid, mpf_iter_info::rounds, mpf_iter_info::sdisplay, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_TERMINATE, mpf_iter_info::solstatus, mpf_lpinfo::starttime, mpf_lpinfo::tol, and mpf_feas_info::totinfeas.

Referenced by mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_primal_phaseI_step(), and mpf_primal_phaseII_step().

Here is the call graph for this function:

static int mpf_primal_phaseI_step ( mpf_lpinfo lp,
mpf_price_info pinf,
mpf_svector updz,
mpf_svector wz,
mpf_iter_info it 
)

Definition at line 1546 of file mpf_simplex.c.

References mpf_iter_info::algorithm, mpf_lpinfo::baz, mpf_pI_uinfo::c_obj, CNT_PPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, mpf_price_info::d_scaleinf, mpf_tol_struct::dfeas_tol, mpf_price_res::dinfeas, mpf_price_res::dir, mpf_feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, mpf_ratio_res::ecoeff, mpf_price_res::eindex, mpf_lpinfo::final_phase, ILL_CLEANUP, ILL_IFTRACE2, ILL_LP_SOLVED, mpf_tol_struct::ip_tol, mpf_ratio_res::lbound, mpf_ratio_res::lindex, mpf_ratio_res::lvstat, mpf_ILLbasis_update(), mpf_ILLfct_check_pfeasible(), mpf_ILLfct_compute_phaseI_dz(), mpf_ILLfct_compute_phaseI_piz(), mpf_ILLfct_compute_ppIzz(), mpf_ILLfct_compute_psteep_upv(), mpf_ILLfct_compute_xbz(), mpf_ILLfct_compute_yz(), mpf_ILLfct_compute_zA(), mpf_ILLfct_compute_zz(), mpf_ILLfct_set_status_values(), mpf_ILLfct_update_basis_info(), mpf_ILLfct_update_counts(), mpf_ILLfct_update_pfeas(), mpf_ILLfct_update_ppI_prices(), mpf_ILLfct_update_xz(), mpf_ILLprice_compute_dual_inf(), mpf_ILLprice_free_heap(), mpf_ILLprice_init_mpartial_price(), mpf_ILLprice_primal(), mpf_ILLprice_test_for_heap(), mpf_ILLprice_update_pricing_info(), mpf_ILLratio_pI_test(), mpf_ILLsimplex_retest_psolution(), mpf_monitor_iter(), mpf_test_progress(), MULTI_PART_PRICING, mpf_iter_info::n_restart, mpf_lpinfo::nbaz, mpf_iter_info::newphase, mpf_iter_info::nextphase, mpf_iter_info::nextstep, mpf_lpinfo::nnbasic, mpf_iter_info::noprog, mpf_iter_info::nosolve, mpf_lpinfo::nrows, NULL, mpf_svector::nzcnt, mpf_price_info::p_strategy, PARAM_MAX_NOSOLVE, mpf_tol_struct::pfeas_tol, PHASEI, PHASEII, mpf_price_info::pI_price, mpf_lpinfo::pIdz, mpf_lpinfo::pinfeas, mpf_price_res::pinfeas, mpf_lpinfo::pIpiz, mpf_ratio_res::pivotval, mpf_iter_info::prevobj, PRICE_OPTIMAL, mpf_price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, mpf_feas_info::pstatus, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, RATIO_NOBCHANGE, mpf_ratio_res::ratio_stat, mpf_iter_info::resumeid, mpf_iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_PHASE_RECOMP, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_TERMINATE, mpf_iter_info::solstatus, mpf_lpinfo::srhs, mpf_lpinfo::ssoln, mpf_lpinfo::tol, mpf_feas_info::totinfeas, mpf_ratio_res::tz, mpf_lpinfo::upd, VARTIFICIAL, VFREE, mpf_lpinfo::vtype, mpf_lpinfo::yjz, and mpf_lpinfo::zz.

Referenced by mpf_ILLsimplex().

Here is the call graph for this function:

static int mpf_primal_phaseII_step ( mpf_lpinfo lp,
mpf_price_info pinf,
mpf_svector updz,
mpf_svector wz,
mpf_iter_info it 
)

Definition at line 1826 of file mpf_simplex.c.

References mpf_iter_info::algorithm, mpf_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, mpf_ratio_res::boundch, CNT_PPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZARAVG, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, mpf_price_info::d_scaleinf, mpf_tol_struct::dfeas_tol, mpf_lpinfo::dinfeas, mpf_price_res::dinfeas, mpf_price_res::dir, mpf_feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, mpf_lpinfo::dz, mpf_ratio_res::ecoeff, mpf_price_res::eindex, mpf_lpinfo::final_phase, mpf_tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, mpf_tol_struct::ip_tol, mpf_ratio_res::lbound, mpf_ratio_res::lindex, mpf_ratio_res::lvstat, mpf_ILLbasis_update(), mpf_ILLfct_bound_shift(), mpf_ILLfct_check_dfeasible(), mpf_ILLfct_check_pfeasible(), mpf_ILLfct_compute_dz(), mpf_ILLfct_compute_piz(), mpf_ILLfct_compute_pobj(), mpf_ILLfct_compute_psteep_upv(), mpf_ILLfct_compute_xbz(), mpf_ILLfct_compute_yz(), mpf_ILLfct_compute_zA(), mpf_ILLfct_compute_zz(), mpf_ILLfct_set_status_values(), mpf_ILLfct_unroll_bound_change(), mpf_ILLfct_update_basis_info(), mpf_ILLfct_update_counts(), mpf_ILLfct_update_dz(), mpf_ILLfct_update_piz(), mpf_ILLfct_update_xz(), mpf_ILLprice_compute_dual_inf(), mpf_ILLprice_free_heap(), mpf_ILLprice_init_mpartial_price(), mpf_ILLprice_primal(), mpf_ILLprice_test_for_heap(), mpf_ILLprice_update_mpartial_price(), mpf_ILLprice_update_pricing_info(), mpf_ILLratio_pII_test(), mpf_ILLsimplex_retest_psolution(), mpf_monitor_iter(), mpf_test_progress(), MULTI_PART_PRICING, mpf_iter_info::n_restart, mpf_lpinfo::nbaz, mpf_lpinfo::nbchange, mpf_iter_info::newphase, mpf_iter_info::nextphase, mpf_iter_info::nextstep, mpf_iter_info::noprog, mpf_iter_info::nosolve, NULL, mpf_svector::nzcnt, mpf_lpinfo::objval, mpf_price_info::p_strategy, PARAM_MAX_NOSOLVE, mpf_tol_struct::pfeas_tol, PHASEII, mpf_price_info::pII_price, mpf_price_res::pinfeas, mpf_ratio_res::pivotval, mpf_lpinfo::pobjval, mpf_iter_info::prevobj, PRICE_OPTIMAL, mpf_price_res::price_stat, mpf_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, mpf_feas_info::pstatus, QS_PRICE_DDEVEX, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NOBCHANGE, mpf_ratio_res::ratio_stat, RATIO_UNBOUNDED, mpf_iter_info::resumeid, mpf_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, mpf_iter_info::solstatus, STAT_UPPER, mpf_lpinfo::tol, mpf_feas_info::totinfeas, mpf_ratio_res::tz, VARTIFICIAL, VFREE, mpf_lpinfo::vtype, mpf_lpinfo::yjz, and mpf_lpinfo::zz.

Referenced by mpf_ILLsimplex().

Here is the call graph for this function:

static int mpf_report_value ( mpf_lpinfo lp,
mpf_iter_info it,
const char *  value_name,
mpf_t  value 
)

Definition at line 3011 of file mpf_simplex.c.

References ILLstring_report, mpf_iter_info::itercnt, mpf_lpinfo::iterskip, NULL, mpf_lpinfo::O, QS_LP_ABORTED, mpf_ILLlpdata::reporter, mpf_iter_info::sdisplay, and mpf_iter_info::solstatus.

Referenced by mpf_monitor_iter().

static void mpf_restore_paraminfo ( mpf_iter_info it,
mpf_price_info pinf 
) [static]

Definition at line 784 of file mpf_simplex.c.

References mpf_iter_info::algorithm, mpf_param_info::d_strategy, mpf_price_info::d_strategy, mpf_price_info::dI_price, mpf_price_info::dII_price, mpf_param_info::dphaseI, mpf_param_info::dphaseII, mpf_iter_info::oldinfo, mpf_param_info::origalgo, mpf_param_info::p_strategy, mpf_price_info::p_strategy, mpf_price_info::pI_price, mpf_price_info::pII_price, mpf_param_info::pphaseI, and mpf_param_info::pphaseII.

Referenced by mpf_ILLsimplex(), and mpf_monitor_iter().

static void mpf_save_paraminfo ( mpf_price_info pinf,
mpf_iter_info it 
) [static]

Definition at line 769 of file mpf_simplex.c.

References mpf_iter_info::algorithm, mpf_price_info::d_strategy, mpf_param_info::d_strategy, mpf_price_info::dI_price, mpf_price_info::dII_price, mpf_param_info::dphaseI, mpf_param_info::dphaseII, mpf_iter_info::oldinfo, mpf_param_info::origalgo, mpf_price_info::p_strategy, mpf_param_info::p_strategy, mpf_price_info::pI_price, mpf_price_info::pII_price, mpf_param_info::pphaseI, and mpf_param_info::pphaseII.

Referenced by mpf_ILLsimplex().

static int mpf_terminate_simplex ( mpf_lpinfo lp,
int  phase,
mpf_iter_info it 
) [static]

Definition at line 1260 of file mpf_simplex.c.

References mpf_iter_info::algorithm, mpf_feas_info::dstatus, DUAL_PHASEI, DUAL_SIMPLEX, ILL_CLEANUP, ILL_MAX_ITER, ILL_MAX_TIME, mpf_ILLfct_set_status_values(), mpf_ILLfct_unroll_bound_change(), mpf_ILLfct_unroll_coef_change(), mpf_ILLsimplex_retest_dsolution(), mpf_ILLsimplex_retest_psolution(), mpf_lpinfo::nbchange, mpf_lpinfo::ncchange, NULL, PHASEI, PHASEII, PRIMAL_PHASEI, PRIMAL_SIMPLEX, mpf_feas_info::pstatus, mpf_iter_info::sdisplay, mpf_iter_info::solstatus, and mpf_feas_info::totinfeas.

Referenced by mpf_ILLsimplex().

Here is the call graph for this function:

static int mpf_test_progress ( mpf_t  objval,
mpf_t  prevobj 
) [static]

Definition at line 1314 of file mpf_simplex.c.

References mpf_PROGRESS_THRESH, and mpf_PROGRESS_ZERO.

Referenced by mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_primal_phaseI_step(), and mpf_primal_phaseII_step().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file mpf_simplex.c.


Generated on Thu Mar 29 09:43:18 2012 for QSopt_ex by  doxygen 1.4.7