mpq_fct.c File Reference

#include "qs_config.h"
#include "mpq_iqsutil.h"
#include "mpq_lpdefs.h"
#include "stddefs.h"
#include "mpq_basis.h"
#include "mpq_fct.h"
#include "mpq_price.h"
#include "mpq_ratio.h"
#include "mpq_dstruct.h"

Include dependency graph for mpq_fct.c:

Go to the source code of this file.

Defines

#define mpq_C_VALUE(a)   (1.0+(double)(a)/(PARAM_HEAP_RATIO*mpq_ILLutil_our_log2(a)))
#define mpq_FCT_DEBUG   0

Functions

static void mpq_add_vectors (mpq_lpinfo *lp, mpq_svector *a, mpq_svector *b, mpq_svector *c, const mpq_t t)
static int mpq_compute_zA1 (mpq_lpinfo *lp, mpq_svector *z, mpq_svector *zA, mpq_t ztoler)
static int mpq_compute_zA3 (mpq_lpinfo *lp, mpq_svector *z, mpq_svector *zA, mpq_t ztoler)
static int mpq_expand_phaseI_bounds (mpq_lpinfo *lp, int *chgb)
static int mpq_expand_var_bounds (mpq_lpinfo *lp, mpq_t ftol, int *chgb)
static int mpq_expand_var_coefs (mpq_lpinfo *lp, mpq_t ftol, int *chgc)
int mpq_ILLfct_adjust_viol_bounds (mpq_lpinfo *lp)
int mpq_ILLfct_adjust_viol_coefs (mpq_lpinfo *lp)
int mpq_ILLfct_bound_shift (mpq_lpinfo *lp, int col, int bndtype, mpq_t newbnd)
void mpq_ILLfct_check_dfeasible (mpq_lpinfo *lp, mpq_feas_info *fs, const mpq_t ftol)
void mpq_ILLfct_check_pfeasible (mpq_lpinfo *lp, mpq_feas_info *fs, const mpq_t ftol)
void mpq_ILLfct_check_pIdfeasible (mpq_lpinfo *lp, mpq_feas_info *fs, mpq_t ftol)
void mpq_ILLfct_check_pIpfeasible (mpq_lpinfo *lp, mpq_feas_info *fs, mpq_t ftol)
int mpq_ILLfct_coef_shift (mpq_lpinfo *lp, int col, mpq_t newcoef)
void mpq_ILLfct_compute_binvrow (mpq_lpinfo *lp, mpq_svector *zz, int row, mpq_t ztoler)
void mpq_ILLfct_compute_dobj (mpq_lpinfo *lp)
void mpq_ILLfct_compute_dpIIy (mpq_lpinfo *lp, mpq_svector *srhs, mpq_svector *ssoln)
void mpq_ILLfct_compute_dpIy (mpq_lpinfo *lp, mpq_svector *srhs, mpq_svector *ssoln)
void mpq_ILLfct_compute_dsteep_upv (mpq_lpinfo *lp, mpq_svector *swz)
void mpq_ILLfct_compute_dz (mpq_lpinfo *lp)
void mpq_ILLfct_compute_phaseI_dz (mpq_lpinfo *lp)
void mpq_ILLfct_compute_phaseI_piz (mpq_lpinfo *lp)
void mpq_ILLfct_compute_phaseI_xbz (mpq_lpinfo *lp)
void mpq_ILLfct_compute_piz (mpq_lpinfo *lp)
void mpq_ILLfct_compute_pobj (mpq_lpinfo *lp)
void mpq_ILLfct_compute_ppIzz (mpq_lpinfo *lp, mpq_svector *srhs, mpq_svector *ssoln)
void mpq_ILLfct_compute_psteep_upv (mpq_lpinfo *lp, mpq_svector *swz)
void mpq_ILLfct_compute_vA (mpq_lpinfo *lp, mpq_svector *v, mpq_t *vA)
void mpq_ILLfct_compute_xbz (mpq_lpinfo *lp)
void mpq_ILLfct_compute_yz (mpq_lpinfo *lp, mpq_svector *yz, mpq_svector *updz, int col)
int mpq_ILLfct_compute_zA (mpq_lpinfo *lp, mpq_svector *z, mpq_svector *zA)
void mpq_ILLfct_compute_zz (mpq_lpinfo *lp, mpq_svector *zz, int row)
void mpq_ILLfct_dphaseI_simple_update (mpq_lpinfo *lp, mpq_t ftol)
void mpq_ILLfct_dual_adjust (mpq_lpinfo *lp, const mpq_t ftol)
void mpq_ILLfct_free_bndinfo (mpq_bndinfo *binfo)
void mpq_ILLfct_init_counts (mpq_lpinfo *lp)
void mpq_ILLfct_load_workvector (mpq_lpinfo *lp, mpq_svector *s)
mpq_bndinfompq_ILLfct_new_bndinfo (void)
int mpq_ILLfct_perturb_bounds (mpq_lpinfo *lp)
int mpq_ILLfct_perturb_coefs (mpq_lpinfo *lp)
int mpq_ILLfct_perturb_phaseI_bounds (mpq_lpinfo *lp)
void mpq_ILLfct_print_counts (mpq_lpinfo *lp)
void mpq_ILLfct_set_status_values (mpq_lpinfo *lp, int pstatus, int dstatus, int ptype, int dtype)
void mpq_ILLfct_set_variable_type (mpq_lpinfo *lp)
int mpq_ILLfct_test_pivot (mpq_lpinfo *lp, int indx, int indxtype, mpq_t piv_val)
void mpq_ILLfct_unroll_bound_change (mpq_lpinfo *lp)
void mpq_ILLfct_unroll_coef_change (mpq_lpinfo *lp)
void mpq_ILLfct_update_basis_info (mpq_lpinfo *lp, int eindex, int lindex, int lvstat)
void mpq_ILLfct_update_counts (mpq_lpinfo *lp, int f, int upi, const mpq_t upd)
void mpq_ILLfct_update_dfeas (mpq_lpinfo *lp, int eindex, mpq_svector *srhs)
void mpq_ILLfct_update_dIIfeas (mpq_lpinfo *lp, int eindex, mpq_svector *srhs)
void mpq_ILLfct_update_dpI_prices (mpq_lpinfo *lp, mpq_price_info *pinf, mpq_svector *srhs, mpq_svector *ssoln, int lindex, mpq_t alpha)
void mpq_ILLfct_update_dpII_prices (mpq_lpinfo *lp, mpq_price_info *pinf, mpq_svector *srhs, mpq_svector *ssoln, int lindex, mpq_t eval, mpq_t alpha)
void mpq_ILLfct_update_dz (mpq_lpinfo *lp, int eindex, mpq_t alpha)
void mpq_ILLfct_update_pfeas (mpq_lpinfo *lp, int lindex, mpq_svector *srhs)
void mpq_ILLfct_update_pIdz (mpq_lpinfo *lp, mpq_svector *zA, int eindex, const mpq_t alpha)
void mpq_ILLfct_update_pIpiz (mpq_lpinfo *lp, mpq_svector *z, const mpq_t alpha)
void mpq_ILLfct_update_piz (mpq_lpinfo *lp, mpq_t alpha)
void mpq_ILLfct_update_ppI_prices (mpq_lpinfo *lp, mpq_price_info *pinf, mpq_svector *srhs, mpq_svector *ssoln, int eindex, int lindex, const mpq_t alpha)
void mpq_ILLfct_update_xz (mpq_lpinfo *lp, mpq_t tz, int eindex, int lindex)
void mpq_ILLfct_zero_workvector (mpq_lpinfo *lp)
static double mpq_my_rand (int bound, ILLrandstate *r)
static void mpq_update_piv_values (mpq_count_struct *c, int phase, const mpq_t piv)

