fct.c File Reference

#include "qs_config.h"
#include "iqsutil.h"
#include "lpdefs.h"
#include "stddefs.h"
#include "basis.h"
#include "fct.h"
#include "price.h"
#include "ratio.h"
#include "dstruct.h"

Include dependency graph for fct.c:

Go to the source code of this file.

Defines

#define C_VALUE(a)   (1.0+(double)(a)/(PARAM_HEAP_RATIO*ILLutil_our_log2(a)))
#define FCT_DEBUG   0

Functions

static void add_vectors (lpinfo *lp, svector *a, svector *b, svector *c, const EGlpNum_t t)
static int compute_zA1 (lpinfo *lp, svector *z, svector *zA, EGlpNum_t ztoler)
static int compute_zA3 (lpinfo *lp, svector *z, svector *zA, EGlpNum_t ztoler)
static int expand_phaseI_bounds (lpinfo *lp, int *chgb)
static int expand_var_bounds (lpinfo *lp, EGlpNum_t ftol, int *chgb)
static int expand_var_coefs (lpinfo *lp, EGlpNum_t ftol, int *chgc)
int ILLfct_adjust_viol_bounds (lpinfo *lp)
int ILLfct_adjust_viol_coefs (lpinfo *lp)
int ILLfct_bound_shift (lpinfo *lp, int col, int bndtype, EGlpNum_t newbnd)
void ILLfct_check_dfeasible (lpinfo *lp, feas_info *fs, const EGlpNum_t ftol)
void ILLfct_check_pfeasible (lpinfo *lp, feas_info *fs, const EGlpNum_t ftol)
void ILLfct_check_pIdfeasible (lpinfo *lp, feas_info *fs, EGlpNum_t ftol)
void ILLfct_check_pIpfeasible (lpinfo *lp, feas_info *fs, EGlpNum_t ftol)
int ILLfct_coef_shift (lpinfo *lp, int col, EGlpNum_t newcoef)
void ILLfct_compute_binvrow (lpinfo *lp, svector *zz, int row, EGlpNum_t ztoler)
void ILLfct_compute_dobj (lpinfo *lp)
void ILLfct_compute_dpIIy (lpinfo *lp, svector *srhs, svector *ssoln)
void ILLfct_compute_dpIy (lpinfo *lp, svector *srhs, svector *ssoln)
void ILLfct_compute_dsteep_upv (lpinfo *lp, svector *swz)
void ILLfct_compute_dz (lpinfo *lp)
void ILLfct_compute_phaseI_dz (lpinfo *lp)
void ILLfct_compute_phaseI_piz (lpinfo *lp)
void ILLfct_compute_phaseI_xbz (lpinfo *lp)
void ILLfct_compute_piz (lpinfo *lp)
void ILLfct_compute_pobj (lpinfo *lp)
void ILLfct_compute_ppIzz (lpinfo *lp, svector *srhs, svector *ssoln)
void ILLfct_compute_psteep_upv (lpinfo *lp, svector *swz)
void ILLfct_compute_vA (lpinfo *lp, svector *v, EGlpNum_t *vA)
void ILLfct_compute_xbz (lpinfo *lp)
void ILLfct_compute_yz (lpinfo *lp, svector *yz, svector *updz, int col)
int ILLfct_compute_zA (lpinfo *lp, svector *z, svector *zA)
void ILLfct_compute_zz (lpinfo *lp, svector *zz, int row)
void ILLfct_dphaseI_simple_update (lpinfo *lp, EGlpNum_t ftol)
void ILLfct_dual_adjust (lpinfo *lp, const EGlpNum_t ftol)
void ILLfct_free_bndinfo (bndinfo *binfo)
void ILLfct_init_counts (lpinfo *lp)
void ILLfct_load_workvector (lpinfo *lp, svector *s)
bndinfoILLfct_new_bndinfo (void)
int ILLfct_perturb_bounds (lpinfo *lp)
int ILLfct_perturb_coefs (lpinfo *lp)
int ILLfct_perturb_phaseI_bounds (lpinfo *lp)
void ILLfct_print_counts (lpinfo *lp)
void ILLfct_set_status_values (lpinfo *lp, int pstatus, int dstatus, int ptype, int dtype)
void ILLfct_set_variable_type (lpinfo *lp)
int ILLfct_test_pivot (lpinfo *lp, int indx, int indxtype, EGlpNum_t piv_val)
void ILLfct_unroll_bound_change (lpinfo *lp)
void ILLfct_unroll_coef_change (lpinfo *lp)
void ILLfct_update_basis_info (lpinfo *lp, int eindex, int lindex, int lvstat)
void ILLfct_update_counts (lpinfo *lp, int f, int upi, const EGlpNum_t upd)
void ILLfct_update_dfeas (lpinfo *lp, int eindex, svector *srhs)
void ILLfct_update_dIIfeas (lpinfo *lp, int eindex, svector *srhs)
void ILLfct_update_dpI_prices (lpinfo *lp, price_info *pinf, svector *srhs, svector *ssoln, int lindex, EGlpNum_t alpha)
void ILLfct_update_dpII_prices (lpinfo *lp, price_info *pinf, svector *srhs, svector *ssoln, int lindex, EGlpNum_t eval, EGlpNum_t alpha)
void ILLfct_update_dz (lpinfo *lp, int eindex, EGlpNum_t alpha)
void ILLfct_update_pfeas (lpinfo *lp, int lindex, svector *srhs)
void ILLfct_update_pIdz (lpinfo *lp, svector *zA, int eindex, const EGlpNum_t alpha)
void ILLfct_update_pIpiz (lpinfo *lp, svector *z, const EGlpNum_t alpha)
void ILLfct_update_piz (lpinfo *lp, EGlpNum_t alpha)
void ILLfct_update_ppI_prices (lpinfo *lp, price_info *pinf, svector *srhs, svector *ssoln, int eindex, int lindex, const EGlpNum_t alpha)
void ILLfct_update_xz (lpinfo *lp, EGlpNum_t tz, int eindex, int lindex)
void ILLfct_zero_workvector (lpinfo *lp)
static double my_rand (int bound, ILLrandstate *r)
static void update_piv_values (count_struct *c, int phase, const EGlpNum_t piv)

