fp20_simplex.c File Reference

#include "basicdefs.h"
#include "config.h"
#include "fp20_iqsutil.h"
#include "fp20_lpdata.h"
#include "fp20_lpdefs.h"
#include "stddefs.h"
#include "fp20_fct.h"
#include "fp20_ratio.h"
#include "fp20_price.h"
#include "fp20_basis.h"
#include "fp20_simplex.h"
#include "fp20_dstruct.h"
#include "fp20_qstruct.h"
#include "fp20_qsopt.h"
#include "fp20_lib.h"
#include "fp20_lp.h"

Include dependency graph for fp20_simplex.c:

Go to the source code of this file.

Defines

#define fp20_QSOPT_CURRENT_PRECICION

Functions

int fp20_build_internal_lpinfo (fp20_lpinfo *lp)
static int fp20_dual_phaseI_step (fp20_lpinfo *lp, fp20_price_info *pinf, fp20_svector *updz, fp20_svector *wz, fp20_iter_info *it)
static int fp20_dual_phaseII_step (fp20_lpinfo *lp, fp20_price_info *pinf, fp20_svector *updz, fp20_svector *wz, fp20_iter_info *it)
void fp20_free_internal_lpinfo (fp20_lpinfo *lp)
static void fp20_get_current_stat (fp20_lp_status_info *p, int algorithm, int *bstat)
int fp20_ILLsimplex (fp20_lpinfo *lp, int algorithm, fp20_ILLlp_basis *B, fp20_price_info *pinf, int *status, int sdisplay, itcnt_t *itcnt)
void fp20_ILLsimplex_free_lpinfo (fp20_lpinfo *lp)
int fp20_ILLsimplex_infcertificate (fp20_lpinfo *lp, EGfp20_t *pi)
void fp20_ILLsimplex_init_lpinfo (fp20_lpinfo *lp)
void fp20_ILLsimplex_load_lpinfo (fp20_ILLlpdata *qslp, fp20_lpinfo *lp)
int fp20_ILLsimplex_pivotin (fp20_lpinfo *lp, fp20_price_info *pinf, int rcnt, int *rlist, int pivot_opt, int *basis_mod)
int fp20_ILLsimplex_retest_dsolution (fp20_lpinfo *lp, fp20_price_info *p, int phase, fp20_feas_info *fi)
int fp20_ILLsimplex_retest_psolution (fp20_lpinfo *lp, fp20_price_info *p, int phase, fp20_feas_info *fi)
void fp20_ILLsimplex_set_bound (fp20_lpinfo *lp, const EGfp20_t *objbound, int sense)
int fp20_ILLsimplex_solution (fp20_lpinfo *lp, EGfp20_t *xz, EGfp20_t *piz, EGfp20_t *dz, EGfp20_t *objval)
void fp20_init_internal_lpinfo (fp20_lpinfo *lp)
static void fp20_init_lp_status_info (fp20_lp_status_info *ls)
static void fp20_init_simplex_tols (fp20_lpinfo *lp)
static void fp20_monitor_iter (fp20_lpinfo *lp, fp20_price_info *p, fp20_iter_info *it, int cphase)
static int fp20_primal_phaseI_step (fp20_lpinfo *lp, fp20_price_info *pinf, fp20_svector *updz, fp20_svector *wz, fp20_iter_info *it)
static int fp20_primal_phaseII_step (fp20_lpinfo *lp, fp20_price_info *pinf, fp20_svector *updz, fp20_svector *wz, fp20_iter_info *it)
static int fp20_report_value (fp20_lpinfo *lp, fp20_iter_info *it, const char *value_name, EGfp20_t value)
static void fp20_restore_paraminfo (fp20_iter_info *it, fp20_price_info *pinf)
static void fp20_save_paraminfo (fp20_price_info *pinf, fp20_iter_info *it)
static int fp20_terminate_simplex (fp20_lpinfo *lp, int phase, fp20_iter_info *it)
static int fp20_test_progress (EGfp20_t objval, EGfp20_t prevobj)

Variables

static int TRACE = 0


Define Documentation

#define fp20_QSOPT_CURRENT_PRECICION

Definition at line 26 of file fp20_simplex.c.


Function Documentation

int fp20_build_internal_lpinfo ( fp20_lpinfo lp  ) 

Definition at line 318 of file fp20_simplex.c.

References fp20_ILLlp_sinfo::A, fp20_ILLlpdata::A, fp20_lpinfo::basisstat, fp20_lpinfo::bz, fp20_lpinfo::cz, fp20_ILL_MAX, fp20_init_lp_status_info(), fp20_ILLlp_sinfo::lower, fp20_ILLlpdata::lower, fp20_lpinfo::lz, fp20_lpinfo::matbeg, fp20_ILLmatrix::matbeg, fp20_lpinfo::matcnt, fp20_ILLmatrix::matcnt, fp20_lpinfo::matind, fp20_ILLmatrix::matind, fp20_lpinfo::matval, fp20_ILLmatrix::matval, fp20_lpinfo::ncols, fp20_ILLlp_sinfo::ncols, fp20_ILLlpdata::ncols, fp20_lpinfo::nnbasic, fp20_lpinfo::nrows, fp20_ILLlp_sinfo::nrows, fp20_ILLlpdata::nrows, fp20_lpinfo::O, fp20_ILLlp_sinfo::obj, fp20_ILLlpdata::obj, fp20_ILLlpdata::objsense, fp20_lpinfo::probstat, fp20_ILLlp_sinfo::rhs, fp20_ILLlpdata::rhs, fp20_ILLlpdata::sinfo, fp20_ILLlp_sinfo::upper, fp20_ILLlpdata::upper, and fp20_lpinfo::uz.