Variables

static int TRACE = 0


Define Documentation

#define mpq_C_VALUE (  )     (1.0+(double)(a)/(PARAM_HEAP_RATIO*mpq_ILLutil_our_log2(a)))

Referenced by mpq_ILLfct_init_counts().

#define mpq_FCT_DEBUG   0

Definition at line 27 of file mpq_fct.c.


Function Documentation

static void mpq_add_vectors ( mpq_lpinfo lp,
mpq_svector a,
mpq_svector b,
mpq_svector c,
const mpq_t  t 
)

Definition at line 1677 of file mpq_fct.c.

References mpq_svector::coef, mpq_svector::indx, mpq_lpinfo::iwork, mpq_svector::nzcnt, and mpq_lpinfo::work.

Referenced by mpq_ILLfct_update_dIIfeas(), mpq_ILLfct_update_dpI_prices(), mpq_ILLfct_update_dpII_prices(), and mpq_ILLfct_update_ppI_prices().

static int mpq_compute_zA1 ( mpq_lpinfo lp,
mpq_svector z,
mpq_svector zA,
mpq_t  ztoler 
) [static]

Definition at line 478 of file mpq_fct.c.

References mpq_svector::coef, mpq_svector::indx, mpq_lpinfo::matbeg, mpq_lpinfo::matcnt, mpq_lpinfo::matind, mpq_lpinfo::matval, mpq_lpinfo::nbaz, mpq_lpinfo::nnbasic, mpq_lpinfo::nrows, and mpq_svector::nzcnt.