Variables

static int TRACE = 0


Define Documentation

#define C_VALUE (  )     (1.0+(double)(a)/(PARAM_HEAP_RATIO*ILLutil_our_log2(a)))

Referenced by ILLfct_init_counts().

#define FCT_DEBUG   0

Definition at line 27 of file fct.c.


Function Documentation

static void add_vectors ( lpinfo lp,
svector a,
svector b,
svector c,
const EGlpNum_t  t 
)

Definition at line 1677 of file fct.c.

References svector::coef, svector::indx, lpinfo::iwork, svector::nzcnt, and lpinfo::work.

Referenced by ILLfct_update_dIIfeas(), ILLfct_update_dpI_prices(), ILLfct_update_dpII_prices(), and ILLfct_update_ppI_prices().

static int compute_zA1 ( lpinfo lp,
svector z,
svector zA,
EGlpNum_t  ztoler 
) [static]

Definition at line 478 of file fct.c.

References svector::coef, svector::indx, lpinfo::matbeg, lpinfo::matcnt, lpinfo::matind, lpinfo::matval, lpinfo::nbaz, lpinfo::nnbasic, lpinfo::nrows, and svector::nzcnt.

Referenced by ILLfct_compute_zA().

static int compute_zA3 ( lpinfo lp,
svector z,
svector zA,
EGlpNum_t  ztoler 
)

Definition at line 522 of file fct.c.

References svector::coef, svector::indx, lpinfo::iwork, svector::nzcnt, lpinfo::rowbeg, lpinfo::rowcnt, lpinfo::rowind, lpinfo::rowval, STAT_BASIC, lpinfo::vindex, lpinfo::vstat, and lpinfo::work.

Referenced by ILLfct_compute_zA().

static int expand_phaseI_bounds ( lpinfo lp,
int *  chgb 
) [static]

Definition at line 834 of file fct.c.

References lpinfo::baz, BOUND_LOWER, BOUND_UPPER, ILLfct_bound_shift(), ILLutil_sprand(), INFTY, tol_struct::ip_tol, lpinfo::lz, my_rand(), NINFTY, lpinfo::nrows, lpinfo::rstate, lpinfo::tol, lpinfo::uz, VARTIFICIAL, VFREE, lpinfo::vtype, and lpinfo::xbz.

Referenced by ILLfct_perturb_phaseI_bounds().

Here is the call graph for this function:

static int expand_var_bounds ( lpinfo lp,
EGlpNum_t  ftol,
int *  chgb 
)

Definition at line 772 of file fct.c.

References lpinfo::baz, BOUND_LOWER, BOUND_UPPER, ILLfct_bound_shift(), ILLutil_sprand(), INFTY, lpinfo::lz, my_rand(), NINFTY, lpinfo::nrows, lpinfo::rstate, lpinfo::uz, VARTIFICIAL, VFREE, lpinfo::vtype, and lpinfo::xbz.

Referenced by ILLfct_adjust_viol_bounds(), and ILLfct_perturb_bounds().

Here is the call graph for this function:

static int expand_var_coefs ( lpinfo lp,
EGlpNum_t  ftol,
int *  chgc 
)

Definition at line 1024 of file fct.c.

References lpinfo::cz, lpinfo::dz, ILLfct_coef_shift(), ILLutil_sprand(), my_rand(), lpinfo::nbaz, lpinfo::nnbasic, lpinfo::rstate, STAT_LOWER, STAT_UPPER, STAT_ZERO, VARTIFICIAL, VFIXED, lpinfo::vstat, and lpinfo::vtype.

Referenced by ILLfct_adjust_viol_coefs(), and ILLfct_perturb_coefs().

Here is the call graph for this function:

int ILLfct_adjust_viol_bounds ( lpinfo lp  ) 

Definition at line 887 of file fct.c.

References expand_var_bounds(), tol_struct::pfeas_tol, and lpinfo::tol.

Here is the call graph for this function:

int ILLfct_adjust_viol_coefs ( lpinfo lp  ) 

Definition at line 1102 of file fct.c.

References tol_struct::dfeas_tol, expand_var_coefs(), and lpinfo::tol.

Referenced by dual_phaseII_step().

Here is the call graph for this function:

int ILLfct_bound_shift ( lpinfo lp,
int  col,
int  bndtype,
EGlpNum_t  newbnd 
)

Definition at line 933 of file fct.c.

References lpinfo::bchanges, BOUND_LOWER, bndinfo::btype, bndinfo::cbound, ILL_IFTRACE, ILLfct_free_bndinfo(), ILLfct_new_bndinfo(), lpinfo::lz, lpinfo::nbchange, bndinfo::next, bndinfo::pbound, lpinfo::uz, bndinfo::varnum, VARTIFICIAL, VBOUNDED, VFIXED, and lpinfo::vtype.

Referenced by expand_phaseI_bounds(), expand_var_bounds(), and primal_phaseII_step().

Here is the call graph for this function:

void ILLfct_check_dfeasible ( lpinfo lp,
feas_info fs,
const EGlpNum_t  ftol 
)

Definition at line 1294 of file fct.c.

References lpinfo::dfeas, feas_info::dstatus, DUAL_FEASIBLE, lpinfo::dz, lpinfo::nbaz, lpinfo::nnbasic, STAT_LOWER, STAT_UPPER, STAT_ZERO, feas_info::totinfeas, VARTIFICIAL, VFIXED, lpinfo::vstat, and lpinfo::vtype.

Referenced by dual_phaseI_step(), dual_phaseII_step(), ILLbasis_get_cinitial(), ILLsimplex(), ILLsimplex_retest_dsolution(), ILLsimplex_retest_psolution(), monitor_iter(), and primal_phaseII_step().

void ILLfct_check_pfeasible ( lpinfo lp,
feas_info fs,
const EGlpNum_t  ftol 
)

Definition at line 1201 of file fct.c.

References lpinfo::baz, lpinfo::bfeas, ILL_IFTRACE, INFTY, lpinfo::lz, NINFTY, lpinfo::nrows, PRIMAL_FEASIBLE, feas_info::pstatus, QSE_WLVL, feas_info::totinfeas, lpinfo::uz, and lpinfo::xbz.

Referenced by dual_phaseII_step(), ILLbasis_get_cinitial(), ILLsimplex(), ILLsimplex_retest_dsolution(), ILLsimplex_retest_psolution(), primal_phaseI_step(), and primal_phaseII_step().

void ILLfct_check_pIdfeasible ( lpinfo lp,
feas_info fs,
EGlpNum_t  ftol 
)

Definition at line 1346 of file fct.c.

References feas_info::dstatus, DUAL_FEASIBLE, DUAL_INFEASIBLE, lpinfo::nbaz, lpinfo::nnbasic, lpinfo::pIdz, STAT_LOWER, STAT_UPPER, STAT_ZERO, VARTIFICIAL, VFIXED, lpinfo::vstat, and lpinfo::vtype.

Referenced by ILLsimplex_retest_psolution().

void ILLfct_check_pIpfeasible ( lpinfo lp,
feas_info fs,
EGlpNum_t  ftol 
)

Definition at line 1263 of file fct.c.

References lpinfo::baz, INFTY, lpinfo::lz, NINFTY, lpinfo::nrows, PRIMAL_FEASIBLE, feas_info::pstatus, feas_info::totinfeas, lpinfo::uz, and lpinfo::xbz.

Referenced by ILLsimplex_retest_dsolution().

int ILLfct_coef_shift ( lpinfo lp,
int  col,
EGlpNum_t  newcoef 
)

Definition at line 1135 of file fct.c.

References lpinfo::cchanges, coefinfo::ccoef, lpinfo::cz, lpinfo::dz, ILL_IFFREE, ILL_SAFE_MALLOC, lpinfo::ncchange, coefinfo::next, coefinfo::pcoef, coefinfo::varnum, and lpinfo::vindex.

Referenced by dual_phaseII_step(), and expand_var_coefs().

void ILLfct_compute_binvrow ( lpinfo lp,
svector zz,
int  row,
EGlpNum_t  ztoler 
)

Definition at line 440 of file fct.c.

References svector::coef, lpinfo::f, ILLbasis_row_solve(), ILLfactor_set_factor_dparam(), svector::indx, svector::nzcnt, QS_FACTOR_SZERO_TOL, and SZERO_TOLER.

Referenced by ILLfct_compute_zz().

Here is the call graph for this function:

void ILLfct_compute_dobj ( lpinfo lp  ) 

Definition at line 194 of file fct.c.