Here is the call graph for this function:

static int fp20_dual_phaseI_step ( fp20_lpinfo lp,
fp20_price_info pinf,
fp20_svector updz,
fp20_svector wz,
fp20_iter_info it 
)

Definition at line 2150 of file fp20_simplex.c.

References __QS_SB_VERB, fp20_iter_info::algorithm, CNT_DPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COMPLETE_PRICING, fp20_price_info::d_strategy, fp20_tol_struct::dfeas_tol, fp20_price_info::dI_price, fp20_lpinfo::dinfeas, fp20_price_res::dinfeas, fp20_feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, fp20_ratio_res::ecoeff, fp20_ratio_res::eindex, fp20_lpinfo::final_phase, fp20_fct_test_dfeasible(), fp20_fct_test_pI_x(), fp20_fct_test_workvector(), fp20_ILLbasis_factor(), fp20_ILLbasis_update(), fp20_ILLfct_check_dfeasible(), fp20_ILLfct_compute_dpIy(), fp20_ILLfct_compute_dsteep_upv(), fp20_ILLfct_compute_dz(), fp20_ILLfct_compute_phaseI_xbz(), fp20_ILLfct_compute_piz(), fp20_ILLfct_compute_yz(), fp20_ILLfct_compute_zA(), fp20_ILLfct_compute_zz(), fp20_ILLfct_dual_adjust(), fp20_ILLfct_set_status_values(), fp20_ILLfct_test_pivot(), fp20_ILLfct_update_basis_info(), fp20_ILLfct_update_counts(), fp20_ILLfct_update_dfeas(), fp20_ILLfct_update_dpI_prices(), fp20_ILLfct_update_dz(), fp20_ILLfct_update_piz(), fp20_ILLprice_compute_primal_inf(), fp20_ILLprice_dual(), fp20_ILLprice_free_heap(), fp20_ILLprice_init_mpartial_price(), fp20_ILLprice_test_for_heap(), fp20_ILLprice_update_pricing_info(), fp20_ILLratio_dI_test(), fp20_ILLsimplex_retest_dsolution(), fp20_monitor_iter(), fp20_test_dsteep_norms(), fp20_test_progress(), fp20_tol_struct::id_tol, ILL_CLEANUP, ILL_LP_SOLVED, fp20_ratio_res::lbound, fp20_price_res::lindex, fp20_price_res::lvstat, MULTI_PART_PRICING, fp20_iter_info::n_pivot_fail, fp20_iter_info::n_restart, fp20_iter_info::newphase, fp20_iter_info::nextphase, fp20_iter_info::nextstep, fp20_iter_info::noprog, fp20_iter_info::nosolve, fp20_lpinfo::nrows, NULL, fp20_svector::nzcnt, PARAM_MAX_NOSOLVE, fp20_tol_struct::pfeas_tol, PHASEI, PHASEII, fp20_price_res::pinfeas, fp20_ratio_res::pivotval, fp20_iter_info::prevobj, PRICE_OPTIMAL, fp20_price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, fp20_feas_info::pstatus, QS_PRICE_DSTEEP, RATIO_BCHANGE, RATIO_FAILED, fp20_ratio_res::ratio_stat, fp20_iter_info::resumeid, ROW_PIVOT, ROW_PRICING, fp20_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, fp20_iter_info::solstatus, fp20_lpinfo::tol, fp20_feas_info::totinfeas, fp20_ratio_res::tz, VARTIFICIAL, VFREE, fp20_lpinfo::zA, and fp20_lpinfo::zz.

Referenced by fp20_ILLsimplex().

Here is the call graph for this function:

static int fp20_dual_phaseII_step ( fp20_lpinfo lp,
fp20_price_info pinf,
fp20_svector updz,
fp20_svector wz,
fp20_iter_info it 
)

Definition at line 2403 of file fp20_simplex.c.