Referenced by mpq_ILLfct_compute_zA().

static int mpq_compute_zA3 ( mpq_lpinfo lp,
mpq_svector z,
mpq_svector zA,
mpq_t  ztoler 
)

Definition at line 522 of file mpq_fct.c.

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

Referenced by mpq_ILLfct_compute_zA().

static int mpq_expand_phaseI_bounds ( mpq_lpinfo lp,
int *  chgb 
) [static]

Definition at line 834 of file mpq_fct.c.

References mpq_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, ILLutil_sprand(), mpq_tol_struct::ip_tol, mpq_lpinfo::lz, mpq_ILLfct_bound_shift(), mpq_INFTY, mpq_my_rand(), mpq_NINFTY, mpq_lpinfo::nrows, mpq_lpinfo::rstate, mpq_lpinfo::tol, mpq_lpinfo::uz, VARTIFICIAL, VFREE, mpq_lpinfo::vtype, and mpq_lpinfo::xbz.

Referenced by mpq_ILLfct_perturb_phaseI_bounds().

Here is the call graph for this function:

static int mpq_expand_var_bounds ( mpq_lpinfo lp,
mpq_t  ftol,
int *  chgb 
)

Definition at line 772 of file mpq_fct.c.

References mpq_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, ILLutil_sprand(), mpq_lpinfo::lz, mpq_ILLfct_bound_shift(), mpq_INFTY, mpq_my_rand(), mpq_NINFTY, mpq_lpinfo::nrows, mpq_lpinfo::rstate, mpq_lpinfo::uz, VARTIFICIAL, VFREE, mpq_lpinfo::vtype, and mpq_lpinfo::xbz.

Referenced by mpq_ILLfct_adjust_viol_bounds(), and mpq_ILLfct_perturb_bounds().

Here is the call graph for this function:

static int mpq_expand_var_coefs ( mpq_lpinfo lp,
mpq_t  ftol,
int *  chgc 
)

Definition at line 1024 of file mpq_fct.c.

References mpq_lpinfo::cz, mpq_lpinfo::dz, ILLutil_sprand(), mpq_ILLfct_coef_shift(), mpq_my_rand(), mpq_lpinfo::nbaz, mpq_lpinfo::nnbasic, mpq_lpinfo::rstate, STAT_LOWER, STAT_UPPER, STAT_ZERO, VARTIFICIAL, VFIXED, mpq_lpinfo::vstat, and mpq_lpinfo::vtype.

Referenced by mpq_ILLfct_adjust_viol_coefs(), and mpq_ILLfct_perturb_coefs().

Here is the call graph for this function:

int mpq_ILLfct_adjust_viol_bounds ( mpq_lpinfo lp  ) 

Definition at line 887 of file mpq_fct.c.

References mpq_expand_var_bounds(), mpq_tol_struct::pfeas_tol, and mpq_lpinfo::tol.

Here is the call graph for this function:

int mpq_ILLfct_adjust_viol_coefs ( mpq_lpinfo lp  ) 

Definition at line 1102 of file mpq_fct.c.

References mpq_tol_struct::dfeas_tol, mpq_expand_var_coefs(), and mpq_lpinfo::tol.

Referenced by mpq_dual_phaseII_step().

