dbl_fct.c File Reference

#include "qs_config.h"
#include "dbl_iqsutil.h"
#include "dbl_lpdefs.h"
#include "stddefs.h"
#include "dbl_basis.h"
#include "dbl_fct.h"
#include "dbl_price.h"
#include "dbl_ratio.h"
#include "dbl_dstruct.h"

Include dependency graph for dbl_fct.c:

Go to the source code of this file.

Defines

#define dbl_C_VALUE(a)   (1.0+(double)(a)/(PARAM_HEAP_RATIO*dbl_ILLutil_our_log2(a)))
#define dbl_FCT_DEBUG   0

Functions

static void dbl_add_vectors (dbl_lpinfo *lp, dbl_svector *a, dbl_svector *b, dbl_svector *c, const double t)
static int dbl_compute_zA1 (dbl_lpinfo *lp, dbl_svector *z, dbl_svector *zA, double ztoler)
static int dbl_compute_zA3 (dbl_lpinfo *lp, dbl_svector *z, dbl_svector *zA, double ztoler)
static int dbl_expand_phaseI_bounds (dbl_lpinfo *lp, int *chgb)
static int dbl_expand_var_bounds (dbl_lpinfo *lp, double ftol, int *chgb)
static int dbl_expand_var_coefs (dbl_lpinfo *lp, double ftol, int *chgc)
int dbl_ILLfct_adjust_viol_bounds (dbl_lpinfo *lp)
int dbl_ILLfct_adjust_viol_coefs (dbl_lpinfo *lp)
int dbl_ILLfct_bound_shift (dbl_lpinfo *lp, int col, int bndtype, double newbnd)
void dbl_ILLfct_check_dfeasible (dbl_lpinfo *lp, dbl_feas_info *fs, const double ftol)
void dbl_ILLfct_check_pfeasible (dbl_lpinfo *lp, dbl_feas_info *fs, const double ftol)
void dbl_ILLfct_check_pIdfeasible (dbl_lpinfo *lp, dbl_feas_info *fs, double ftol)
void dbl_ILLfct_check_pIpfeasible (dbl_lpinfo *lp, dbl_feas_info *fs, double ftol)
int dbl_ILLfct_coef_shift (dbl_lpinfo *lp, int col, double newcoef)
void dbl_ILLfct_compute_binvrow (dbl_lpinfo *lp, dbl_svector *zz, int row, double ztoler)
void dbl_ILLfct_compute_dobj (dbl_lpinfo *lp)
void dbl_ILLfct_compute_dpIIy (dbl_lpinfo *lp, dbl_svector *srhs, dbl_svector *ssoln)
void dbl_ILLfct_compute_dpIy (dbl_lpinfo *lp, dbl_svector *srhs, dbl_svector *ssoln)
void dbl_ILLfct_compute_dsteep_upv (dbl_lpinfo *lp, dbl_svector *swz)
void dbl_ILLfct_compute_dz (dbl_lpinfo *lp)
void dbl_ILLfct_compute_phaseI_dz (dbl_lpinfo *lp)
void dbl_ILLfct_compute_phaseI_piz (dbl_lpinfo *lp)
void dbl_ILLfct_compute_phaseI_xbz (dbl_lpinfo *lp)
void dbl_ILLfct_compute_piz (dbl_lpinfo *lp)
void dbl_ILLfct_compute_pobj (dbl_lpinfo *lp)
void dbl_ILLfct_compute_ppIzz (dbl_lpinfo *lp, dbl_svector *srhs, dbl_svector *ssoln)
void dbl_ILLfct_compute_psteep_upv (dbl_lpinfo *lp, dbl_svector *swz)
void dbl_ILLfct_compute_vA (dbl_lpinfo *lp, dbl_svector *v, double *vA)
void dbl_ILLfct_compute_xbz (dbl_lpinfo *lp)
void dbl_ILLfct_compute_yz (dbl_lpinfo *lp, dbl_svector *yz, dbl_svector *updz, int col)
int dbl_ILLfct_compute_zA (dbl_lpinfo *lp, dbl_svector *z, dbl_svector *zA)
void dbl_ILLfct_compute_zz (dbl_lpinfo *lp, dbl_svector *zz, int row)
void dbl_ILLfct_dphaseI_simple_update (dbl_lpinfo *lp, double ftol)
void dbl_ILLfct_dual_adjust (dbl_lpinfo *lp, const double ftol)
void dbl_ILLfct_free_bndinfo (dbl_bndinfo *binfo)
void dbl_ILLfct_init_counts (dbl_lpinfo *lp)
void dbl_ILLfct_load_workvector (dbl_lpinfo *lp, dbl_svector *s)
dbl_bndinfodbl_ILLfct_new_bndinfo (void)
int dbl_ILLfct_perturb_bounds (dbl_lpinfo *lp)
int dbl_ILLfct_perturb_coefs (dbl_lpinfo *lp)
int dbl_ILLfct_perturb_phaseI_bounds (dbl_lpinfo *lp)
void dbl_ILLfct_print_counts (dbl_lpinfo *lp)
void dbl_ILLfct_set_status_values (dbl_lpinfo *lp, int pstatus, int dstatus, int ptype, int dtype)
void dbl_ILLfct_set_variable_type (dbl_lpinfo *lp)
int dbl_ILLfct_test_pivot (dbl_lpinfo *lp, int indx, int indxtype, double piv_val)
void dbl_ILLfct_unroll_bound_change (dbl_lpinfo *lp)
void dbl_ILLfct_unroll_coef_change (dbl_lpinfo *lp)
void dbl_ILLfct_update_basis_info (dbl_lpinfo *lp, int eindex, int lindex, int lvstat)
void dbl_ILLfct_update_counts (dbl_lpinfo *lp, int f, int upi, const double upd)
void dbl_ILLfct_update_dfeas (dbl_lpinfo *lp, int eindex, dbl_svector *srhs)
void dbl_ILLfct_update_dIIfeas (dbl_lpinfo *lp, int eindex, dbl_svector *srhs)
void dbl_ILLfct_update_dpI_prices (dbl_lpinfo *lp, dbl_price_info *pinf, dbl_svector *srhs, dbl_svector *ssoln, int lindex, double alpha)
void dbl_ILLfct_update_dpII_prices (dbl_lpinfo *lp, dbl_price_info *pinf, dbl_svector *srhs, dbl_svector *ssoln, int lindex, double eval, double alpha)
void dbl_ILLfct_update_dz (dbl_lpinfo *lp, int eindex, double alpha)
void dbl_ILLfct_update_pfeas (dbl_lpinfo *lp, int lindex, dbl_svector *srhs)
void dbl_ILLfct_update_pIdz (dbl_lpinfo *lp, dbl_svector *zA, int eindex, const double alpha)
void dbl_ILLfct_update_pIpiz (dbl_lpinfo *lp, dbl_svector *z, const double alpha)
void dbl_ILLfct_update_piz (dbl_lpinfo *lp, double alpha)
void dbl_ILLfct_update_ppI_prices (dbl_lpinfo *lp, dbl_price_info *pinf, dbl_svector *srhs, dbl_svector *ssoln, int eindex, int lindex, const double alpha)
void dbl_ILLfct_update_xz (dbl_lpinfo *lp, double tz, int eindex, int lindex)
void dbl_ILLfct_zero_workvector (dbl_lpinfo *lp)
static double dbl_my_rand (int bound, ILLrandstate *r)
static void dbl_update_piv_values (dbl_count_struct *c, int phase, const double piv)