References __QS_SB_VERB, fp20_iter_info::algorithm, fp20_lpinfo::baz, fp20_pI_uinfo::c_obj, CNT_DPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, fp20_ratio_res::coeffch, COMPLETE_PRICING, fp20_price_info::d_strategy, fp20_tol_struct::dfeas_tol, fp20_price_info::dII_price, fp20_price_res::dinfeas, fp20_lpinfo::dobjval, fp20_feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, DUAL_UNBOUNDED, fp20_ratio_res::ecoeff, fp20_ratio_res::eindex, fp20_lpinfo::final_phase, fp20_fct_test_pII_pi_dz(), fp20_fct_test_pII_x(), fp20_fct_test_workvector(), fp20_ILLbasis_factor(), fp20_ILLbasis_update(), fp20_ILLfct_adjust_viol_coefs(), fp20_ILLfct_check_dfeasible(), fp20_ILLfct_check_pfeasible(), fp20_ILLfct_coef_shift(), fp20_ILLfct_compute_dobj(), fp20_ILLfct_compute_dpIIy(), fp20_ILLfct_compute_dsteep_upv(), fp20_ILLfct_compute_dz(), fp20_ILLfct_compute_piz(), fp20_ILLfct_compute_xbz(), fp20_ILLfct_compute_yz(), fp20_ILLfct_compute_zA(), fp20_ILLfct_compute_zz(), fp20_ILLfct_dual_adjust(), fp20_ILLfct_set_status_values(), fp20_ILLfct_test_pivot(), fp20_ILLfct_unroll_coef_change(), fp20_ILLfct_update_basis_info(), fp20_ILLfct_update_counts(), fp20_ILLfct_update_dIIfeas(), fp20_ILLfct_update_dpII_prices(), fp20_ILLfct_update_dz(), fp20_ILLfct_update_piz(), fp20_ILLprice_compute_primal_inf(), fp20_ILLprice_dual(), fp20_ILLprice_free_heap(), fp20_ILLprice_init_mpartial_price(), fp20_ILLprice_test_for_heap(), fp20_ILLprice_update_pricing_info(), fp20_ILLratio_longdII_test(), fp20_ILLsimplex_retest_dsolution(), fp20_monitor_iter(), fp20_test_dsteep_norms(), fp20_test_progress(), fp20_tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, fp20_lpinfo::infub_ix, fp20_tol_struct::ip_tol, fp20_ratio_res::lbound, fp20_price_res::lindex, fp20_price_res::lvstat, MULTI_PART_PRICING, fp20_iter_info::n_pivot_fail, fp20_iter_info::n_restart, fp20_lpinfo::nbaz, fp20_lpinfo::ncchange, fp20_iter_info::newphase, fp20_iter_info::nextphase, fp20_iter_info::nextstep, fp20_iter_info::noprog, fp20_iter_info::nosolve, fp20_lpinfo::nrows, NULL, fp20_svector::nzcnt, fp20_lpinfo::objval, PARAM_MAX_NOSOLVE, fp20_tol_struct::pfeas_tol, PHASEII, fp20_price_res::pinfeas, fp20_ratio_res::pivotval, fp20_iter_info::prevobj, PRICE_OPTIMAL, fp20_price_res::price_stat, fp20_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_SIMPLEX, fp20_feas_info::pstatus, QS_LP_CHANGE_PREC, QS_PRICE_DSTEEP, QS_PRICE_PDEVEX, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, fp20_ratio_res::ratio_stat, RATIO_UNBOUNDED, fp20_iter_info::resumeid, ROW_PIVOT, ROW_PRICING, fp20_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, fp20_iter_info::solstatus, STAT_LOWER, STAT_ZERO, fp20_lpinfo::tol, fp20_feas_info::totinfeas, fp20_ratio_res::tz, fp20_lpinfo::upd, VARTIFICIAL, VFREE, fp20_lpinfo::vstat, fp20_lpinfo::vtype, fp20_lpinfo::yjz, fp20_lpinfo::zA, and fp20_lpinfo::zz.

Referenced by fp20_ILLsimplex().

Here is the call graph for this function:

void fp20_free_internal_lpinfo ( fp20_lpinfo lp  ) 

Definition at line 238 of file fp20_simplex.c.

References fp20_lpinfo::bchanges, fp20_lpinfo::bfeas, fp20_bndinfo::cbound, fp20_lpinfo::cchanges, fp20_coefinfo::ccoef, fp20_lpinfo::cnts, fp20_lpinfo::cz, fp20_lpinfo::dfeas, fp20_tol_struct::dfeas_tol, fp20_lpinfo::dz, fp20_ILLsvector_free(), fp20_tol_struct::id_tol, ILL_IFFREE, fp20_tol_struct::ip_tol, fp20_lpinfo::iwork, fp20_pI_uinfo::ix, fp20_lpinfo::localrows, fp20_lpinfo::lz, fp20_bndinfo::next, fp20_coefinfo::next, fp20_bndinfo::pbound, fp20_coefinfo::pcoef, fp20_pI_uinfo::perm, fp20_tol_struct::pfeas_tol, fp20_lpinfo::pIdz, fp20_lpinfo::pIpiz, fp20_tol_struct::pivot_tol, fp20_lpinfo::pIxbz, fp20_lpinfo::piz, fp20_lpinfo::rowbeg, fp20_lpinfo::rowcnt, fp20_lpinfo::rowind, fp20_lpinfo::rowval, fp20_lpinfo::srhs, fp20_lpinfo::ssoln, fp20_tol_struct::szero_tol, fp20_pI_uinfo::t, fp20_lpinfo::tol, fp20_lpinfo::upd, fp20_lpinfo::uz, fp20_lpinfo::vclass, fp20_lpinfo::vtype, fp20_lpinfo::work, fp20_lpinfo::xbz, fp20_count_struct::y_ravg, fp20_lpinfo::yjz, fp20_count_struct::z_ravg, fp20_lpinfo::zA, fp20_count_struct::za_ravg, and fp20_lpinfo::zz.