Here is the call graph for this function:

int mpq_ILLfct_bound_shift ( mpq_lpinfo lp,
int  col,
int  bndtype,
mpq_t  newbnd 
)

Definition at line 933 of file mpq_fct.c.

References mpq_lpinfo::bchanges, BOUND_LOWER, mpq_bndinfo::btype, mpq_bndinfo::cbound, ILL_IFTRACE, mpq_lpinfo::lz, mpq_ILLfct_free_bndinfo(), mpq_ILLfct_new_bndinfo(), mpq_lpinfo::nbchange, mpq_bndinfo::next, mpq_bndinfo::pbound, mpq_lpinfo::uz, mpq_bndinfo::varnum, VARTIFICIAL, VBOUNDED, VFIXED, and mpq_lpinfo::vtype.

Referenced by mpq_expand_phaseI_bounds(), mpq_expand_var_bounds(), and mpq_primal_phaseII_step().

Here is the call graph for this function:

void mpq_ILLfct_check_pIdfeasible ( mpq_lpinfo lp,
mpq_feas_info fs,
mpq_t  ftol 
)

Definition at line 1346 of file mpq_fct.c.

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

Referenced by mpq_ILLsimplex_retest_psolution().

void mpq_ILLfct_check_pIpfeasible ( mpq_lpinfo lp,
mpq_feas_info fs,
mpq_t  ftol 
)

Definition at line 1263 of file mpq_fct.c.

References mpq_lpinfo::baz, mpq_lpinfo::lz, mpq_INFTY, mpq_NINFTY, mpq_lpinfo::nrows, PRIMAL_FEASIBLE, mpq_feas_info::pstatus, mpq_feas_info::totinfeas, mpq_lpinfo::uz, and mpq_lpinfo::xbz.

Referenced by mpq_ILLsimplex_retest_dsolution().

int mpq_ILLfct_coef_shift ( mpq_lpinfo lp,
int  col,
mpq_t  newcoef 
)

Definition at line 1135 of file mpq_fct.c.

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

Referenced by mpq_dual_phaseII_step(), and mpq_expand_var_coefs().

void mpq_ILLfct_compute_binvrow ( mpq_lpinfo lp,
mpq_svector zz,
int  row,
mpq_t  ztoler 
)

Definition at line 440 of file mpq_fct.c.

References mpq_svector::coef, mpq_lpinfo::f, mpq_svector::indx, mpq_ILLbasis_row_solve(), mpq_ILLfactor_set_factor_dparam(), mpq_SZERO_TOLER, mpq_svector::nzcnt, and QS_FACTOR_SZERO_TOL.

Referenced by mpq_ILLfct_compute_zz().

Here is the call graph for this function:

void mpq_ILLfct_compute_dpIIy ( mpq_lpinfo lp,
mpq_svector srhs,
mpq_svector ssoln 
)

Definition at line 2097 of file mpq_fct.c.

References mpq_ILLbasis_column_solve(), and mpq_svector::nzcnt.

Referenced by mpq_dual_phaseII_step().

Here is the call graph for this function:

void mpq_ILLfct_compute_dpIy ( mpq_lpinfo lp,
mpq_svector srhs,
mpq_svector ssoln 
)

Definition at line 1993 of file mpq_fct.c.

References mpq_ILLbasis_column_solve(), and mpq_svector::nzcnt.

Referenced by mpq_dual_phaseI_step().

Here is the call graph for this function:

void mpq_ILLfct_compute_dsteep_upv ( mpq_lpinfo lp,
mpq_svector swz 
)

Definition at line 471 of file mpq_fct.c.

References mpq_ILLbasis_column_solve(), and mpq_lpinfo::zz.

Referenced by mpq_dual_phaseI_step(), and mpq_dual_phaseII_step().

Here is the call graph for this function:

void mpq_ILLfct_compute_phaseI_dz ( mpq_lpinfo lp  ) 

Definition at line 385 of file mpq_fct.c.

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

Referenced by mpq_ILLsimplex_retest_psolution(), and mpq_primal_phaseI_step().

void mpq_ILLfct_compute_phaseI_xbz ( mpq_lpinfo lp  ) 

Definition at line 317 of file mpq_fct.c.

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