References lpinfo::bz, lpinfo::dobjval, lpinfo::dz, lpinfo::lz, lpinfo::nbaz, lpinfo::nnbasic, lpinfo::nrows, lpinfo::objval, lpinfo::piz, STAT_LOWER, STAT_UPPER, lpinfo::uz, and lpinfo::vstat.

Referenced by dual_phaseII_step(), ILLsimplex(), ILLsimplex_retest_dsolution(), and monitor_iter().

void ILLfct_compute_dpIIy ( lpinfo lp,
svector srhs,
svector ssoln 
)

Definition at line 2097 of file fct.c.

References ILLbasis_column_solve(), and svector::nzcnt.

Referenced by dual_phaseII_step().

Here is the call graph for this function:

void ILLfct_compute_dpIy ( lpinfo lp,
svector srhs,
svector ssoln 
)

Definition at line 1993 of file fct.c.

References ILLbasis_column_solve(), and svector::nzcnt.

Referenced by dual_phaseI_step().

Here is the call graph for this function:

void ILLfct_compute_dsteep_upv ( lpinfo lp,
svector swz 
)

Definition at line 471 of file fct.c.

References ILLbasis_column_solve(), and lpinfo::zz.

Referenced by dual_phaseI_step(), and dual_phaseII_step().

Here is the call graph for this function:

void ILLfct_compute_dz ( lpinfo lp  ) 

Definition at line 293 of file fct.c.

References lpinfo::cz, lpinfo::dz, lpinfo::matbeg, lpinfo::matcnt, lpinfo::matind, lpinfo::matval, lpinfo::nbaz, lpinfo::nnbasic, and lpinfo::piz.

Referenced by dual_phaseI_step(), dual_phaseII_step(), ILLbasis_get_cinitial(), ILLfct_unroll_coef_change(), ILLsimplex(), ILLsimplex_retest_dsolution(), ILLsimplex_retest_psolution(), and primal_phaseII_step().

void ILLfct_compute_phaseI_dz ( lpinfo lp  ) 

Definition at line 385 of file fct.c.

References ILL_IFTRACE, lpinfo::matbeg, lpinfo::matcnt, lpinfo::matind, lpinfo::matval, lpinfo::nbaz, lpinfo::nnbasic, lpinfo::pIdz, and lpinfo::pIpiz.

Referenced by ILLsimplex_retest_psolution(), and primal_phaseI_step().

void ILLfct_compute_phaseI_piz ( lpinfo lp  ) 

Definition at line 360 of file fct.c.

References lpinfo::bfeas, svector::coef, svector::indx, lpinfo::nrows, lpinfo::pIpiz, lpinfo::srhs, and lpinfo::ssoln.

Referenced by ILLsimplex_retest_psolution(), and primal_phaseI_step().

void ILLfct_compute_phaseI_xbz ( lpinfo lp  ) 

Definition at line 317 of file fct.c.

References svector::coef, lpinfo::dfeas, lpinfo::matbeg, lpinfo::matcnt, lpinfo::matind, lpinfo::matval, lpinfo::nbaz, lpinfo::nnbasic, lpinfo::nrows, lpinfo::srhs, lpinfo::ssoln, and lpinfo::xbz.

Referenced by dual_phaseI_step(), and ILLsimplex_retest_dsolution().

void ILLfct_compute_piz ( lpinfo lp  ) 

Definition at line 269 of file fct.c.

References lpinfo::baz, svector::coef, lpinfo::cz, svector::indx, lpinfo::nrows, lpinfo::piz, lpinfo::srhs, and lpinfo::ssoln.

Referenced by dual_phaseI_step(), dual_phaseII_step(), ILLbasis_get_cinitial(), ILLfct_unroll_coef_change(), ILLsimplex(), ILLsimplex_retest_dsolution(), ILLsimplex_retest_psolution(), and primal_phaseII_step().

void ILLfct_compute_pobj ( lpinfo lp  ) 

Definition at line 168 of file fct.c.

References lpinfo::baz, lpinfo::cz, lpinfo::lz, lpinfo::nbaz, lpinfo::nnbasic, lpinfo::nrows, lpinfo::objval, lpinfo::pobjval, STAT_LOWER, STAT_UPPER, lpinfo::uz, lpinfo::vstat, and lpinfo::xbz.

Referenced by ILLsimplex(), ILLsimplex_retest_psolution(), and primal_phaseII_step().

void ILLfct_compute_ppIzz ( lpinfo lp,
svector srhs,
svector ssoln 
)

Definition at line 1801 of file fct.c.

References ILL_IFTRACE, ILLbasis_row_solve(), and svector::nzcnt.

Referenced by primal_phaseI_step().

Here is the call graph for this function:

void ILLfct_compute_psteep_upv ( lpinfo lp,
svector swz 
)

Definition at line 464 of file fct.c.

References ILLbasis_row_solve(), and lpinfo::yjz.

Referenced by primal_phaseI_step(), and primal_phaseII_step().

Here is the call graph for this function:

void ILLfct_compute_vA ( lpinfo lp,
svector v,
EGlpNum_t *  vA 
)

Definition at line 588 of file fct.c.

References svector::coef, svector::indx, lpinfo::ncols, svector::nzcnt, lpinfo::rowbeg, lpinfo::rowcnt, lpinfo::rowind, lpinfo::rowval, and SZERO_TOLER.

Referenced by ILLbasis_tableau_row().

void ILLfct_compute_xbz ( lpinfo lp  ) 

Definition at line 220 of file fct.c.

References lpinfo::bz, svector::coef, svector::indx, lpinfo::lz, lpinfo::matbeg, lpinfo::matcnt, lpinfo::matind, lpinfo::matval, lpinfo::nbaz, lpinfo::nnbasic, lpinfo::nrows, lpinfo::srhs, lpinfo::ssoln, STAT_LOWER, STAT_UPPER, lpinfo::uz, lpinfo::vstat, and lpinfo::xbz.

Referenced by dual_phaseII_step(), ILLbasis_get_cinitial(), ILLfct_unroll_bound_change(), ILLsimplex(), ILLsimplex_retest_dsolution(), ILLsimplex_retest_psolution(), primal_phaseI_step(), and primal_phaseII_step().

void ILLfct_compute_yz ( lpinfo lp,
svector yz,
svector updz,
int  col 
)

Definition at line 412 of file fct.c.

References svector::coef, lpinfo::f, ILLbasis_column_solve(), ILLbasis_column_solve_update(), ILLfactor_set_factor_dparam(), svector::indx, lpinfo::matbeg, lpinfo::matcnt, lpinfo::matind, lpinfo::matval, svector::nzcnt, PIVZ_TOLER, QS_FACTOR_SZERO_TOL, and SZERO_TOLER.

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

Here is the call graph for this function:

int ILLfct_compute_zA ( lpinfo lp,
svector z,
svector zA 
)

Definition at line 576 of file fct.c.

References compute_zA1(), compute_zA3(), lpinfo::nrows, svector::nzcnt, and PIVZ_TOLER.

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

Here is the call graph for this function:

void ILLfct_compute_zz ( lpinfo lp,
svector zz,
int  row 
)

Definition at line 432 of file fct.c.

References ILLfct_compute_binvrow(), and PIVZ_TOLER.

Referenced by dual_phaseI_step(), dual_phaseII_step(), ILLbasis_tableau_row(), ILLprice_build_dsteep_norms(), ILLprice_get_dsteep_norms(), primal_phaseI_step(), and primal_phaseII_step().

Here is the call graph for this function:

void ILLfct_dphaseI_simple_update ( lpinfo lp,
EGlpNum_t  ftol 
)

Definition at line 1397 of file fct.c.

References lpinfo::dz, lpinfo::nbaz, lpinfo::nnbasic, STAT_LOWER, STAT_UPPER, VBOUNDED, lpinfo::vstat, and lpinfo::vtype.

void ILLfct_dual_adjust ( lpinfo lp,
const EGlpNum_t  ftol 
)

Definition at line 1377 of file fct.c.

References lpinfo::dz, INFTY, lpinfo::lz, lpinfo::nbaz, NINFTY, lpinfo::nnbasic, STAT_LOWER, STAT_UPPER, lpinfo::uz, and lpinfo::vstat.

Referenced by dual_phaseI_step(), dual_phaseII_step(), ILLbasis_get_cinitial(), and ILLsimplex().

void ILLfct_free_bndinfo ( bndinfo binfo  ) 

Definition at line 54 of file fct.c.

References bndinfo::cbound, ILL_IFFREE, and bndinfo::pbound.

Referenced by ILLfct_bound_shift().

void ILLfct_init_counts ( lpinfo lp  ) 

Definition at line 1491 of file fct.c.

References C_VALUE, lpinfo::cnts, count_struct::dI_iter, count_struct::dII_iter, count_struct::dnorm_cnt, count_struct::dupv_cnt, ILL_IFTRACE, lpinfo::nnbasic, lpinfo::nrows, count_struct::num_pi, count_struct::num_pi1, count_struct::num_up, count_struct::num_y, count_struct::num_z, count_struct::num_za, count_struct::pi1nz_cnt, count_struct::pI_iter, count_struct::pII_iter, count_struct::pinz_cnt, count_struct::pivdI, count_struct::pivdII, count_struct::pivpI, count_struct::pivpII, count_struct::pnorm_cnt, count_struct::pupv_cnt, count_struct::tot_iter, count_struct::upnz_cnt, count_struct::y_ravg, count_struct::ynz_cnt, count_struct::za_ravg, count_struct::zanz_cnt, and count_struct::znz_cnt.

void ILLfct_load_workvector ( lpinfo lp,
svector s 
)

Definition at line 105 of file fct.c.

References svector::coef, svector::indx, svector::nzcnt, and lpinfo::work.