Here is the call graph for this function:

static void fp20_get_current_stat ( fp20_lp_status_info p,
int  algorithm,
int *  bstat 
)

Definition at line 2803 of file fp20_simplex.c.

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

Referenced by fp20_ILLsimplex().

int fp20_ILLsimplex ( fp20_lpinfo lp,
int  algorithm,
fp20_ILLlp_basis B,
fp20_price_info pinf,
int *  status,
int  sdisplay,
itcnt_t itcnt 
)

Definition at line 799 of file fp20_simplex.c.

References __QS_SB_VERB, fp20_iter_info::algorithm, fp20_lpinfo::basisid, fp20_lpinfo::basisstat, fp20_iter_info::chkobj, fp20_lpinfo::cnts, fp20_ILLlp_basis::colnorms, fp20_price_info::cur_price, fp20_iter_info::curtime, fp20_tol_struct::dfeas_tol, fp20_count_struct::dI_iter, itcnt_t::dI_iter, fp20_count_struct::dII_iter, itcnt_t::dII_iter, fp20_lpinfo::dinfeas, fp20_lpinfo::dobjval, fp20_price_info::dsinfo, fp20_feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, DUAL_UNBOUNDED, fp20_lp_status_info::dual_unbounded, fp20_lpinfo::fbasisid, fp20_build_internal_lpinfo(), fp20_dual_phaseI_step(), fp20_dual_phaseII_step(), fp20_free_internal_lpinfo(), fp20_get_current_stat(), fp20_ILLbasis_factor(), fp20_ILLbasis_get_cinitial(), fp20_ILLbasis_get_initial(), fp20_ILLbasis_load(), fp20_ILLfct_check_dfeasible(), fp20_ILLfct_check_pfeasible(), fp20_ILLfct_compute_dobj(), fp20_ILLfct_compute_dz(), fp20_ILLfct_compute_piz(), fp20_ILLfct_compute_pobj(), fp20_ILLfct_compute_xbz(), fp20_ILLfct_dual_adjust(), fp20_ILLfct_print_counts(), fp20_ILLfct_set_status_values(), fp20_ILLfct_set_variable_type(), fp20_ILLfct_unroll_bound_change(), fp20_ILLfct_unroll_coef_change(), fp20_ILLprice_build_pricing_info(), fp20_ILLprice_free_pricing_info(), fp20_ILLprice_get_price(), fp20_ILLprice_load_colnorms(), fp20_ILLprice_load_rownorms(), fp20_ILLsimplex_infcertificate(), fp20_ILLsvector_alloc(), fp20_ILLsvector_free(), fp20_ILLsvector_init(), fp20_INFTY, fp20_init_internal_lpinfo(), fp20_init_lp_status_info(), fp20_OBJBND_TOLER, fp20_primal_phaseI_step(), fp20_primal_phaseII_step(), fp20_restore_paraminfo(), fp20_save_paraminfo(), fp20_terminate_simplex(), 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(), fp20_iter_info::inner, fp20_iter_info::itercnt, fp20_lpinfo::matcnt, fp20_iter_info::n_pivot_fail, fp20_iter_info::n_restart, fp20_lpinfo::ncols, fp20_iter_info::newphase, fp20_iter_info::nextphase, fp20_iter_info::nextstep, fp20_p_devex_info::ninit, fp20_iter_info::noprog, fp20_p_steep_info::norms, fp20_d_steep_info::norms, fp20_iter_info::nosolve, fp20_lpinfo::nrows, fp20_ILLlpdata::nrows, NULL, fp20_lpinfo::O, fp20_lpinfo::objbound, fp20_iter_info::objtol, fp20_lpinfo::objval, OPTIMAL, fp20_lp_status_info::optimal, PARAM_MAX_NOPROG, fp20_price_info::pdinfo, fp20_tol_struct::pfeas_tol, PHASEII, fp20_count_struct::pI_iter, itcnt_t::pI_iter, fp20_price_info::pI_price, fp20_count_struct::pII_iter, itcnt_t::pII_iter, fp20_lpinfo::pinfeas, fp20_lpinfo::pobjval, fp20_iter_info::prevobj, fp20_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, fp20_lp_status_info::primal_infeasible, PRIMAL_OR_DUAL, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, fp20_lp_status_info::primal_unbounded, fp20_ILLlpdata::probname, fp20_price_info::psinfo, fp20_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, fp20_ILLlpdata::reporter, fp20_iter_info::resumeid, fp20_iter_info::rounds, fp20_ILLlp_basis::rownorms, fp20_iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_MAX_RESTART, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_RESUME_UNSHIFT, fp20_iter_info::solstatus, fp20_lpinfo::starttime, fp20_lpinfo::tol, itcnt_t::tot_iter, and fp20_feas_info::totinfeas.

Here is the call graph for this function:

void fp20_ILLsimplex_free_lpinfo ( fp20_lpinfo lp  ) 

Definition at line 105 of file fp20_simplex.c.