Referenced by mpq_dual_phaseI_step(), and mpq_ILLsimplex_retest_dsolution().

void mpq_ILLfct_compute_pobj ( mpq_lpinfo lp  ) 

Definition at line 168 of file mpq_fct.c.

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

Referenced by mpq_ILLsimplex(), mpq_ILLsimplex_retest_psolution(), and mpq_primal_phaseII_step().

void mpq_ILLfct_compute_ppIzz ( mpq_lpinfo lp,
mpq_svector srhs,
mpq_svector ssoln 
)

Definition at line 1801 of file mpq_fct.c.

References ILL_IFTRACE, mpq_ILLbasis_row_solve(), and mpq_svector::nzcnt.

Referenced by mpq_primal_phaseI_step().

Here is the call graph for this function:

void mpq_ILLfct_compute_psteep_upv ( mpq_lpinfo lp,
mpq_svector swz 
)

Definition at line 464 of file mpq_fct.c.

References mpq_ILLbasis_row_solve(), and mpq_lpinfo::yjz.

Referenced by mpq_primal_phaseI_step(), and mpq_primal_phaseII_step().

Here is the call graph for this function:

void mpq_ILLfct_compute_vA ( mpq_lpinfo lp,
mpq_svector v,
mpq_t *  vA 
)

Definition at line 588 of file mpq_fct.c.

References mpq_svector::coef, mpq_svector::indx, mpq_SZERO_TOLER, mpq_lpinfo::ncols, mpq_svector::nzcnt, mpq_lpinfo::rowbeg, mpq_lpinfo::rowcnt, mpq_lpinfo::rowind, and mpq_lpinfo::rowval.

Referenced by mpq_ILLbasis_tableau_row().

void mpq_ILLfct_compute_yz ( mpq_lpinfo lp,
mpq_svector yz,
mpq_svector updz,
int  col 
)

Definition at line 412 of file mpq_fct.c.

References mpq_svector::coef, mpq_lpinfo::f, mpq_svector::indx, mpq_lpinfo::matbeg, mpq_lpinfo::matcnt, mpq_lpinfo::matind, mpq_lpinfo::matval, mpq_ILLbasis_column_solve(), mpq_ILLbasis_column_solve_update(), mpq_ILLfactor_set_factor_dparam(), mpq_PIVZ_TOLER, mpq_SZERO_TOLER, mpq_svector::nzcnt, and QS_FACTOR_SZERO_TOL.

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

Here is the call graph for this function:

int mpq_ILLfct_compute_zA ( mpq_lpinfo lp,
mpq_svector z,
mpq_svector zA 
)

Definition at line 576 of file mpq_fct.c.

References mpq_compute_zA1(), mpq_compute_zA3(), mpq_PIVZ_TOLER, mpq_lpinfo::nrows, and mpq_svector::nzcnt.

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

Here is the call graph for this function:

void mpq_ILLfct_compute_zz ( mpq_lpinfo lp,
mpq_svector zz,
int  row 
)

Definition at line 432 of file mpq_fct.c.

References mpq_ILLfct_compute_binvrow(), and mpq_PIVZ_TOLER.

Referenced by mpq_dual_phaseI_step(), mpq_dual_phaseII_step(), mpq_ILLbasis_tableau_row(), mpq_ILLprice_build_dsteep_norms(), mpq_ILLprice_get_dsteep_norms(), mpq_primal_phaseI_step(), and mpq_primal_phaseII_step().

Here is the call graph for this function:

void mpq_ILLfct_dphaseI_simple_update ( mpq_lpinfo lp,
mpq_t  ftol 
)

Definition at line 1397 of file mpq_fct.c.

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

void mpq_ILLfct_dual_adjust ( mpq_lpinfo lp,
const mpq_t  ftol 
)

Definition at line 1377 of file mpq_fct.c.

References mpq_lpinfo::dz, mpq_lpinfo::lz, mpq_INFTY, mpq_NINFTY, mpq_lpinfo::nbaz, mpq_lpinfo::nnbasic, STAT_LOWER, STAT_UPPER, mpq_lpinfo::uz, and mpq_lpinfo::vstat.