Referenced by ILLprice_update_dsteep_norms(), and ILLprice_update_psteep_norms().

bndinfo* ILLfct_new_bndinfo ( void   ) 

Definition at line 39 of file fct.c.

References bndinfo::cbound, and bndinfo::pbound.

Referenced by ILLfct_bound_shift().

int ILLfct_perturb_bounds ( lpinfo lp  ) 

Definition at line 905 of file fct.c.

References expand_var_bounds(), tol_struct::ip_tol, and lpinfo::tol.

Referenced by monitor_iter().

Here is the call graph for this function:

int ILLfct_perturb_coefs ( lpinfo lp  ) 

Definition at line 1121 of file fct.c.

References expand_var_coefs(), tol_struct::id_tol, and lpinfo::tol.

Referenced by monitor_iter().

Here is the call graph for this function:

int ILLfct_perturb_phaseI_bounds ( lpinfo lp  ) 

Definition at line 919 of file fct.c.

References expand_phaseI_bounds().

Here is the call graph for this function:

void ILLfct_print_counts ( lpinfo lp  ) 

Definition at line 1646 of file fct.c.

References lpinfo::cnts, count_struct::dI_iter, count_struct::dII_iter, count_struct::dnorm_cnt, lpinfo::nnbasic, lpinfo::nrows, count_struct::num_pi, count_struct::num_pi1, count_struct::num_up, count_struct::num_y, count_struct::num_z, count_struct::num_za, lpinfo::O, count_struct::pi1nz_cnt, count_struct::pI_iter, count_struct::pII_iter, count_struct::pinz_cnt, count_struct::pivdI, count_struct::pivdII, count_struct::pivpI, count_struct::pivpII, count_struct::pnorm_cnt, ILLlpdata::probname, count_struct::tot_iter, count_struct::upnz_cnt, count_struct::ynz_cnt, count_struct::zanz_cnt, and count_struct::znz_cnt.

Referenced by ILLsimplex().

void ILLfct_set_status_values ( lpinfo lp,
int  pstatus,
int  dstatus,
int  ptype,
int  dtype 
)

Definition at line 1416 of file fct.c.

References lpinfo::basisstat, lp_status_info::dual_feasible, DUAL_FEASIBLE, DUAL_INFEASIBLE, lp_status_info::dual_infeasible, lp_status_info::dual_unbounded, DUAL_UNBOUNDED, lpinfo::nbchange, lpinfo::ncchange, lp_status_info::optimal, PHASEI, PHASEII, lp_status_info::primal_feasible, PRIMAL_FEASIBLE, PRIMAL_INFEASIBLE, lp_status_info::primal_infeasible, lp_status_info::primal_unbounded, PRIMAL_UNBOUNDED, and lpinfo::probstat.

Referenced by dual_phaseI_step(), dual_phaseII_step(), ILLsimplex(), monitor_iter(), primal_phaseI_step(), primal_phaseII_step(), and terminate_simplex().

void ILLfct_set_variable_type ( lpinfo lp  ) 

Definition at line 129 of file fct.c.

References CLASS_LOGICAL, CLASS_STRUCT, INFTY, lpinfo::lz, lpinfo::matbeg, lpinfo::matcnt, lpinfo::matind, lpinfo::ncols, NINFTY, lpinfo::O, ILLlpdata::rowmap, lpinfo::uz, VARTIFICIAL, VBOUNDED, lpinfo::vclass, VFIXED, VFREE, VLOWER, lpinfo::vtype, and VUPPER.

Referenced by ILLsimplex().

int ILLfct_test_pivot ( lpinfo lp,
int  indx,
int  indxtype,
EGlpNum_t  piv_val 
)

Definition at line 2147 of file fct.c.

References svector::coef, svector::indx, svector::nzcnt, ROW_PIVOT, and lpinfo::yjz.

Referenced by dual_phaseI_step(), and dual_phaseII_step().

void ILLfct_unroll_bound_change ( lpinfo lp  ) 

Definition at line 978 of file fct.c.

References lpinfo::bchanges, BOUND_LOWER, BOUND_UPPER, bndinfo::btype, bndinfo::cbound, ILL_IFFREE, ILL_IFTRACE, ILLfct_compute_xbz(), lpinfo::lz, lpinfo::nbchange, bndinfo::next, bndinfo::pbound, STAT_BASIC, STAT_LOWER, STAT_UPPER, lpinfo::uz, bndinfo::varnum, VARTIFICIAL, VBOUNDED, VFIXED, lpinfo::vstat, and lpinfo::vtype.

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

Here is the call graph for this function:

void ILLfct_unroll_coef_change ( lpinfo lp  ) 

Definition at line 1167 of file fct.c.

References lpinfo::cchanges, coefinfo::ccoef, lpinfo::cz, lpinfo::dz, ILL_IFFREE, ILLfct_compute_dz(), ILLfct_compute_piz(), lpinfo::ncchange, coefinfo::next, coefinfo::pcoef, STAT_BASIC, coefinfo::varnum, lpinfo::vindex, and lpinfo::vstat.