References fp20_lpinfo::cz, fp20_free_internal_lpinfo(), fp20_ILLbasis_free_basisinfo(), fp20_lpinfo::lz, and fp20_lpinfo::uz.

Here is the call graph for this function:

int fp20_ILLsimplex_infcertificate ( fp20_lpinfo lp,
EGfp20_t *  pi 
)

Definition at line 651 of file fp20_simplex.c.

References fp20_lpinfo::basisstat, fp20_lpinfo::baz, fp20_svector::coef, DUAL_PHASEII, fp20_lp_status_info::dual_unbounded, fp20_lpinfo::final_phase, fp20_NINFTY, fp20_svector::indx, fp20_lpinfo::infub_ix, fp20_lpinfo::lz, fp20_lpinfo::nrows, NULL, fp20_svector::nzcnt, fp20_lpinfo::pIpiz, fp20_lp_status_info::primal_infeasible, PRIMAL_PHASEI, fp20_lpinfo::uz, fp20_lpinfo::xbz, and fp20_lpinfo::zz.

void fp20_ILLsimplex_init_lpinfo ( fp20_lpinfo lp  ) 

Definition at line 98 of file fp20_simplex.c.

References fp20_ILLbasis_init_basisinfo(), and fp20_init_internal_lpinfo().

Here is the call graph for this function:

void fp20_ILLsimplex_load_lpinfo ( fp20_ILLlpdata qslp,
fp20_lpinfo lp 
)

Definition at line 118 of file fp20_simplex.c.

References fp20_lpinfo::basisid, fp20_INFTY, fp20_lpinfo::iterskip, fp20_lpinfo::maxiter, fp20_lpinfo::maxtime, fp20_lpinfo::O, and fp20_lpinfo::objbound.

int fp20_ILLsimplex_pivotin ( fp20_lpinfo lp,
fp20_price_info pinf,
int  rcnt,
int *  rlist,
int  pivot_opt,
int *  basis_mod 
)

Definition at line 2834 of file fp20_simplex.c.

References fp20_ratio_res::ecoeff, ILL_SAFE_MALLOC, fp20_ratio_res::lbound, NULL, fp20_lpinfo::O, fp20_ratio_res::pivotval, fp20_ILLlpdata::rowmap, SIMPLEX_PIVOTINROW, STAT_BASIC, fp20_feas_info::totinfeas, fp20_ratio_res::tz, and fp20_lpinfo::vstat.

int fp20_ILLsimplex_retest_dsolution ( fp20_lpinfo lp,
fp20_price_info p,
int  phase,
fp20_feas_info fi 
)

Definition at line 518 of file fp20_simplex.c.

References fp20_lpinfo::basisid, COMPLETE_PRICING, fp20_price_info::d_strategy, fp20_tol_struct::dfeas_tol, fp20_feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, fp20_lpinfo::fbasisid, fp20_ILLbasis_refactor(), fp20_ILLfct_check_dfeasible(), fp20_ILLfct_check_pfeasible(), fp20_ILLfct_check_pIpfeasible(), fp20_ILLfct_compute_dobj(), fp20_ILLfct_compute_dz(), fp20_ILLfct_compute_phaseI_xbz(), fp20_ILLfct_compute_piz(), fp20_ILLfct_compute_xbz(), fp20_ILLprice_compute_primal_inf(), fp20_ILLprice_update_mpartial_price(), fp20_tol_struct::id_tol, fp20_tol_struct::ip_tol, NULL, PARAM_DUAL_REFACTORGAP, PARAM_DUAL_RESOLVEGAP, fp20_tol_struct::pfeas_tol, fp20_feas_info::pstatus, ROW_PRICING, and fp20_lpinfo::tol.

Here is the call graph for this function:

int fp20_ILLsimplex_retest_psolution ( fp20_lpinfo lp,
fp20_price_info p,
int  phase,
fp20_feas_info fi 
)

Definition at line 457 of file fp20_simplex.c.

References __QS_SB_VERB, fp20_lpinfo::basisid, COMPLETE_PRICING, fp20_tol_struct::dfeas_tol, fp20_feas_info::dstatus, fp20_lpinfo::fbasisid, fp20_ILLbasis_refactor(), fp20_ILLfct_check_dfeasible(), fp20_ILLfct_check_pfeasible(), fp20_ILLfct_check_pIdfeasible(), fp20_ILLfct_compute_dz(), fp20_ILLfct_compute_phaseI_dz(), fp20_ILLfct_compute_phaseI_piz(), fp20_ILLfct_compute_piz(), fp20_ILLfct_compute_pobj(), fp20_ILLfct_compute_xbz(), fp20_ILLprice_compute_dual_inf(), fp20_tol_struct::id_tol, fp20_tol_struct::ip_tol, NULL, fp20_price_info::p_strategy, PARAM_PRIMAL_REFACTORGAP, PARAM_PRIMAL_RESOLVEGAP, fp20_tol_struct::pfeas_tol, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, fp20_feas_info::pstatus, QS_LP_CHANGE_PREC, and fp20_lpinfo::tol.

Here is the call graph for this function:

void fp20_ILLsimplex_set_bound ( fp20_lpinfo lp,
const EGfp20_t *  objbound,
int  sense 
)