Variables

static int TRACE = 0


Define Documentation

#define dbl_C_VALUE (  )     (1.0+(double)(a)/(PARAM_HEAP_RATIO*dbl_ILLutil_our_log2(a)))

Referenced by dbl_ILLfct_init_counts().

#define dbl_FCT_DEBUG   0

Definition at line 27 of file dbl_fct.c.


Function Documentation

static void dbl_add_vectors ( dbl_lpinfo lp,
dbl_svector a,
dbl_svector b,
dbl_svector c,
const double  t 
)

Definition at line 1677 of file dbl_fct.c.

References dbl_svector::coef, dbl_svector::indx, dbl_lpinfo::iwork, dbl_svector::nzcnt, and dbl_lpinfo::work.

Referenced by dbl_ILLfct_update_dIIfeas(), dbl_ILLfct_update_dpI_prices(), dbl_ILLfct_update_dpII_prices(), and dbl_ILLfct_update_ppI_prices().

static int dbl_compute_zA1 ( dbl_lpinfo lp,
dbl_svector z,
dbl_svector zA,
double  ztoler 
) [static]

Definition at line 478 of file dbl_fct.c.

References dbl_svector::coef, dbl_svector::indx, dbl_lpinfo::matbeg, dbl_lpinfo::matcnt, dbl_lpinfo::matind, dbl_lpinfo::matval, dbl_lpinfo::nbaz, dbl_lpinfo::nnbasic, dbl_lpinfo::nrows, and dbl_svector::nzcnt.

Referenced by dbl_ILLfct_compute_zA().

static int dbl_compute_zA3 ( dbl_lpinfo lp,
dbl_svector z,
dbl_svector zA,
double  ztoler 
)

Definition at line 522 of file dbl_fct.c.

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

Referenced by dbl_ILLfct_compute_zA().

static int dbl_expand_phaseI_bounds ( dbl_lpinfo lp,
int *  chgb 
) [static]

Definition at line 834 of file dbl_fct.c.