Referenced by mpq_dual_phaseI_step(), mpq_dual_phaseII_step(), mpq_ILLbasis_get_cinitial(), and mpq_ILLsimplex().

void mpq_ILLfct_free_bndinfo ( mpq_bndinfo binfo  ) 

Definition at line 54 of file mpq_fct.c.

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

Referenced by mpq_ILLfct_bound_shift().

void mpq_ILLfct_init_counts ( mpq_lpinfo lp  ) 

Definition at line 1491 of file mpq_fct.c.

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

void mpq_ILLfct_load_workvector ( mpq_lpinfo lp,
mpq_svector s 
)

Definition at line 105 of file mpq_fct.c.

References mpq_svector::coef, mpq_svector::indx, mpq_svector::nzcnt, and mpq_lpinfo::work.

Referenced by mpq_ILLprice_update_dsteep_norms(), and mpq_ILLprice_update_psteep_norms().

mpq_bndinfo* mpq_ILLfct_new_bndinfo ( void   ) 

Definition at line 39 of file mpq_fct.c.

References mpq_bndinfo::cbound, and mpq_bndinfo::pbound.

Referenced by mpq_ILLfct_bound_shift().

int mpq_ILLfct_perturb_bounds ( mpq_lpinfo lp  ) 

Definition at line 905 of file mpq_fct.c.

References mpq_tol_struct::ip_tol, mpq_expand_var_bounds(), and mpq_lpinfo::tol.

Referenced by mpq_monitor_iter().

Here is the call graph for this function:

int mpq_ILLfct_perturb_coefs ( mpq_lpinfo lp  ) 

Definition at line 1121 of file mpq_fct.c.

References mpq_tol_struct::id_tol, mpq_expand_var_coefs(), and mpq_lpinfo::tol.

Referenced by mpq_monitor_iter().

Here is the call graph for this function:

int mpq_ILLfct_perturb_phaseI_bounds ( mpq_lpinfo lp  ) 

Definition at line 919 of file mpq_fct.c.

References mpq_expand_phaseI_bounds().

Here is the call graph for this function:

void mpq_ILLfct_print_counts ( mpq_lpinfo lp  ) 

Definition at line 1646 of file mpq_fct.c.

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

Referenced by mpq_ILLsimplex().

int mpq_ILLfct_test_pivot ( mpq_lpinfo lp,
int  indx,
int  indxtype,
mpq_t  piv_val 
)

Definition at line 2147 of file mpq_fct.c.

References mpq_svector::coef, mpq_svector::indx, mpq_svector::nzcnt, ROW_PIVOT, and mpq_lpinfo::yjz.

Referenced by mpq_dual_phaseI_step(), and mpq_dual_phaseII_step().

void mpq_ILLfct_unroll_bound_change ( mpq_lpinfo lp  ) 

Definition at line 978 of file mpq_fct.c.

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

Referenced by mpq_ILLsimplex(), mpq_primal_phaseII_step(), and mpq_terminate_simplex().

Here is the call graph for this function:

void mpq_ILLfct_unroll_coef_change ( mpq_lpinfo lp  ) 

Definition at line 1167 of file mpq_fct.c.

References mpq_lpinfo::cchanges, mpq_coefinfo::ccoef, mpq_lpinfo::cz, mpq_lpinfo::dz, ILL_IFFREE, mpq_ILLfct_compute_dz(), mpq_ILLfct_compute_piz(), mpq_lpinfo::ncchange, mpq_coefinfo::next, mpq_coefinfo::pcoef, STAT_BASIC, mpq_coefinfo::varnum, mpq_lpinfo::vindex, and mpq_lpinfo::vstat.

Referenced by mpq_dual_phaseII_step(), mpq_ILLsimplex(), mpq_monitor_iter(), and mpq_terminate_simplex().

Here is the call graph for this function:

void mpq_ILLfct_update_basis_info ( mpq_lpinfo lp,
int  eindex,
int  lindex,
int  lvstat 
)

Definition at line 629 of file mpq_fct.c.

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

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

void mpq_ILLfct_update_counts ( mpq_lpinfo lp,
int  f,
int  upi,
const mpq_t  upd 
)

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