Definition at line 131 of file fp20_simplex.c.

References fp20_ILL_MAX, and fp20_lpinfo::objbound.

int fp20_ILLsimplex_solution ( fp20_lpinfo lp,
EGfp20_t *  xz,
EGfp20_t *  piz,
EGfp20_t *  dz,
EGfp20_t *  objval 
)

Definition at line 597 of file fp20_simplex.c.

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

void fp20_init_internal_lpinfo ( fp20_lpinfo lp  ) 

Definition at line 180 of file fp20_simplex.c.

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

Here is the call graph for this function:

static void fp20_init_lp_status_info ( fp20_lp_status_info ls  )  [static]

Definition at line 141 of file fp20_simplex.c.

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

Referenced by fp20_build_internal_lpinfo(), and fp20_ILLsimplex().

static void fp20_init_simplex_tols ( fp20_lpinfo lp  ) 

Definition at line 153 of file fp20_simplex.c.

References fp20_tol_struct::dfeas_tol, fp20_DFEAS_TOLER, fp20_PFEAS_TOLER, fp20_PIVOT_TOLER, fp20_SZERO_TOLER, fp20_tol_struct::id_tol, fp20_tol_struct::ip_tol, fp20_tol_struct::pfeas_tol, fp20_tol_struct::pivot_tol, fp20_tol_struct::szero_tol, fp20_lpinfo::tol, and VERBOSE_LEVEL.

static void fp20_monitor_iter ( fp20_lpinfo lp,
fp20_price_info p,
fp20_iter_info it,
int  cphase 
)

Definition at line 1336 of file fp20_simplex.c.

References __QS_SB_VERB, fp20_iter_info::algorithm, fp20_iter_info::chkobj, fp20_iter_info::curtime, fp20_tol_struct::dfeas_tol, fp20_lpinfo::dinfeas, fp20_lpinfo::dobjval, fp20_feas_info::dstatus, DUAL_FEASIBLE, DUAL_PHASEI, DUAL_PHASEII, DUAL_SIMPLEX, fp20_ILLfct_check_dfeasible(), fp20_ILLfct_compute_dobj(), fp20_ILLfct_perturb_bounds(), fp20_ILLfct_perturb_coefs(), fp20_ILLfct_set_status_values(), fp20_ILLfct_unroll_coef_change(), fp20_ILLutil_our_floor(), fp20_INFTY, fp20_report_value(), fp20_restore_paraminfo(), ILL_BND_REACHED, ILL_CLEANUP, ILL_LP_ABORTED, ILL_MAX_ITER, ILL_MAX_TIME, ILLutil_zeit(), fp20_iter_info::inner, fp20_iter_info::itercnt, fp20_lpinfo::maxiter, fp20_lpinfo::maxtime, fp20_iter_info::n_restart, fp20_iter_info::newphase, fp20_iter_info::nextphase, fp20_iter_info::nextstep, fp20_iter_info::noprog, fp20_lpinfo::objbound, fp20_iter_info::objtol, fp20_tol_struct::pfeas_tol, PHASEII, fp20_lpinfo::pinfeas, fp20_lpinfo::pobjval, fp20_iter_info::prevobj, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, fp20_iter_info::resumeid, fp20_iter_info::rounds, fp20_iter_info::sdisplay, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_TERMINATE, fp20_iter_info::solstatus, fp20_lpinfo::starttime, fp20_lpinfo::tol, and fp20_feas_info::totinfeas.

Referenced by fp20_dual_phaseI_step(), fp20_dual_phaseII_step(), fp20_primal_phaseI_step(), and fp20_primal_phaseII_step().

Here is the call graph for this function:

static int fp20_primal_phaseI_step ( fp20_lpinfo lp,
fp20_price_info pinf,
fp20_svector updz,
fp20_svector wz,
fp20_iter_info it 
)

Definition at line 1546 of file fp20_simplex.c.