References dbl_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, dbl_ILLfct_bound_shift(), dbl_INFTY, dbl_my_rand(), dbl_NINFTY, ILLutil_sprand(), dbl_tol_struct::ip_tol, dbl_lpinfo::lz, dbl_lpinfo::nrows, dbl_lpinfo::rstate, dbl_lpinfo::tol, dbl_lpinfo::uz, VARTIFICIAL, VFREE, dbl_lpinfo::vtype, and dbl_lpinfo::xbz.

Referenced by dbl_ILLfct_perturb_phaseI_bounds().

Here is the call graph for this function:

static int dbl_expand_var_bounds ( dbl_lpinfo lp,
double  ftol,
int *  chgb 
)

Definition at line 772 of file dbl_fct.c.

References dbl_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, dbl_ILLfct_bound_shift(), dbl_INFTY, dbl_my_rand(), dbl_NINFTY, ILLutil_sprand(), dbl_lpinfo::lz, dbl_lpinfo::nrows, dbl_lpinfo::rstate, dbl_lpinfo::uz, VARTIFICIAL, VFREE, dbl_lpinfo::vtype, and dbl_lpinfo::xbz.

Referenced by dbl_ILLfct_adjust_viol_bounds(), and dbl_ILLfct_perturb_bounds().

Here is the call graph for this function:

static int dbl_expand_var_coefs ( dbl_lpinfo lp,
double  ftol,
int *  chgc 
)

Definition at line 1024 of file dbl_fct.c.

References dbl_lpinfo::cz, dbl_ILLfct_coef_shift(), dbl_my_rand(), dbl_lpinfo::dz, ILLutil_sprand(), dbl_lpinfo::nbaz, dbl_lpinfo::nnbasic, dbl_lpinfo::rstate, STAT_LOWER, STAT_UPPER, STAT_ZERO, VARTIFICIAL, VFIXED, dbl_lpinfo::vstat, and dbl_lpinfo::vtype.

Referenced by dbl_ILLfct_adjust_viol_coefs(), and dbl_ILLfct_perturb_coefs().

Here is the call graph for this function:

int dbl_ILLfct_adjust_viol_bounds ( dbl_lpinfo lp  ) 

Definition at line 887 of file dbl_fct.c.

References dbl_expand_var_bounds(), dbl_tol_struct::pfeas_tol, and dbl_lpinfo::tol.

Here is the call graph for this function:

int dbl_ILLfct_adjust_viol_coefs ( dbl_lpinfo lp  ) 

Definition at line 1102 of file dbl_fct.c.

References dbl_expand_var_coefs(), dbl_tol_struct::dfeas_tol, and dbl_lpinfo::tol.

Referenced by dbl_dual_phaseII_step().

Here is the call graph for this function:

int dbl_ILLfct_bound_shift ( dbl_lpinfo lp,
int  col,
int  bndtype,
double  newbnd 
)

Definition at line 933 of file dbl_fct.c.

References dbl_lpinfo::bchanges, BOUND_LOWER, dbl_bndinfo::btype, dbl_bndinfo::cbound, dbl_ILLfct_free_bndinfo(), dbl_ILLfct_new_bndinfo(), ILL_IFTRACE, dbl_lpinfo::lz, dbl_lpinfo::nbchange, dbl_bndinfo::next, dbl_bndinfo::pbound, dbl_lpinfo::uz, dbl_bndinfo::varnum, VARTIFICIAL, VBOUNDED, VFIXED, and dbl_lpinfo::vtype.

Referenced by dbl_expand_phaseI_bounds(), dbl_expand_var_bounds(), and dbl_primal_phaseII_step().

Here is the call graph for this function:

void dbl_ILLfct_check_dfeasible ( dbl_lpinfo lp,
dbl_feas_info fs,
const double  ftol 
)

Definition at line 1294 of file dbl_fct.c.

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

Referenced by dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_ILLbasis_get_cinitial(), dbl_ILLsimplex(), dbl_ILLsimplex_retest_dsolution(), dbl_ILLsimplex_retest_psolution(), dbl_monitor_iter(), and dbl_primal_phaseII_step().

void dbl_ILLfct_check_pfeasible ( dbl_lpinfo lp,
dbl_feas_info fs,
const double  ftol 
)

Definition at line 1201 of file dbl_fct.c.

References dbl_lpinfo::baz, dbl_lpinfo::bfeas, dbl_INFTY, dbl_NINFTY, ILL_IFTRACE, dbl_lpinfo::lz, dbl_lpinfo::nrows, PRIMAL_FEASIBLE, dbl_feas_info::pstatus, QSE_WLVL, dbl_feas_info::totinfeas, dbl_lpinfo::uz, and dbl_lpinfo::xbz.

Referenced by dbl_dual_phaseII_step(), dbl_ILLbasis_get_cinitial(), dbl_ILLsimplex(), dbl_ILLsimplex_retest_dsolution(), dbl_ILLsimplex_retest_psolution(), dbl_primal_phaseI_step(), and dbl_primal_phaseII_step().