Referenced by dual_phaseII_step(), ILLsimplex(), monitor_iter(), and terminate_simplex().

Here is the call graph for this function:

void ILLfct_update_basis_info ( lpinfo lp,
int  eindex,
int  lindex,
int  lvstat 
)

Definition at line 629 of file fct.c.

References lpinfo::basisid, lpinfo::baz, lpinfo::nbaz, STAT_BASIC, STAT_LOWER, STAT_UPPER, lpinfo::vindex, and lpinfo::vstat.

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

void ILLfct_update_counts ( lpinfo lp,
int  f,
int  upi,
const EGlpNum_t  upd 
)

Definition at line 1572 of file fct.c.

References CNT_DIIPIV, CNT_DIPIV, CNT_DPHASE1ITER, CNT_DPHASE2ITER, CNT_P1PINZ, CNT_PIIPIV, CNT_PINZ, CNT_PIPIV, CNT_PPHASE1ITER, CNT_PPHASE2ITER, CNT_UPNZ, CNT_YNZ, CNT_YRAVG, CNT_ZANZ, CNT_ZARAVG, lpinfo::cnts, count_struct::dI_iter, count_struct::dII_iter, DUAL_PHASEI, DUAL_PHASEII, ILL_IFTRACE, count_struct::num_pi, count_struct::num_pi1, count_struct::num_up, count_struct::num_y, count_struct::num_za, count_struct::pi1nz_cnt, count_struct::pI_iter, count_struct::pII_iter, count_struct::pinz_cnt, PRIMAL_PHASEI, PRIMAL_PHASEII, count_struct::tot_iter, update_piv_values(), count_struct::upnz_cnt, count_struct::y_ravg, count_struct::ynz_cnt, count_struct::za_ravg, and count_struct::zanz_cnt.

Referenced by dual_phaseI_step(), dual_phaseII_step(), ILLfct_update_dpI_prices(), ILLfct_update_dpII_prices(), ILLfct_update_ppI_prices(), ILLratio_dI_test(), ILLratio_dII_test(), ILLratio_longdII_test(), ILLratio_pI_test(), ILLratio_pII_test(), primal_phaseI_step(), and primal_phaseII_step().

Here is the call graph for this function:

void ILLfct_update_dfeas ( lpinfo lp,
int  eindex,
svector srhs 
)

Definition at line 1887 of file fct.c.

References BSKIP, svector::coef, lpinfo::dfeas, pI_uinfo::dty, lpinfo::dz, tol_struct::id_tol, svector::indx, lpinfo::iwork, pI_uinfo::ix, lpinfo::matbeg, lpinfo::matcnt, lpinfo::matind, lpinfo::matval, lpinfo::nbaz, lpinfo::nrows, svector::nzcnt, pI_uinfo::perm, STAT_LOWER, STAT_UPPER, STAT_ZERO, pI_uinfo::t, t, pI_uinfo::tctr, lpinfo::tol, pI_uinfo::tz, lpinfo::upd, lpinfo::vstat, lpinfo::vtype, lpinfo::work, and lpinfo::zA.

Referenced by dual_phaseI_step().

void ILLfct_update_dIIfeas ( lpinfo lp,
int  eindex,
svector srhs 
)

Definition at line 2047 of file fct.c.

References add_vectors(), svector::coef, pI_uinfo::dty, svector::indx, pI_uinfo::ix, lpinfo::lz, lpinfo::matbeg, lpinfo::matcnt, lpinfo::matind, lpinfo::matval, lpinfo::nbaz, svector::nzcnt, pI_uinfo::perm, STAT_LOWER, STAT_UPPER, pI_uinfo::t, t, pI_uinfo::tctr, pI_uinfo::tz, lpinfo::upd, lpinfo::uz, lpinfo::vstat, and lpinfo::zA.

Referenced by dual_phaseII_step().

Here is the call graph for this function:

void ILLfct_update_dpI_prices ( lpinfo lp,
price_info pinf,
svector srhs,
svector ssoln,
int  lindex,
EGlpNum_t  alpha 
)

Definition at line 2004 of file fct.c.

References add_vectors(), CNT_YRAVG, svector::coef, COMPLETE_PRICING, price_info::d_strategy, pI_uinfo::dty, DUAL_PHASEI, pI_uinfo::fs, ILLfct_update_counts(), ILLfct_update_xz(), ILLprice_compute_primal_inf(), ILLprice_update_mpartial_price(), svector::indx, svector::nzcnt, pI_uinfo::piv, ROW_PRICING, lpinfo::upd, lpinfo::xbz, and lpinfo::yjz.

Referenced by dual_phaseI_step().

Here is the call graph for this function:

void ILLfct_update_dpII_prices ( lpinfo lp,
price_info pinf,
svector srhs,
svector ssoln,
int  lindex,
EGlpNum_t  eval,
EGlpNum_t  alpha 
)

Definition at line 2108 of file fct.c.