Referenced by mpq_dual_phaseI_step(), mpq_dual_phaseII_step(), mpq_ILLfct_update_dpI_prices(), mpq_ILLfct_update_dpII_prices(), mpq_ILLfct_update_ppI_prices(), mpq_ILLratio_dI_test(), mpq_ILLratio_dII_test(), mpq_ILLratio_longdII_test(), mpq_ILLratio_pI_test(), mpq_ILLratio_pII_test(), mpq_primal_phaseI_step(), and mpq_primal_phaseII_step().

Here is the call graph for this function:

void mpq_ILLfct_update_dfeas ( mpq_lpinfo lp,
int  eindex,
mpq_svector srhs 
)

Definition at line 1887 of file mpq_fct.c.

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

Referenced by mpq_dual_phaseI_step().

void mpq_ILLfct_update_dIIfeas ( mpq_lpinfo lp,
int  eindex,
mpq_svector srhs 
)

Definition at line 2047 of file mpq_fct.c.

References mpq_svector::coef, mpq_pI_uinfo::dty, mpq_svector::indx, mpq_pI_uinfo::ix, mpq_lpinfo::lz, mpq_lpinfo::matbeg, mpq_lpinfo::matcnt, mpq_lpinfo::matind, mpq_lpinfo::matval, mpq_add_vectors(), mpq_lpinfo::nbaz, mpq_svector::nzcnt, mpq_pI_uinfo::perm, STAT_LOWER, STAT_UPPER, mpq_pI_uinfo::t, t, mpq_pI_uinfo::tctr, mpq_pI_uinfo::tz, mpq_lpinfo::upd, mpq_lpinfo::uz, mpq_lpinfo::vstat, and mpq_lpinfo::zA.

Referenced by mpq_dual_phaseII_step().

Here is the call graph for this function:

void mpq_ILLfct_update_dpI_prices ( mpq_lpinfo lp,
mpq_price_info pinf,
mpq_svector srhs,
mpq_svector ssoln,
int  lindex,
mpq_t  alpha 
)

Definition at line 2004 of file mpq_fct.c.

References CNT_YRAVG, mpq_svector::coef, COMPLETE_PRICING, mpq_price_info::d_strategy, mpq_pI_uinfo::dty, DUAL_PHASEI, mpq_pI_uinfo::fs, mpq_svector::indx, mpq_add_vectors(), mpq_ILLfct_update_counts(), mpq_ILLfct_update_xz(), mpq_ILLprice_compute_primal_inf(), mpq_ILLprice_update_mpartial_price(), mpq_svector::nzcnt, mpq_pI_uinfo::piv, ROW_PRICING, mpq_lpinfo::upd, mpq_lpinfo::xbz, and mpq_lpinfo::yjz.

Referenced by mpq_dual_phaseI_step().

Here is the call graph for this function:

void mpq_ILLfct_update_dpII_prices ( mpq_lpinfo lp,
mpq_price_info pinf,
mpq_svector srhs,
mpq_svector ssoln,
int  lindex,
mpq_t  eval,
mpq_t  alpha 
)

Definition at line 2108 of file mpq_fct.c.

References CNT_YRAVG, mpq_svector::coef, COMPLETE_PRICING, mpq_price_info::d_strategy, DUAL_PHASEII, mpq_svector::indx, mpq_add_vectors(), mpq_ILLfct_update_counts(), mpq_ILLfct_update_xz(), mpq_ILLprice_compute_primal_inf(), mpq_ILLprice_update_mpartial_price(), mpq_svector::nzcnt, ROW_PRICING, mpq_lpinfo::xbz, and mpq_lpinfo::yjz.

Referenced by mpq_dual_phaseII_step().

Here is the call graph for this function:

void mpq_ILLfct_update_dz ( mpq_lpinfo lp,
int  eindex,
mpq_t  alpha 
)

Definition at line 716 of file mpq_fct.c.

References mpq_svector::coef, mpq_lpinfo::dz, mpq_svector::indx, mpq_svector::nzcnt, and mpq_lpinfo::zA.

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

void mpq_ILLfct_update_pfeas ( mpq_lpinfo lp,
int  lindex,
mpq_svector srhs 
)

Definition at line 1716 of file mpq_fct.c.