void dbl_ILLfct_check_pIdfeasible ( dbl_lpinfo lp,
dbl_feas_info fs,
double  ftol 
)

Definition at line 1346 of file dbl_fct.c.

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

Referenced by dbl_ILLsimplex_retest_psolution().

void dbl_ILLfct_check_pIpfeasible ( dbl_lpinfo lp,
dbl_feas_info fs,
double  ftol 
)

Definition at line 1263 of file dbl_fct.c.

References dbl_lpinfo::baz, dbl_INFTY, dbl_NINFTY, dbl_lpinfo::lz, dbl_lpinfo::nrows, PRIMAL_FEASIBLE, dbl_feas_info::pstatus, dbl_feas_info::totinfeas, dbl_lpinfo::uz, and dbl_lpinfo::xbz.

Referenced by dbl_ILLsimplex_retest_dsolution().

int dbl_ILLfct_coef_shift ( dbl_lpinfo lp,
int  col,
double  newcoef 
)

Definition at line 1135 of file dbl_fct.c.

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

Referenced by dbl_dual_phaseII_step(), and dbl_expand_var_coefs().

void dbl_ILLfct_compute_binvrow ( dbl_lpinfo lp,
dbl_svector zz,
int  row,
double  ztoler 
)

Definition at line 440 of file dbl_fct.c.

References dbl_svector::coef, dbl_ILLbasis_row_solve(), dbl_ILLfactor_set_factor_dparam(), dbl_SZERO_TOLER, dbl_lpinfo::f, dbl_svector::indx, dbl_svector::nzcnt, and QS_FACTOR_SZERO_TOL.

Referenced by dbl_ILLfct_compute_zz().

Here is the call graph for this function:

void dbl_ILLfct_compute_dobj ( dbl_lpinfo lp  ) 

Definition at line 194 of file dbl_fct.c.

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

Referenced by dbl_dual_phaseII_step(), dbl_ILLsimplex(), dbl_ILLsimplex_retest_dsolution(), and dbl_monitor_iter().

void dbl_ILLfct_compute_dpIIy ( dbl_lpinfo lp,
dbl_svector srhs,
dbl_svector ssoln 
)

Definition at line 2097 of file dbl_fct.c.

References dbl_ILLbasis_column_solve(), and dbl_svector::nzcnt.

Referenced by dbl_dual_phaseII_step().

Here is the call graph for this function:

void dbl_ILLfct_compute_dpIy ( dbl_lpinfo lp,
dbl_svector srhs,
dbl_svector ssoln 
)

Definition at line 1993 of file dbl_fct.c.

References dbl_ILLbasis_column_solve(), and dbl_svector::nzcnt.

Referenced by dbl_dual_phaseI_step().

Here is the call graph for this function:

void dbl_ILLfct_compute_dsteep_upv ( dbl_lpinfo lp,
dbl_svector swz 
)

Definition at line 471 of file dbl_fct.c.

References dbl_ILLbasis_column_solve(), and dbl_lpinfo::zz.

Referenced by dbl_dual_phaseI_step(), and dbl_dual_phaseII_step().

Here is the call graph for this function:

void dbl_ILLfct_compute_dz ( dbl_lpinfo lp  ) 

Definition at line 293 of file dbl_fct.c.

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

Referenced by dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_ILLbasis_get_cinitial(), dbl_ILLfct_unroll_coef_change(), dbl_ILLsimplex(), dbl_ILLsimplex_retest_dsolution(), dbl_ILLsimplex_retest_psolution(), and dbl_primal_phaseII_step().

void dbl_ILLfct_compute_phaseI_dz ( dbl_lpinfo lp  ) 

Definition at line 385 of file dbl_fct.c.

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

Referenced by dbl_ILLsimplex_retest_psolution(), and dbl_primal_phaseI_step().

void dbl_ILLfct_compute_phaseI_piz ( dbl_lpinfo lp  ) 

Definition at line 360 of file dbl_fct.c.

References dbl_lpinfo::bfeas, dbl_svector::coef, dbl_svector::indx, dbl_lpinfo::nrows, dbl_lpinfo::pIpiz, dbl_lpinfo::srhs, and dbl_lpinfo::ssoln.

Referenced by dbl_ILLsimplex_retest_psolution(), and dbl_primal_phaseI_step().

void dbl_ILLfct_compute_phaseI_xbz ( dbl_lpinfo lp  ) 

Definition at line 317 of file dbl_fct.c.

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

Referenced by dbl_dual_phaseI_step(), and dbl_ILLsimplex_retest_dsolution().

void dbl_ILLfct_compute_piz ( dbl_lpinfo lp  ) 

Definition at line 269 of file dbl_fct.c.