References fp20_iter_info::algorithm, fp20_lpinfo::baz, fp20_pI_uinfo::c_obj, CNT_PPHASE1ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, fp20_price_info::d_scaleinf, fp20_tol_struct::dfeas_tol, fp20_price_res::dinfeas, fp20_price_res::dir, fp20_feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, fp20_ratio_res::ecoeff, fp20_price_res::eindex, fp20_lpinfo::final_phase, fp20_fct_test_pfeasible(), fp20_fct_test_workvector(), fp20_ILLbasis_update(), fp20_ILLfct_check_pfeasible(), fp20_ILLfct_compute_phaseI_dz(), fp20_ILLfct_compute_phaseI_piz(), fp20_ILLfct_compute_ppIzz(), fp20_ILLfct_compute_psteep_upv(), fp20_ILLfct_compute_xbz(), fp20_ILLfct_compute_yz(), fp20_ILLfct_compute_zA(), fp20_ILLfct_compute_zz(), fp20_ILLfct_set_status_values(), fp20_ILLfct_update_basis_info(), fp20_ILLfct_update_counts(), fp20_ILLfct_update_pfeas(), fp20_ILLfct_update_ppI_prices(), fp20_ILLfct_update_xz(), fp20_ILLprice_compute_dual_inf(), fp20_ILLprice_free_heap(), fp20_ILLprice_init_mpartial_price(), fp20_ILLprice_primal(), fp20_ILLprice_test_for_heap(), fp20_ILLprice_update_pricing_info(), fp20_ILLratio_pI_test(), fp20_ILLsimplex_retest_psolution(), fp20_monitor_iter(), fp20_test_progress(), ILL_CLEANUP, ILL_IFTRACE2, ILL_LP_SOLVED, fp20_tol_struct::ip_tol, fp20_ratio_res::lbound, fp20_ratio_res::lindex, fp20_ratio_res::lvstat, MULTI_PART_PRICING, fp20_iter_info::n_restart, fp20_lpinfo::nbaz, fp20_iter_info::newphase, fp20_iter_info::nextphase, fp20_iter_info::nextstep, fp20_lpinfo::nnbasic, fp20_iter_info::noprog, fp20_iter_info::nosolve, fp20_lpinfo::nrows, NULL, fp20_svector::nzcnt, fp20_price_info::p_strategy, PARAM_MAX_NOSOLVE, fp20_tol_struct::pfeas_tol, PHASEI, PHASEII, fp20_price_info::pI_price, fp20_lpinfo::pIdz, fp20_lpinfo::pinfeas, fp20_price_res::pinfeas, fp20_lpinfo::pIpiz, fp20_ratio_res::pivotval, fp20_iter_info::prevobj, PRICE_OPTIMAL, fp20_price_res::price_stat, PRIMAL_FEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, fp20_feas_info::pstatus, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NEGATIVE, RATIO_NOBCHANGE, fp20_ratio_res::ratio_stat, fp20_iter_info::resumeid, fp20_iter_info::sdisplay, SIMPLEX_CONTINUE, SIMPLEX_FACTOR, SIMPLEX_PHASE_NEW, SIMPLEX_PHASE_RECOMP, SIMPLEX_RESUME, SIMPLEX_RESUME_NUMER, SIMPLEX_RESUME_SING, SIMPLEX_TERMINATE, fp20_iter_info::solstatus, fp20_lpinfo::srhs, fp20_lpinfo::ssoln, fp20_lpinfo::tol, fp20_feas_info::totinfeas, fp20_ratio_res::tz, fp20_lpinfo::upd, VARTIFICIAL, VFREE, fp20_lpinfo::vtype, fp20_lpinfo::yjz, and fp20_lpinfo::zz.

Referenced by fp20_ILLsimplex().

Here is the call graph for this function:

static int fp20_primal_phaseII_step ( fp20_lpinfo lp,
fp20_price_info pinf,
fp20_svector updz,
fp20_svector wz,
fp20_iter_info it 
)

Definition at line 1826 of file fp20_simplex.c.

References fp20_iter_info::algorithm, fp20_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, fp20_ratio_res::boundch, CNT_PPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_ZANZ, CNT_ZARAVG, CNT_ZNZ, COL_PRICING, COMPLETE_PRICING, fp20_price_info::d_scaleinf, fp20_tol_struct::dfeas_tol, fp20_lpinfo::dinfeas, fp20_price_res::dinfeas, fp20_price_res::dir, fp20_feas_info::dstatus, DUAL_FEASIBLE, DUAL_SIMPLEX, fp20_lpinfo::dz, fp20_ratio_res::ecoeff, fp20_price_res::eindex, fp20_lpinfo::final_phase, fp20_ILLbasis_update(), fp20_ILLfct_bound_shift(), fp20_ILLfct_check_dfeasible(), fp20_ILLfct_check_pfeasible(), fp20_ILLfct_compute_dz(), fp20_ILLfct_compute_piz(), fp20_ILLfct_compute_pobj(), fp20_ILLfct_compute_psteep_upv(), fp20_ILLfct_compute_xbz(), fp20_ILLfct_compute_yz(), fp20_ILLfct_compute_zA(), fp20_ILLfct_compute_zz(), fp20_ILLfct_set_status_values(), fp20_ILLfct_unroll_bound_change(), fp20_ILLfct_update_basis_info(), fp20_ILLfct_update_counts(), fp20_ILLfct_update_dz(), fp20_ILLfct_update_piz(), fp20_ILLfct_update_xz(), fp20_ILLprice_compute_dual_inf(), fp20_ILLprice_free_heap(), fp20_ILLprice_init_mpartial_price(), fp20_ILLprice_primal(), fp20_ILLprice_test_for_heap(), fp20_ILLprice_update_mpartial_price(), fp20_ILLprice_update_pricing_info(), fp20_ILLratio_pII_test(), fp20_ILLsimplex_retest_psolution(), fp20_monitor_iter(), fp20_test_progress(), fp20_tol_struct::id_tol, ILL_CLEANUP, ILL_IFTRACE, ILL_LP_SOLVED, fp20_tol_struct::ip_tol, fp20_ratio_res::lbound, fp20_ratio_res::lindex, fp20_ratio_res::lvstat, MULTI_PART_PRICING, fp20_iter_info::n_restart, fp20_lpinfo::nbaz, fp20_lpinfo::nbchange, fp20_iter_info::newphase, fp20_iter_info::nextphase, fp20_iter_info::nextstep, fp20_iter_info::noprog, fp20_iter_info::nosolve, NULL, fp20_svector::nzcnt, fp20_lpinfo::objval, fp20_price_info::p_strategy, PARAM_MAX_NOSOLVE, fp20_tol_struct::pfeas_tol, PHASEII, fp20_price_info::pII_price, fp20_price_res::pinfeas, fp20_ratio_res::pivotval, fp20_lpinfo::pobjval, fp20_iter_info::prevobj, PRICE_OPTIMAL, fp20_price_res::price_stat, fp20_iter_info::pricetype, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, PRIMAL_PHASEI, PRIMAL_PHASEII, PRIMAL_SIMPLEX, PRIMAL_UNBOUNDED, fp20_feas_info::pstatus, QS_PRICE_DDEVEX, QS_PRICE_PSTEEP, RATIO_BCHANGE, RATIO_FAILED, RATIO_NOBCHANGE, fp20_ratio_res::ratio_stat, RATIO_UNBOUNDED, fp20_iter_info::resumeid, fp20_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, fp20_iter_info::solstatus, STAT_UPPER, fp20_lpinfo::tol, fp20_feas_info::totinfeas, fp20_ratio_res::tz, VARTIFICIAL, VFREE, fp20_lpinfo::vtype, fp20_lpinfo::yjz, and fp20_lpinfo::zz.