References add_vectors(), CNT_YRAVG, svector::coef, COMPLETE_PRICING, price_info::d_strategy, DUAL_PHASEII, ILLfct_update_counts(), ILLfct_update_xz(), ILLprice_compute_primal_inf(), ILLprice_update_mpartial_price(), svector::indx, svector::nzcnt, ROW_PRICING, lpinfo::xbz, and lpinfo::yjz.

Referenced by dual_phaseII_step().

Here is the call graph for this function:

void ILLfct_update_dz ( lpinfo lp,
int  eindex,
EGlpNum_t  alpha 
)

Definition at line 716 of file fct.c.

References svector::coef, lpinfo::dz, svector::indx, svector::nzcnt, and lpinfo::zA.

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

void ILLfct_update_pfeas ( lpinfo lp,
int  lindex,
svector srhs 
)

Definition at line 1716 of file fct.c.

References lpinfo::baz, BBOUND, lpinfo::bfeas, svector::coef, pI_uinfo::dty, ILL_IFTRACE, svector::indx, INFTY, tol_struct::ip_tol, lpinfo::iwork, pI_uinfo::ix, lpinfo::lz, NINFTY, svector::nzcnt, pI_uinfo::perm, pI_uinfo::t, t, pI_uinfo::tctr, lpinfo::tol, pI_uinfo::tz, lpinfo::upd, lpinfo::uz, lpinfo::xbz, and lpinfo::yjz.

Referenced by primal_phaseI_step().

void ILLfct_update_pIdz ( lpinfo lp,
svector zA,
int  eindex,
const EGlpNum_t  alpha 
)

Definition at line 728 of file fct.c.

References svector::coef, svector::indx, svector::nzcnt, and lpinfo::pIdz.

Referenced by ILLfct_update_ppI_prices().

void ILLfct_update_pIpiz ( lpinfo lp,
svector z,
const EGlpNum_t  alpha 
)

Definition at line 695 of file fct.c.

References svector::coef, svector::indx, svector::nzcnt, and lpinfo::pIpiz.

Referenced by ILLfct_update_ppI_prices().

void ILLfct_update_piz ( lpinfo lp,
EGlpNum_t  alpha 
)

Definition at line 685 of file fct.c.

References svector::coef, svector::indx, svector::nzcnt, lpinfo::piz, and lpinfo::zz.

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

void ILLfct_update_ppI_prices ( lpinfo lp,
price_info pinf,
svector srhs,
svector ssoln,
int  eindex,
int  lindex,
const EGlpNum_t  alpha 
)

Definition at line 1813 of file fct.c.

References add_vectors(), CNT_ZARAVG, COL_PRICING, COMPLETE_PRICING, pI_uinfo::dty, pI_uinfo::fs, ILL_IFTRACE, ILLfct_compute_zA(), ILLfct_update_counts(), ILLfct_update_pIdz(), ILLfct_update_pIpiz(), ILLprice_compute_dual_inf(), ILLprice_update_mpartial_price(), svector::nzcnt, price_info::p_strategy, lpinfo::pIdz, pI_uinfo::piv, PRIMAL_PHASEI, lpinfo::upd, and lpinfo::zz.

Referenced by primal_phaseI_step().

Here is the call graph for this function:

void ILLfct_update_xz ( lpinfo lp,
EGlpNum_t  tz,
int  eindex,
int  lindex 
)

Definition at line 657 of file fct.c.

References svector::coef, ILL_IFTRACE, svector::indx, lpinfo::lz, lpinfo::nbaz, svector::nzcnt, STAT_LOWER, STAT_UPPER, STAT_ZERO, lpinfo::uz, lpinfo::vstat, lpinfo::xbz, and lpinfo::yjz.

Referenced by ILLfct_update_dpI_prices(), ILLfct_update_dpII_prices(), primal_phaseI_step(), and primal_phaseII_step().

void ILLfct_zero_workvector ( lpinfo lp  ) 

Definition at line 119 of file fct.c.

References svector::coef, svector::indx, svector::nzcnt, and lpinfo::work.

Referenced by ILLprice_update_dsteep_norms(), and ILLprice_update_psteep_norms().

static double my_rand ( int  bound,
ILLrandstate r 
) [static]

Definition at line 756 of file fct.c.

References ILLutil_lprand().

Referenced by expand_phaseI_bounds(), expand_var_bounds(), and expand_var_coefs().

Here is the call graph for this function:

static void update_piv_values ( count_struct c,
int  phase,
const EGlpNum_t  piv 
) [static]

Definition at line 1532 of file fct.c.

References DUAL_PHASEI, DUAL_PHASEII, count_struct::pivdI, count_struct::pivdII, count_struct::pivpI, count_struct::pivpII, PRIMAL_PHASEI, and PRIMAL_PHASEII.

Referenced by ILLfct_update_counts().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file fct.c.


Generated on Thu Mar 29 09:35:31 2012 for QSopt_ex by  doxygen 1.4.7