References dbl_lpinfo::baz, dbl_svector::coef, dbl_lpinfo::cz, dbl_svector::indx, dbl_lpinfo::nrows, dbl_lpinfo::piz, dbl_lpinfo::srhs, and dbl_lpinfo::ssoln.

Referenced by dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_ILLbasis_get_cinitial(), dbl_ILLfct_unroll_coef_change(), dbl_ILLsimplex(), dbl_ILLsimplex_retest_dsolution(), dbl_ILLsimplex_retest_psolution(), and dbl_primal_phaseII_step().

void dbl_ILLfct_compute_pobj ( dbl_lpinfo lp  ) 

Definition at line 168 of file dbl_fct.c.

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

Referenced by dbl_ILLsimplex(), dbl_ILLsimplex_retest_psolution(), and dbl_primal_phaseII_step().

void dbl_ILLfct_compute_ppIzz ( dbl_lpinfo lp,
dbl_svector srhs,
dbl_svector ssoln 
)

Definition at line 1801 of file dbl_fct.c.

References dbl_ILLbasis_row_solve(), ILL_IFTRACE, and dbl_svector::nzcnt.

Referenced by dbl_primal_phaseI_step().

Here is the call graph for this function:

void dbl_ILLfct_compute_psteep_upv ( dbl_lpinfo lp,
dbl_svector swz 
)

Definition at line 464 of file dbl_fct.c.

References dbl_ILLbasis_row_solve(), and dbl_lpinfo::yjz.

Referenced by dbl_primal_phaseI_step(), and dbl_primal_phaseII_step().

Here is the call graph for this function:

void dbl_ILLfct_compute_vA ( dbl_lpinfo lp,
dbl_svector v,
double *  vA 
)

Definition at line 588 of file dbl_fct.c.

References dbl_svector::coef, dbl_SZERO_TOLER, dbl_svector::indx, dbl_lpinfo::ncols, dbl_svector::nzcnt, dbl_lpinfo::rowbeg, dbl_lpinfo::rowcnt, dbl_lpinfo::rowind, and dbl_lpinfo::rowval.

Referenced by dbl_ILLbasis_tableau_row().

void dbl_ILLfct_compute_xbz ( dbl_lpinfo lp  ) 

Definition at line 220 of file dbl_fct.c.

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

Referenced by dbl_dual_phaseII_step(), dbl_ILLbasis_get_cinitial(), dbl_ILLfct_unroll_bound_change(), dbl_ILLsimplex(), dbl_ILLsimplex_retest_dsolution(), dbl_ILLsimplex_retest_psolution(), dbl_primal_phaseI_step(), and dbl_primal_phaseII_step().

void dbl_ILLfct_compute_yz ( dbl_lpinfo lp,
dbl_svector yz,
dbl_svector updz,
int  col 
)

Definition at line 412 of file dbl_fct.c.

References dbl_svector::coef, dbl_ILLbasis_column_solve(), dbl_ILLbasis_column_solve_update(), dbl_ILLfactor_set_factor_dparam(), dbl_PIVZ_TOLER, dbl_SZERO_TOLER, dbl_lpinfo::f, dbl_svector::indx, dbl_lpinfo::matbeg, dbl_lpinfo::matcnt, dbl_lpinfo::matind, dbl_lpinfo::matval, dbl_svector::nzcnt, and QS_FACTOR_SZERO_TOL.

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

Here is the call graph for this function:

int dbl_ILLfct_compute_zA ( dbl_lpinfo lp,
dbl_svector z,
dbl_svector zA 
)

Definition at line 576 of file dbl_fct.c.

References dbl_compute_zA1(), dbl_compute_zA3(), dbl_PIVZ_TOLER, dbl_lpinfo::nrows, and dbl_svector::nzcnt.

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

Here is the call graph for this function:

void dbl_ILLfct_compute_zz ( dbl_lpinfo lp,
dbl_svector zz,
int  row 
)

Definition at line 432 of file dbl_fct.c.

References dbl_ILLfct_compute_binvrow(), and dbl_PIVZ_TOLER.

Referenced by dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_ILLbasis_tableau_row(), dbl_ILLprice_build_dsteep_norms(), dbl_ILLprice_get_dsteep_norms(), dbl_primal_phaseI_step(), and dbl_primal_phaseII_step().

Here is the call graph for this function:

void dbl_ILLfct_dphaseI_simple_update ( dbl_lpinfo lp,
double  ftol 
)

Definition at line 1397 of file dbl_fct.c.

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

void dbl_ILLfct_dual_adjust ( dbl_lpinfo lp,
const double  ftol 
)

Definition at line 1377 of file dbl_fct.c.

References dbl_INFTY, dbl_NINFTY, dbl_lpinfo::dz, dbl_lpinfo::lz, dbl_lpinfo::nbaz, dbl_lpinfo::nnbasic, STAT_LOWER, STAT_UPPER, dbl_lpinfo::uz, and dbl_lpinfo::vstat.