References mpq_lpinfo::baz, BBOUND, mpq_lpinfo::bfeas, mpq_svector::coef, mpq_pI_uinfo::dty, ILL_IFTRACE, mpq_svector::indx, mpq_tol_struct::ip_tol, mpq_lpinfo::iwork, mpq_pI_uinfo::ix, mpq_lpinfo::lz, mpq_INFTY, mpq_NINFTY, mpq_svector::nzcnt, mpq_pI_uinfo::perm, mpq_pI_uinfo::t, t, mpq_pI_uinfo::tctr, mpq_lpinfo::tol, mpq_pI_uinfo::tz, mpq_lpinfo::upd, mpq_lpinfo::uz, mpq_lpinfo::xbz, and mpq_lpinfo::yjz.

Referenced by mpq_primal_phaseI_step().

void mpq_ILLfct_update_pIdz ( mpq_lpinfo lp,
mpq_svector zA,
int  eindex,
const mpq_t  alpha 
)

Definition at line 728 of file mpq_fct.c.

References mpq_svector::coef, mpq_svector::indx, mpq_svector::nzcnt, and mpq_lpinfo::pIdz.

Referenced by mpq_ILLfct_update_ppI_prices().

void mpq_ILLfct_update_pIpiz ( mpq_lpinfo lp,
mpq_svector z,
const mpq_t  alpha 
)

Definition at line 695 of file mpq_fct.c.

References mpq_svector::coef, mpq_svector::indx, mpq_svector::nzcnt, and mpq_lpinfo::pIpiz.

Referenced by mpq_ILLfct_update_ppI_prices().

void mpq_ILLfct_update_piz ( mpq_lpinfo lp,
mpq_t  alpha 
)

Definition at line 685 of file mpq_fct.c.

References mpq_svector::coef, mpq_svector::indx, mpq_svector::nzcnt, mpq_lpinfo::piz, and mpq_lpinfo::zz.

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

void mpq_ILLfct_update_ppI_prices ( mpq_lpinfo lp,
mpq_price_info pinf,
mpq_svector srhs,
mpq_svector ssoln,
int  eindex,
int  lindex,
const mpq_t  alpha 
)

Definition at line 1813 of file mpq_fct.c.

References CNT_ZARAVG, COL_PRICING, COMPLETE_PRICING, mpq_pI_uinfo::dty, mpq_pI_uinfo::fs, ILL_IFTRACE, mpq_add_vectors(), mpq_ILLfct_compute_zA(), mpq_ILLfct_update_counts(), mpq_ILLfct_update_pIdz(), mpq_ILLfct_update_pIpiz(), mpq_ILLprice_compute_dual_inf(), mpq_ILLprice_update_mpartial_price(), mpq_svector::nzcnt, mpq_price_info::p_strategy, mpq_lpinfo::pIdz, mpq_pI_uinfo::piv, PRIMAL_PHASEI, mpq_lpinfo::upd, and mpq_lpinfo::zz.

Referenced by mpq_primal_phaseI_step().

Here is the call graph for this function:

void mpq_ILLfct_update_xz ( mpq_lpinfo lp,
mpq_t  tz,
int  eindex,
int  lindex 
)

Definition at line 657 of file mpq_fct.c.

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

Referenced by mpq_ILLfct_update_dpI_prices(), mpq_ILLfct_update_dpII_prices(), mpq_primal_phaseI_step(), and mpq_primal_phaseII_step().

void mpq_ILLfct_zero_workvector ( mpq_lpinfo lp  ) 

Definition at line 119 of file mpq_fct.c.

References mpq_svector::coef, mpq_svector::indx, mpq_svector::nzcnt, and mpq_lpinfo::work.

Referenced by mpq_ILLprice_update_dsteep_norms(), and mpq_ILLprice_update_psteep_norms().

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

Definition at line 756 of file mpq_fct.c.

References ILLutil_lprand().

Referenced by mpq_expand_phaseI_bounds(), mpq_expand_var_bounds(), and mpq_expand_var_coefs().

Here is the call graph for this function:

static void mpq_update_piv_values ( mpq_count_struct c,
int  phase,
const mpq_t  piv 
) [static]

Definition at line 1532 of file mpq_fct.c.

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

Referenced by mpq_ILLfct_update_counts().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file mpq_fct.c.


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