Referenced by fp20_ILLsimplex().

Here is the call graph for this function:

static int fp20_report_value ( fp20_lpinfo lp,
fp20_iter_info it,
const char *  value_name,
EGfp20_t  value 
)

Definition at line 3011 of file fp20_simplex.c.

References ILLstring_report, fp20_iter_info::itercnt, fp20_lpinfo::iterskip, NULL, fp20_lpinfo::O, QS_LP_ABORTED, fp20_ILLlpdata::reporter, fp20_iter_info::sdisplay, and fp20_iter_info::solstatus.

Referenced by fp20_monitor_iter().

static void fp20_restore_paraminfo ( fp20_iter_info it,
fp20_price_info pinf 
) [static]

Definition at line 784 of file fp20_simplex.c.

References fp20_iter_info::algorithm, fp20_param_info::d_strategy, fp20_price_info::d_strategy, fp20_price_info::dI_price, fp20_price_info::dII_price, fp20_param_info::dphaseI, fp20_param_info::dphaseII, fp20_iter_info::oldinfo, fp20_param_info::origalgo, fp20_param_info::p_strategy, fp20_price_info::p_strategy, fp20_price_info::pI_price, fp20_price_info::pII_price, fp20_param_info::pphaseI, and fp20_param_info::pphaseII.

Referenced by fp20_ILLsimplex(), and fp20_monitor_iter().

static void fp20_save_paraminfo ( fp20_price_info pinf,
fp20_iter_info it 
) [static]

Definition at line 769 of file fp20_simplex.c.

References fp20_iter_info::algorithm, fp20_price_info::d_strategy, fp20_param_info::d_strategy, fp20_price_info::dI_price, fp20_price_info::dII_price, fp20_param_info::dphaseI, fp20_param_info::dphaseII, fp20_iter_info::oldinfo, fp20_param_info::origalgo, fp20_price_info::p_strategy, fp20_param_info::p_strategy, fp20_price_info::pI_price, fp20_price_info::pII_price, fp20_param_info::pphaseI, and fp20_param_info::pphaseII.

Referenced by fp20_ILLsimplex().

static int fp20_terminate_simplex ( fp20_lpinfo lp,
int  phase,
fp20_iter_info it 
) [static]

Definition at line 1260 of file fp20_simplex.c.

References fp20_iter_info::algorithm, fp20_feas_info::dstatus, DUAL_PHASEI, DUAL_SIMPLEX, fp20_ILLfct_set_status_values(), fp20_ILLfct_unroll_bound_change(), fp20_ILLfct_unroll_coef_change(), fp20_ILLsimplex_retest_dsolution(), fp20_ILLsimplex_retest_psolution(), ILL_CLEANUP, ILL_MAX_ITER, ILL_MAX_TIME, fp20_lpinfo::nbchange, fp20_lpinfo::ncchange, NULL, PHASEI, PHASEII, PRIMAL_PHASEI, PRIMAL_SIMPLEX, fp20_feas_info::pstatus, fp20_iter_info::sdisplay, fp20_iter_info::solstatus, and fp20_feas_info::totinfeas.

Referenced by fp20_ILLsimplex().

Here is the call graph for this function:

static int fp20_test_progress ( EGfp20_t  objval,
EGfp20_t  prevobj 
) [static]

Definition at line 1314 of file fp20_simplex.c.

References fp20_PROGRESS_THRESH, and fp20_PROGRESS_ZERO.

Referenced by fp20_dual_phaseI_step(), fp20_dual_phaseII_step(), fp20_primal_phaseI_step(), and fp20_primal_phaseII_step().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file fp20_simplex.c.


Generated on Thu Mar 29 09:39:14 2012 for QSopt_ex by  doxygen 1.4.7