Referenced by dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_ILLbasis_get_cinitial(), and dbl_ILLsimplex().

void dbl_ILLfct_free_bndinfo ( dbl_bndinfo binfo  ) 

Definition at line 54 of file dbl_fct.c.

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

Referenced by dbl_ILLfct_bound_shift().

void dbl_ILLfct_init_counts ( dbl_lpinfo lp  ) 

Definition at line 1491 of file dbl_fct.c.

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

void dbl_ILLfct_load_workvector ( dbl_lpinfo lp,
dbl_svector s 
)

Definition at line 105 of file dbl_fct.c.

References dbl_svector::coef, dbl_svector::indx, dbl_svector::nzcnt, and dbl_lpinfo::work.

Referenced by dbl_ILLprice_update_dsteep_norms(), and dbl_ILLprice_update_psteep_norms().

dbl_bndinfo* dbl_ILLfct_new_bndinfo ( void   ) 

Definition at line 39 of file dbl_fct.c.

References dbl_bndinfo::cbound, and dbl_bndinfo::pbound.

Referenced by dbl_ILLfct_bound_shift().

int dbl_ILLfct_perturb_bounds ( dbl_lpinfo lp  ) 

Definition at line 905 of file dbl_fct.c.

References dbl_expand_var_bounds(), dbl_tol_struct::ip_tol, and dbl_lpinfo::tol.

Referenced by dbl_monitor_iter().

Here is the call graph for this function:

int dbl_ILLfct_perturb_coefs ( dbl_lpinfo lp  ) 

Definition at line 1121 of file dbl_fct.c.

References dbl_expand_var_coefs(), dbl_tol_struct::id_tol, and dbl_lpinfo::tol.

Referenced by dbl_monitor_iter().

Here is the call graph for this function:

int dbl_ILLfct_perturb_phaseI_bounds ( dbl_lpinfo lp  ) 

Definition at line 919 of file dbl_fct.c.

References dbl_expand_phaseI_bounds().

Here is the call graph for this function:

void dbl_ILLfct_print_counts ( dbl_lpinfo lp  ) 

Definition at line 1646 of file dbl_fct.c.

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

Referenced by dbl_ILLsimplex().

void dbl_ILLfct_set_status_values ( dbl_lpinfo lp,
int  pstatus,
int  dstatus,
int  ptype,
int  dtype 
)

Definition at line 1416 of file dbl_fct.c.

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

Referenced by dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_ILLsimplex(), dbl_monitor_iter(), dbl_primal_phaseI_step(), dbl_primal_phaseII_step(), and dbl_terminate_simplex().

void dbl_ILLfct_set_variable_type ( dbl_lpinfo lp  ) 

Definition at line 129 of file dbl_fct.c.

References CLASS_LOGICAL, CLASS_STRUCT, dbl_INFTY, dbl_NINFTY, dbl_lpinfo::lz, dbl_lpinfo::matbeg, dbl_lpinfo::matcnt, dbl_lpinfo::matind, dbl_lpinfo::ncols, dbl_lpinfo::O, dbl_ILLlpdata::rowmap, dbl_lpinfo::uz, VARTIFICIAL, VBOUNDED, dbl_lpinfo::vclass, VFIXED, VFREE, VLOWER, dbl_lpinfo::vtype, and VUPPER.

Referenced by dbl_ILLsimplex().

int dbl_ILLfct_test_pivot ( dbl_lpinfo lp,
int  indx,
int  indxtype,
double  piv_val 
)

Definition at line 2147 of file dbl_fct.c.

References dbl_svector::coef, dbl_svector::indx, dbl_svector::nzcnt, ROW_PIVOT, and dbl_lpinfo::yjz.

Referenced by dbl_dual_phaseI_step(), and dbl_dual_phaseII_step().

void dbl_ILLfct_unroll_bound_change ( dbl_lpinfo lp  ) 

Definition at line 978 of file dbl_fct.c.

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

Referenced by dbl_ILLsimplex(), dbl_primal_phaseII_step(), and dbl_terminate_simplex().

Here is the call graph for this function:

void dbl_ILLfct_unroll_coef_change ( dbl_lpinfo lp  ) 

Definition at line 1167 of file dbl_fct.c.

References dbl_lpinfo::cchanges, dbl_coefinfo::ccoef, dbl_lpinfo::cz, dbl_ILLfct_compute_dz(), dbl_ILLfct_compute_piz(), dbl_lpinfo::dz, ILL_IFFREE, dbl_lpinfo::ncchange, dbl_coefinfo::next, dbl_coefinfo::pcoef, STAT_BASIC, dbl_coefinfo::varnum, dbl_lpinfo::vindex, and dbl_lpinfo::vstat.

Referenced by dbl_dual_phaseII_step(), dbl_ILLsimplex(), dbl_monitor_iter(), and dbl_terminate_simplex().

Here is the call graph for this function:

void dbl_ILLfct_update_basis_info ( dbl_lpinfo lp,
int  eindex,
int  lindex,
int  lvstat 
)

Definition at line 629 of file dbl_fct.c.

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

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

void dbl_ILLfct_update_counts ( dbl_lpinfo lp,
int  f,
int  upi,
const double  upd 
)

Definition at line 1572 of file dbl_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, dbl_lpinfo::cnts, dbl_update_piv_values(), dbl_count_struct::dI_iter, dbl_count_struct::dII_iter, DUAL_PHASEI, DUAL_PHASEII, ILL_IFTRACE, dbl_count_struct::num_pi, dbl_count_struct::num_pi1, dbl_count_struct::num_up, dbl_count_struct::num_y, dbl_count_struct::num_za, dbl_count_struct::pi1nz_cnt, dbl_count_struct::pI_iter, dbl_count_struct::pII_iter, dbl_count_struct::pinz_cnt, PRIMAL_PHASEI, PRIMAL_PHASEII, dbl_count_struct::tot_iter, dbl_count_struct::upnz_cnt, dbl_count_struct::y_ravg, dbl_count_struct::ynz_cnt, dbl_count_struct::za_ravg, and dbl_count_struct::zanz_cnt.

Referenced by dbl_dual_phaseI_step(), dbl_dual_phaseII_step(), dbl_ILLfct_update_dpI_prices(), dbl_ILLfct_update_dpII_prices(), dbl_ILLfct_update_ppI_prices(), dbl_ILLratio_dI_test(), dbl_ILLratio_dII_test(), dbl_ILLratio_longdII_test(), dbl_ILLratio_pI_test(), dbl_ILLratio_pII_test(), dbl_primal_phaseI_step(), and dbl_primal_phaseII_step().

Here is the call graph for this function:

void dbl_ILLfct_update_dfeas ( dbl_lpinfo lp,
int  eindex,
dbl_svector srhs 
)

Definition at line 1887 of file dbl_fct.c.

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

Referenced by dbl_dual_phaseI_step().

void dbl_ILLfct_update_dIIfeas ( dbl_lpinfo lp,
int  eindex,
dbl_svector srhs 
)

Definition at line 2047 of file dbl_fct.c.

References dbl_svector::coef, dbl_add_vectors(), dbl_pI_uinfo::dty, dbl_svector::indx, dbl_pI_uinfo::ix, dbl_lpinfo::lz, dbl_lpinfo::matbeg, dbl_lpinfo::matcnt, dbl_lpinfo::matind, dbl_lpinfo::matval, dbl_lpinfo::nbaz, dbl_svector::nzcnt, dbl_pI_uinfo::perm, STAT_LOWER, STAT_UPPER, dbl_pI_uinfo::t, t, dbl_pI_uinfo::tctr, dbl_pI_uinfo::tz, dbl_lpinfo::upd, dbl_lpinfo::uz, dbl_lpinfo::vstat, and dbl_lpinfo::zA.

Referenced by dbl_dual_phaseII_step().

Here is the call graph for this function:

void dbl_ILLfct_update_dpI_prices ( dbl_lpinfo lp,
dbl_price_info pinf,
dbl_svector srhs,
dbl_svector ssoln,
int  lindex,
double  alpha 
)

Definition at line 2004 of file dbl_fct.c.

References CNT_YRAVG, dbl_svector::coef, COMPLETE_PRICING, dbl_price_info::d_strategy, dbl_add_vectors(), dbl_ILLfct_update_counts(), dbl_ILLfct_update_xz(), dbl_ILLprice_compute_primal_inf(), dbl_ILLprice_update_mpartial_price(), dbl_pI_uinfo::dty, DUAL_PHASEI, dbl_pI_uinfo::fs, dbl_svector::indx, dbl_svector::nzcnt, dbl_pI_uinfo::piv, ROW_PRICING, dbl_lpinfo::upd, dbl_lpinfo::xbz, and dbl_lpinfo::yjz.

Referenced by dbl_dual_phaseI_step().

Here is the call graph for this function:

void dbl_ILLfct_update_dpII_prices ( dbl_lpinfo lp,
dbl_price_info pinf,
dbl_svector srhs,
dbl_svector ssoln,
int  lindex,
double  eval,
double  alpha 
)

Definition at line 2108 of file dbl_fct.c.

References CNT_YRAVG, dbl_svector::coef, COMPLETE_PRICING, dbl_price_info::d_strategy, dbl_add_vectors(), dbl_ILLfct_update_counts(), dbl_ILLfct_update_xz(), dbl_ILLprice_compute_primal_inf(), dbl_ILLprice_update_mpartial_price(), DUAL_PHASEII, dbl_svector::indx, dbl_svector::nzcnt, ROW_PRICING, dbl_lpinfo::xbz, and dbl_lpinfo::yjz.

Referenced by dbl_dual_phaseII_step().

Here is the call graph for this function:

void dbl_ILLfct_update_dz ( dbl_lpinfo lp,
int  eindex,
double  alpha 
)

Definition at line 716 of file dbl_fct.c.

References dbl_svector::coef, dbl_lpinfo::dz, dbl_svector::indx, dbl_svector::nzcnt, and dbl_lpinfo::zA.

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

void dbl_ILLfct_update_pfeas ( dbl_lpinfo lp,
int  lindex,
dbl_svector srhs 
)

Definition at line 1716 of file dbl_fct.c.

References dbl_lpinfo::baz, BBOUND, dbl_lpinfo::bfeas, dbl_svector::coef, dbl_INFTY, dbl_NINFTY, dbl_pI_uinfo::dty, ILL_IFTRACE, dbl_svector::indx, dbl_tol_struct::ip_tol, dbl_lpinfo::iwork, dbl_pI_uinfo::ix, dbl_lpinfo::lz, dbl_svector::nzcnt, dbl_pI_uinfo::perm, dbl_pI_uinfo::t, t, dbl_pI_uinfo::tctr, dbl_lpinfo::tol, dbl_pI_uinfo::tz, dbl_lpinfo::upd, dbl_lpinfo::uz, dbl_lpinfo::xbz, and dbl_lpinfo::yjz.

Referenced by dbl_primal_phaseI_step().

void dbl_ILLfct_update_pIdz ( dbl_lpinfo lp,
dbl_svector zA,
int  eindex,
const double  alpha 
)

Definition at line 728 of file dbl_fct.c.

References dbl_svector::coef, dbl_svector::indx, dbl_svector::nzcnt, and dbl_lpinfo::pIdz.

Referenced by dbl_ILLfct_update_ppI_prices().

void dbl_ILLfct_update_pIpiz ( dbl_lpinfo lp,
dbl_svector z,
const double  alpha 
)

Definition at line 695 of file dbl_fct.c.

References dbl_svector::coef, dbl_svector::indx, dbl_svector::nzcnt, and dbl_lpinfo::pIpiz.

Referenced by dbl_ILLfct_update_ppI_prices().

void dbl_ILLfct_update_piz ( dbl_lpinfo lp,
double  alpha 
)

Definition at line 685 of file dbl_fct.c.

References dbl_svector::coef, dbl_svector::indx, dbl_svector::nzcnt, dbl_lpinfo::piz, and dbl_lpinfo::zz.

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

void dbl_ILLfct_update_ppI_prices ( dbl_lpinfo lp,
dbl_price_info pinf,
dbl_svector srhs,
dbl_svector ssoln,
int  eindex,
int  lindex,
const double  alpha 
)

Definition at line 1813 of file dbl_fct.c.

References CNT_ZARAVG, COL_PRICING, COMPLETE_PRICING, dbl_add_vectors(), dbl_ILLfct_compute_zA(), dbl_ILLfct_update_counts(), dbl_ILLfct_update_pIdz(), dbl_ILLfct_update_pIpiz(), dbl_ILLprice_compute_dual_inf(), dbl_ILLprice_update_mpartial_price(), dbl_pI_uinfo::dty, dbl_pI_uinfo::fs, ILL_IFTRACE, dbl_svector::nzcnt, dbl_price_info::p_strategy, dbl_lpinfo::pIdz, dbl_pI_uinfo::piv, PRIMAL_PHASEI, dbl_lpinfo::upd, and dbl_lpinfo::zz.

Referenced by dbl_primal_phaseI_step().

Here is the call graph for this function:

void dbl_ILLfct_update_xz ( dbl_lpinfo lp,
double  tz,
int  eindex,
int  lindex 
)

Definition at line 657 of file dbl_fct.c.

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

Referenced by dbl_ILLfct_update_dpI_prices(), dbl_ILLfct_update_dpII_prices(), dbl_primal_phaseI_step(), and dbl_primal_phaseII_step().

void dbl_ILLfct_zero_workvector ( dbl_lpinfo lp  ) 

Definition at line 119 of file dbl_fct.c.

References dbl_svector::coef, dbl_svector::indx, dbl_svector::nzcnt, and dbl_lpinfo::work.

Referenced by dbl_ILLprice_update_dsteep_norms(), and dbl_ILLprice_update_psteep_norms().

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

Definition at line 756 of file dbl_fct.c.

References ILLutil_lprand().

Referenced by dbl_expand_phaseI_bounds(), dbl_expand_var_bounds(), and dbl_expand_var_coefs().

Here is the call graph for this function:

static void dbl_update_piv_values ( dbl_count_struct c,
int  phase,
const double  piv 
) [static]

Definition at line 1532 of file dbl_fct.c.

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

Referenced by dbl_ILLfct_update_counts().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file dbl_fct.c.


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