mpf_fct.c File Reference

#include "qs_config.h"
#include "mpf_iqsutil.h"
#include "mpf_lpdefs.h"
#include "stddefs.h"
#include "mpf_basis.h"
#include "mpf_fct.h"
#include "mpf_price.h"
#include "mpf_ratio.h"
#include "mpf_dstruct.h"

Include dependency graph for mpf_fct.c:

Go to the source code of this file.

Defines

#define mpf_C_VALUE(a)   (1.0+(double)(a)/(PARAM_HEAP_RATIO*mpf_ILLutil_our_log2(a)))
#define mpf_FCT_DEBUG   0

Functions

static void mpf_add_vectors (mpf_lpinfo *lp, mpf_svector *a, mpf_svector *b, mpf_svector *c, const mpf_t t)
static int mpf_compute_zA1 (mpf_lpinfo *lp, mpf_svector *z, mpf_svector *zA, mpf_t ztoler)
static int mpf_compute_zA3 (mpf_lpinfo *lp, mpf_svector *z, mpf_svector *zA, mpf_t ztoler)
static int mpf_expand_phaseI_bounds (mpf_lpinfo *lp, int *chgb)
static int mpf_expand_var_bounds (mpf_lpinfo *lp, mpf_t ftol, int *chgb)
static int mpf_expand_var_coefs (mpf_lpinfo *lp, mpf_t ftol, int *chgc)
int mpf_ILLfct_adjust_viol_bounds (mpf_lpinfo *lp)
int mpf_ILLfct_adjust_viol_coefs (mpf_lpinfo *lp)
int mpf_ILLfct_bound_shift (mpf_lpinfo *lp, int col, int bndtype, mpf_t newbnd)
void mpf_ILLfct_check_dfeasible (mpf_lpinfo *lp, mpf_feas_info *fs, const mpf_t ftol)
void mpf_ILLfct_check_pfeasible (mpf_lpinfo *lp, mpf_feas_info *fs, const mpf_t ftol)
void mpf_ILLfct_check_pIdfeasible (mpf_lpinfo *lp, mpf_feas_info *fs, mpf_t ftol)
void mpf_ILLfct_check_pIpfeasible (mpf_lpinfo *lp, mpf_feas_info *fs, mpf_t ftol)
int mpf_ILLfct_coef_shift (mpf_lpinfo *lp, int col, mpf_t newcoef)
void mpf_ILLfct_compute_binvrow (mpf_lpinfo *lp, mpf_svector *zz, int row, mpf_t ztoler)
void mpf_ILLfct_compute_dobj (mpf_lpinfo *lp)
void mpf_ILLfct_compute_dpIIy (mpf_lpinfo *lp, mpf_svector *srhs, mpf_svector *ssoln)
void mpf_ILLfct_compute_dpIy (mpf_lpinfo *lp, mpf_svector *srhs, mpf_svector *ssoln)
void mpf_ILLfct_compute_dsteep_upv (mpf_lpinfo *lp, mpf_svector *swz)
void mpf_ILLfct_compute_dz (mpf_lpinfo *lp)
void mpf_ILLfct_compute_phaseI_dz (mpf_lpinfo *lp)
void mpf_ILLfct_compute_phaseI_piz (mpf_lpinfo *lp)
void mpf_ILLfct_compute_phaseI_xbz (mpf_lpinfo *lp)
void mpf_ILLfct_compute_piz (mpf_lpinfo *lp)
void mpf_ILLfct_compute_pobj (mpf_lpinfo *lp)
void mpf_ILLfct_compute_ppIzz (mpf_lpinfo *lp, mpf_svector *srhs, mpf_svector *ssoln)
void mpf_ILLfct_compute_psteep_upv (mpf_lpinfo *lp, mpf_svector *swz)
void mpf_ILLfct_compute_vA (mpf_lpinfo *lp, mpf_svector *v, mpf_t *vA)
void mpf_ILLfct_compute_xbz (mpf_lpinfo *lp)
void mpf_ILLfct_compute_yz (mpf_lpinfo *lp, mpf_svector *yz, mpf_svector *updz, int col)
int mpf_ILLfct_compute_zA (mpf_lpinfo *lp, mpf_svector *z, mpf_svector *zA)
void mpf_ILLfct_compute_zz (mpf_lpinfo *lp, mpf_svector *zz, int row)
void mpf_ILLfct_dphaseI_simple_update (mpf_lpinfo *lp, mpf_t ftol)
void mpf_ILLfct_dual_adjust (mpf_lpinfo *lp, const mpf_t ftol)
void mpf_ILLfct_free_bndinfo (mpf_bndinfo *binfo)
void mpf_ILLfct_init_counts (mpf_lpinfo *lp)
void mpf_ILLfct_load_workvector (mpf_lpinfo *lp, mpf_svector *s)
mpf_bndinfompf_ILLfct_new_bndinfo (void)
int mpf_ILLfct_perturb_bounds (mpf_lpinfo *lp)
int mpf_ILLfct_perturb_coefs (mpf_lpinfo *lp)
int mpf_ILLfct_perturb_phaseI_bounds (mpf_lpinfo *lp)
void mpf_ILLfct_print_counts (mpf_lpinfo *lp)
void mpf_ILLfct_set_status_values (mpf_lpinfo *lp, int pstatus, int dstatus, int ptype, int dtype)
void mpf_ILLfct_set_variable_type (mpf_lpinfo *lp)
int mpf_ILLfct_test_pivot (mpf_lpinfo *lp, int indx, int indxtype, mpf_t piv_val)
void mpf_ILLfct_unroll_bound_change (mpf_lpinfo *lp)
void mpf_ILLfct_unroll_coef_change (mpf_lpinfo *lp)
void mpf_ILLfct_update_basis_info (mpf_lpinfo *lp, int eindex, int lindex, int lvstat)
void mpf_ILLfct_update_counts (mpf_lpinfo *lp, int f, int upi, const mpf_t upd)
void mpf_ILLfct_update_dfeas (mpf_lpinfo *lp, int eindex, mpf_svector *srhs)
void mpf_ILLfct_update_dIIfeas (mpf_lpinfo *lp, int eindex, mpf_svector *srhs)
void mpf_ILLfct_update_dpI_prices (mpf_lpinfo *lp, mpf_price_info *pinf, mpf_svector *srhs, mpf_svector *ssoln, int lindex, mpf_t alpha)
void mpf_ILLfct_update_dpII_prices (mpf_lpinfo *lp, mpf_price_info *pinf, mpf_svector *srhs, mpf_svector *ssoln, int lindex, mpf_t eval, mpf_t alpha)
void mpf_ILLfct_update_dz (mpf_lpinfo *lp, int eindex, mpf_t alpha)
void mpf_ILLfct_update_pfeas (mpf_lpinfo *lp, int lindex, mpf_svector *srhs)
void mpf_ILLfct_update_pIdz (mpf_lpinfo *lp, mpf_svector *zA, int eindex, const mpf_t alpha)
void mpf_ILLfct_update_pIpiz (mpf_lpinfo *lp, mpf_svector *z, const mpf_t alpha)
void mpf_ILLfct_update_piz (mpf_lpinfo *lp, mpf_t alpha)
void mpf_ILLfct_update_ppI_prices (mpf_lpinfo *lp, mpf_price_info *pinf, mpf_svector *srhs, mpf_svector *ssoln, int eindex, int lindex, const mpf_t alpha)
void mpf_ILLfct_update_xz (mpf_lpinfo *lp, mpf_t tz, int eindex, int lindex)
void mpf_ILLfct_zero_workvector (mpf_lpinfo *lp)
static double mpf_my_rand (int bound, ILLrandstate *r)
static void mpf_update_piv_values (mpf_count_struct *c, int phase, const mpf_t piv)

Variables

static int TRACE = 0


Define Documentation

#define mpf_C_VALUE (  )     (1.0+(double)(a)/(PARAM_HEAP_RATIO*mpf_ILLutil_our_log2(a)))

Referenced by mpf_ILLfct_init_counts().

#define mpf_FCT_DEBUG   0

Definition at line 27 of file mpf_fct.c.


Function Documentation

static void mpf_add_vectors ( mpf_lpinfo lp,
mpf_svector a,
mpf_svector b,
mpf_svector c,
const mpf_t  t 
)

Definition at line 1677 of file mpf_fct.c.

References mpf_svector::coef, mpf_svector::indx, mpf_lpinfo::iwork, mpf_svector::nzcnt, and mpf_lpinfo::work.

Referenced by mpf_ILLfct_update_dIIfeas(), mpf_ILLfct_update_dpI_prices(), mpf_ILLfct_update_dpII_prices(), and mpf_ILLfct_update_ppI_prices().

static int mpf_compute_zA1 ( mpf_lpinfo lp,
mpf_svector z,
mpf_svector zA,
mpf_t  ztoler 
) [static]

Definition at line 478 of file mpf_fct.c.

References mpf_svector::coef, mpf_svector::indx, mpf_lpinfo::matbeg, mpf_lpinfo::matcnt, mpf_lpinfo::matind, mpf_lpinfo::matval, mpf_lpinfo::nbaz, mpf_lpinfo::nnbasic, mpf_lpinfo::nrows, and mpf_svector::nzcnt.

Referenced by mpf_ILLfct_compute_zA().

static int mpf_compute_zA3 ( mpf_lpinfo lp,
mpf_svector z,
mpf_svector zA,
mpf_t  ztoler 
)

Definition at line 522 of file mpf_fct.c.

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

Referenced by mpf_ILLfct_compute_zA().

static int mpf_expand_phaseI_bounds ( mpf_lpinfo lp,
int *  chgb 
) [static]

Definition at line 834 of file mpf_fct.c.

References mpf_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, ILLutil_sprand(), mpf_tol_struct::ip_tol, mpf_lpinfo::lz, mpf_ILLfct_bound_shift(), mpf_INFTY, mpf_my_rand(), mpf_NINFTY, mpf_lpinfo::nrows, mpf_lpinfo::rstate, mpf_lpinfo::tol, mpf_lpinfo::uz, VARTIFICIAL, VFREE, mpf_lpinfo::vtype, and mpf_lpinfo::xbz.

Referenced by mpf_ILLfct_perturb_phaseI_bounds().

Here is the call graph for this function:

static int mpf_expand_var_bounds ( mpf_lpinfo lp,
mpf_t  ftol,
int *  chgb 
)

Definition at line 772 of file mpf_fct.c.

References mpf_lpinfo::baz, BOUND_LOWER, BOUND_UPPER, ILLutil_sprand(), mpf_lpinfo::lz, mpf_ILLfct_bound_shift(), mpf_INFTY, mpf_my_rand(), mpf_NINFTY, mpf_lpinfo::nrows, mpf_lpinfo::rstate, mpf_lpinfo::uz, VARTIFICIAL, VFREE, mpf_lpinfo::vtype, and mpf_lpinfo::xbz.

Referenced by mpf_ILLfct_adjust_viol_bounds(), and mpf_ILLfct_perturb_bounds().

Here is the call graph for this function:

static int mpf_expand_var_coefs ( mpf_lpinfo lp,
mpf_t  ftol,
int *  chgc 
)

Definition at line 1024 of file mpf_fct.c.

References mpf_lpinfo::cz, mpf_lpinfo::dz, ILLutil_sprand(), mpf_ILLfct_coef_shift(), mpf_my_rand(), mpf_lpinfo::nbaz, mpf_lpinfo::nnbasic, mpf_lpinfo::rstate, STAT_LOWER, STAT_UPPER, STAT_ZERO, VARTIFICIAL, VFIXED, mpf_lpinfo::vstat, and mpf_lpinfo::vtype.

Referenced by mpf_ILLfct_adjust_viol_coefs(), and mpf_ILLfct_perturb_coefs().

Here is the call graph for this function:

int mpf_ILLfct_adjust_viol_bounds ( mpf_lpinfo lp  ) 

Definition at line 887 of file mpf_fct.c.

References mpf_expand_var_bounds(), mpf_tol_struct::pfeas_tol, and mpf_lpinfo::tol.

Here is the call graph for this function:

int mpf_ILLfct_adjust_viol_coefs ( mpf_lpinfo lp  ) 

Definition at line 1102 of file mpf_fct.c.

References mpf_tol_struct::dfeas_tol, mpf_expand_var_coefs(), and mpf_lpinfo::tol.

Referenced by mpf_dual_phaseII_step().

Here is the call graph for this function:

int mpf_ILLfct_bound_shift ( mpf_lpinfo lp,
int  col,
int  bndtype,
mpf_t  newbnd 
)

Definition at line 933 of file mpf_fct.c.

References mpf_lpinfo::bchanges, BOUND_LOWER, mpf_bndinfo::btype, mpf_bndinfo::cbound, ILL_IFTRACE, mpf_lpinfo::lz, mpf_ILLfct_free_bndinfo(), mpf_ILLfct_new_bndinfo(), mpf_lpinfo::nbchange, mpf_bndinfo::next, mpf_bndinfo::pbound, mpf_lpinfo::uz, mpf_bndinfo::varnum, VARTIFICIAL, VBOUNDED, VFIXED, and mpf_lpinfo::vtype.

Referenced by mpf_expand_phaseI_bounds(), mpf_expand_var_bounds(), and mpf_primal_phaseII_step().

Here is the call graph for this function:

void mpf_ILLfct_check_dfeasible ( mpf_lpinfo lp,
mpf_feas_info fs,
const mpf_t  ftol 
)

Definition at line 1294 of file mpf_fct.c.

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

Referenced by mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_ILLbasis_get_cinitial(), mpf_ILLsimplex(), mpf_ILLsimplex_retest_dsolution(), mpf_ILLsimplex_retest_psolution(), mpf_monitor_iter(), and mpf_primal_phaseII_step().

void mpf_ILLfct_check_pfeasible ( mpf_lpinfo lp,
mpf_feas_info fs,
const mpf_t  ftol 
)

Definition at line 1201 of file mpf_fct.c.

References mpf_lpinfo::baz, mpf_lpinfo::bfeas, ILL_IFTRACE, mpf_lpinfo::lz, mpf_INFTY, mpf_NINFTY, mpf_lpinfo::nrows, PRIMAL_FEASIBLE, mpf_feas_info::pstatus, QSE_WLVL, mpf_feas_info::totinfeas, mpf_lpinfo::uz, and mpf_lpinfo::xbz.

Referenced by mpf_dual_phaseII_step(), mpf_ILLbasis_get_cinitial(), mpf_ILLsimplex(), mpf_ILLsimplex_retest_dsolution(), mpf_ILLsimplex_retest_psolution(), mpf_primal_phaseI_step(), and mpf_primal_phaseII_step().

void mpf_ILLfct_check_pIdfeasible ( mpf_lpinfo lp,
mpf_feas_info fs,
mpf_t  ftol 
)

Definition at line 1346 of file mpf_fct.c.

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

Referenced by mpf_ILLsimplex_retest_psolution().

void mpf_ILLfct_check_pIpfeasible ( mpf_lpinfo lp,
mpf_feas_info fs,
mpf_t  ftol 
)

Definition at line 1263 of file mpf_fct.c.

References mpf_lpinfo::baz, mpf_lpinfo::lz, mpf_INFTY, mpf_NINFTY, mpf_lpinfo::nrows, PRIMAL_FEASIBLE, mpf_feas_info::pstatus, mpf_feas_info::totinfeas, mpf_lpinfo::uz, and mpf_lpinfo::xbz.

Referenced by mpf_ILLsimplex_retest_dsolution().

int mpf_ILLfct_coef_shift ( mpf_lpinfo lp,
int  col,
mpf_t  newcoef 
)

Definition at line 1135 of file mpf_fct.c.

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

Referenced by mpf_dual_phaseII_step(), and mpf_expand_var_coefs().

void mpf_ILLfct_compute_binvrow ( mpf_lpinfo lp,
mpf_svector zz,
int  row,
mpf_t  ztoler 
)

Definition at line 440 of file mpf_fct.c.

References mpf_svector::coef, mpf_lpinfo::f, mpf_svector::indx, mpf_ILLbasis_row_solve(), mpf_ILLfactor_set_factor_dparam(), mpf_SZERO_TOLER, mpf_svector::nzcnt, and QS_FACTOR_SZERO_TOL.

Referenced by mpf_ILLfct_compute_zz().

Here is the call graph for this function:

void mpf_ILLfct_compute_dobj ( mpf_lpinfo lp  ) 

Definition at line 194 of file mpf_fct.c.

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

Referenced by mpf_dual_phaseII_step(), mpf_ILLsimplex(), mpf_ILLsimplex_retest_dsolution(), and mpf_monitor_iter().

void mpf_ILLfct_compute_dpIIy ( mpf_lpinfo lp,
mpf_svector srhs,
mpf_svector ssoln 
)

Definition at line 2097 of file mpf_fct.c.

References mpf_ILLbasis_column_solve(), and mpf_svector::nzcnt.

Referenced by mpf_dual_phaseII_step().

Here is the call graph for this function:

void mpf_ILLfct_compute_dpIy ( mpf_lpinfo lp,
mpf_svector srhs,
mpf_svector ssoln 
)

Definition at line 1993 of file mpf_fct.c.

References mpf_ILLbasis_column_solve(), and mpf_svector::nzcnt.

Referenced by mpf_dual_phaseI_step().

Here is the call graph for this function:

void mpf_ILLfct_compute_dsteep_upv ( mpf_lpinfo lp,
mpf_svector swz 
)

Definition at line 471 of file mpf_fct.c.

References mpf_ILLbasis_column_solve(), and mpf_lpinfo::zz.

Referenced by mpf_dual_phaseI_step(), and mpf_dual_phaseII_step().

Here is the call graph for this function:

void mpf_ILLfct_compute_dz ( mpf_lpinfo lp  ) 

Definition at line 293 of file mpf_fct.c.

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

Referenced by mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_ILLbasis_get_cinitial(), mpf_ILLfct_unroll_coef_change(), mpf_ILLsimplex(), mpf_ILLsimplex_retest_dsolution(), mpf_ILLsimplex_retest_psolution(), and mpf_primal_phaseII_step().

void mpf_ILLfct_compute_phaseI_dz ( mpf_lpinfo lp  ) 

Definition at line 385 of file mpf_fct.c.

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

Referenced by mpf_ILLsimplex_retest_psolution(), and mpf_primal_phaseI_step().

void mpf_ILLfct_compute_phaseI_piz ( mpf_lpinfo lp  ) 

Definition at line 360 of file mpf_fct.c.

References mpf_lpinfo::bfeas, mpf_svector::coef, mpf_svector::indx, mpf_lpinfo::nrows, mpf_lpinfo::pIpiz, mpf_lpinfo::srhs, and mpf_lpinfo::ssoln.

Referenced by mpf_ILLsimplex_retest_psolution(), and mpf_primal_phaseI_step().

void mpf_ILLfct_compute_phaseI_xbz ( mpf_lpinfo lp  ) 

Definition at line 317 of file mpf_fct.c.

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

Referenced by mpf_dual_phaseI_step(), and mpf_ILLsimplex_retest_dsolution().

void mpf_ILLfct_compute_piz ( mpf_lpinfo lp  ) 

Definition at line 269 of file mpf_fct.c.

References mpf_lpinfo::baz, mpf_svector::coef, mpf_lpinfo::cz, mpf_svector::indx, mpf_lpinfo::nrows, mpf_lpinfo::piz, mpf_lpinfo::srhs, and mpf_lpinfo::ssoln.

Referenced by mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_ILLbasis_get_cinitial(), mpf_ILLfct_unroll_coef_change(), mpf_ILLsimplex(), mpf_ILLsimplex_retest_dsolution(), mpf_ILLsimplex_retest_psolution(), and mpf_primal_phaseII_step().

void mpf_ILLfct_compute_pobj ( mpf_lpinfo lp  ) 

Definition at line 168 of file mpf_fct.c.

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

Referenced by mpf_ILLsimplex(), mpf_ILLsimplex_retest_psolution(), and mpf_primal_phaseII_step().

void mpf_ILLfct_compute_ppIzz ( mpf_lpinfo lp,
mpf_svector srhs,
mpf_svector ssoln 
)

Definition at line 1801 of file mpf_fct.c.

References ILL_IFTRACE, mpf_ILLbasis_row_solve(), and mpf_svector::nzcnt.

Referenced by mpf_primal_phaseI_step().

Here is the call graph for this function:

void mpf_ILLfct_compute_psteep_upv ( mpf_lpinfo lp,
mpf_svector swz 
)

Definition at line 464 of file mpf_fct.c.

References mpf_ILLbasis_row_solve(), and mpf_lpinfo::yjz.

Referenced by mpf_primal_phaseI_step(), and mpf_primal_phaseII_step().

Here is the call graph for this function:

void mpf_ILLfct_compute_vA ( mpf_lpinfo lp,
mpf_svector v,
mpf_t *  vA 
)

Definition at line 588 of file mpf_fct.c.

References mpf_svector::coef, mpf_svector::indx, mpf_SZERO_TOLER, mpf_lpinfo::ncols, mpf_svector::nzcnt, mpf_lpinfo::rowbeg, mpf_lpinfo::rowcnt, mpf_lpinfo::rowind, and mpf_lpinfo::rowval.

Referenced by mpf_ILLbasis_tableau_row().

void mpf_ILLfct_compute_xbz ( mpf_lpinfo lp  ) 

Definition at line 220 of file mpf_fct.c.

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

Referenced by mpf_dual_phaseII_step(), mpf_ILLbasis_get_cinitial(), mpf_ILLfct_unroll_bound_change(), mpf_ILLsimplex(), mpf_ILLsimplex_retest_dsolution(), mpf_ILLsimplex_retest_psolution(), mpf_primal_phaseI_step(), and mpf_primal_phaseII_step().

void mpf_ILLfct_compute_yz ( mpf_lpinfo lp,
mpf_svector yz,
mpf_svector updz,
int  col 
)

Definition at line 412 of file mpf_fct.c.

References mpf_svector::coef, mpf_lpinfo::f, mpf_svector::indx, mpf_lpinfo::matbeg, mpf_lpinfo::matcnt, mpf_lpinfo::matind, mpf_lpinfo::matval, mpf_ILLbasis_column_solve(), mpf_ILLbasis_column_solve_update(), mpf_ILLfactor_set_factor_dparam(), mpf_PIVZ_TOLER, mpf_SZERO_TOLER, mpf_svector::nzcnt, and QS_FACTOR_SZERO_TOL.

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

Here is the call graph for this function:

int mpf_ILLfct_compute_zA ( mpf_lpinfo lp,
mpf_svector z,
mpf_svector zA 
)

Definition at line 576 of file mpf_fct.c.

References mpf_compute_zA1(), mpf_compute_zA3(), mpf_PIVZ_TOLER, mpf_lpinfo::nrows, and mpf_svector::nzcnt.

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

Here is the call graph for this function:

void mpf_ILLfct_compute_zz ( mpf_lpinfo lp,
mpf_svector zz,
int  row 
)

Definition at line 432 of file mpf_fct.c.

References mpf_ILLfct_compute_binvrow(), and mpf_PIVZ_TOLER.

Referenced by mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_ILLbasis_tableau_row(), mpf_ILLprice_build_dsteep_norms(), mpf_ILLprice_get_dsteep_norms(), mpf_primal_phaseI_step(), and mpf_primal_phaseII_step().

Here is the call graph for this function:

void mpf_ILLfct_dphaseI_simple_update ( mpf_lpinfo lp,
mpf_t  ftol 
)

Definition at line 1397 of file mpf_fct.c.

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

void mpf_ILLfct_dual_adjust ( mpf_lpinfo lp,
const mpf_t  ftol 
)

Definition at line 1377 of file mpf_fct.c.

References mpf_lpinfo::dz, mpf_lpinfo::lz, mpf_INFTY, mpf_NINFTY, mpf_lpinfo::nbaz, mpf_lpinfo::nnbasic, STAT_LOWER, STAT_UPPER, mpf_lpinfo::uz, and mpf_lpinfo::vstat.

Referenced by mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_ILLbasis_get_cinitial(), and mpf_ILLsimplex().

void mpf_ILLfct_free_bndinfo ( mpf_bndinfo binfo  ) 

Definition at line 54 of file mpf_fct.c.

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

Referenced by mpf_ILLfct_bound_shift().

void mpf_ILLfct_init_counts ( mpf_lpinfo lp  ) 

Definition at line 1491 of file mpf_fct.c.

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

void mpf_ILLfct_load_workvector ( mpf_lpinfo lp,
mpf_svector s 
)

Definition at line 105 of file mpf_fct.c.

References mpf_svector::coef, mpf_svector::indx, mpf_svector::nzcnt, and mpf_lpinfo::work.

Referenced by mpf_ILLprice_update_dsteep_norms(), and mpf_ILLprice_update_psteep_norms().

mpf_bndinfo* mpf_ILLfct_new_bndinfo ( void   ) 

Definition at line 39 of file mpf_fct.c.

References mpf_bndinfo::cbound, and mpf_bndinfo::pbound.

Referenced by mpf_ILLfct_bound_shift().

int mpf_ILLfct_perturb_bounds ( mpf_lpinfo lp  ) 

Definition at line 905 of file mpf_fct.c.

References mpf_tol_struct::ip_tol, mpf_expand_var_bounds(), and mpf_lpinfo::tol.

Referenced by mpf_monitor_iter().

Here is the call graph for this function:

int mpf_ILLfct_perturb_coefs ( mpf_lpinfo lp  ) 

Definition at line 1121 of file mpf_fct.c.

References mpf_tol_struct::id_tol, mpf_expand_var_coefs(), and mpf_lpinfo::tol.

Referenced by mpf_monitor_iter().

Here is the call graph for this function:

int mpf_ILLfct_perturb_phaseI_bounds ( mpf_lpinfo lp  ) 

Definition at line 919 of file mpf_fct.c.

References mpf_expand_phaseI_bounds().

Here is the call graph for this function:

void mpf_ILLfct_print_counts ( mpf_lpinfo lp  ) 

Definition at line 1646 of file mpf_fct.c.

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

Referenced by mpf_ILLsimplex().

void mpf_ILLfct_set_status_values ( mpf_lpinfo lp,
int  pstatus,
int  dstatus,
int  ptype,
int  dtype 
)

Definition at line 1416 of file mpf_fct.c.

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

Referenced by mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_ILLsimplex(), mpf_monitor_iter(), mpf_primal_phaseI_step(), mpf_primal_phaseII_step(), and mpf_terminate_simplex().

void mpf_ILLfct_set_variable_type ( mpf_lpinfo lp  ) 

Definition at line 129 of file mpf_fct.c.

References CLASS_LOGICAL, CLASS_STRUCT, mpf_lpinfo::lz, mpf_lpinfo::matbeg, mpf_lpinfo::matcnt, mpf_lpinfo::matind, mpf_INFTY, mpf_NINFTY, mpf_lpinfo::ncols, mpf_lpinfo::O, mpf_ILLlpdata::rowmap, mpf_lpinfo::uz, VARTIFICIAL, VBOUNDED, mpf_lpinfo::vclass, VFIXED, VFREE, VLOWER, mpf_lpinfo::vtype, and VUPPER.

Referenced by mpf_ILLsimplex().

int mpf_ILLfct_test_pivot ( mpf_lpinfo lp,
int  indx,
int  indxtype,
mpf_t  piv_val 
)

Definition at line 2147 of file mpf_fct.c.

References mpf_svector::coef, mpf_svector::indx, mpf_svector::nzcnt, ROW_PIVOT, and mpf_lpinfo::yjz.

Referenced by mpf_dual_phaseI_step(), and mpf_dual_phaseII_step().

void mpf_ILLfct_unroll_bound_change ( mpf_lpinfo lp  ) 

Definition at line 978 of file mpf_fct.c.

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

Referenced by mpf_ILLsimplex(), mpf_primal_phaseII_step(), and mpf_terminate_simplex().

Here is the call graph for this function:

void mpf_ILLfct_unroll_coef_change ( mpf_lpinfo lp  ) 

Definition at line 1167 of file mpf_fct.c.

References mpf_lpinfo::cchanges, mpf_coefinfo::ccoef, mpf_lpinfo::cz, mpf_lpinfo::dz, ILL_IFFREE, mpf_ILLfct_compute_dz(), mpf_ILLfct_compute_piz(), mpf_lpinfo::ncchange, mpf_coefinfo::next, mpf_coefinfo::pcoef, STAT_BASIC, mpf_coefinfo::varnum, mpf_lpinfo::vindex, and mpf_lpinfo::vstat.

Referenced by mpf_dual_phaseII_step(), mpf_ILLsimplex(), mpf_monitor_iter(), and mpf_terminate_simplex().

Here is the call graph for this function:

void mpf_ILLfct_update_basis_info ( mpf_lpinfo lp,
int  eindex,
int  lindex,
int  lvstat 
)

Definition at line 629 of file mpf_fct.c.

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

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

void mpf_ILLfct_update_counts ( mpf_lpinfo lp,
int  f,
int  upi,
const mpf_t  upd 
)

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

Referenced by mpf_dual_phaseI_step(), mpf_dual_phaseII_step(), mpf_ILLfct_update_dpI_prices(), mpf_ILLfct_update_dpII_prices(), mpf_ILLfct_update_ppI_prices(), mpf_ILLratio_dI_test(), mpf_ILLratio_dII_test(), mpf_ILLratio_longdII_test(), mpf_ILLratio_pI_test(), mpf_ILLratio_pII_test(), mpf_primal_phaseI_step(), and mpf_primal_phaseII_step().

Here is the call graph for this function:

void mpf_ILLfct_update_dfeas ( mpf_lpinfo lp,
int  eindex,
mpf_svector srhs 
)

Definition at line 1887 of file mpf_fct.c.

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

Referenced by mpf_dual_phaseI_step().

void mpf_ILLfct_update_dIIfeas ( mpf_lpinfo lp,
int  eindex,
mpf_svector srhs 
)

Definition at line 2047 of file mpf_fct.c.

References mpf_svector::coef, mpf_pI_uinfo::dty, mpf_svector::indx, mpf_pI_uinfo::ix, mpf_lpinfo::lz, mpf_lpinfo::matbeg, mpf_lpinfo::matcnt, mpf_lpinfo::matind, mpf_lpinfo::matval, mpf_add_vectors(), mpf_lpinfo::nbaz, mpf_svector::nzcnt, mpf_pI_uinfo::perm, STAT_LOWER, STAT_UPPER, mpf_pI_uinfo::t, t, mpf_pI_uinfo::tctr, mpf_pI_uinfo::tz, mpf_lpinfo::upd, mpf_lpinfo::uz, mpf_lpinfo::vstat, and mpf_lpinfo::zA.

Referenced by mpf_dual_phaseII_step().

Here is the call graph for this function:

void mpf_ILLfct_update_dpI_prices ( mpf_lpinfo lp,
mpf_price_info pinf,
mpf_svector srhs,
mpf_svector ssoln,
int  lindex,
mpf_t  alpha 
)

Definition at line 2004 of file mpf_fct.c.

References CNT_YRAVG, mpf_svector::coef, COMPLETE_PRICING, mpf_price_info::d_strategy, mpf_pI_uinfo::dty, DUAL_PHASEI, mpf_pI_uinfo::fs, mpf_svector::indx, mpf_add_vectors(), mpf_ILLfct_update_counts(), mpf_ILLfct_update_xz(), mpf_ILLprice_compute_primal_inf(), mpf_ILLprice_update_mpartial_price(), mpf_svector::nzcnt, mpf_pI_uinfo::piv, ROW_PRICING, mpf_lpinfo::upd, mpf_lpinfo::xbz, and mpf_lpinfo::yjz.

Referenced by mpf_dual_phaseI_step().

Here is the call graph for this function:

void mpf_ILLfct_update_dpII_prices ( mpf_lpinfo lp,
mpf_price_info pinf,
mpf_svector srhs,
mpf_svector ssoln,
int  lindex,
mpf_t  eval,
mpf_t  alpha 
)

Definition at line 2108 of file mpf_fct.c.

References CNT_YRAVG, mpf_svector::coef, COMPLETE_PRICING, mpf_price_info::d_strategy, DUAL_PHASEII, mpf_svector::indx, mpf_add_vectors(), mpf_ILLfct_update_counts(), mpf_ILLfct_update_xz(), mpf_ILLprice_compute_primal_inf(), mpf_ILLprice_update_mpartial_price(), mpf_svector::nzcnt, ROW_PRICING, mpf_lpinfo::xbz, and mpf_lpinfo::yjz.

Referenced by mpf_dual_phaseII_step().

Here is the call graph for this function:

void mpf_ILLfct_update_dz ( mpf_lpinfo lp,
int  eindex,
mpf_t  alpha 
)

Definition at line 716 of file mpf_fct.c.

References mpf_svector::coef, mpf_lpinfo::dz, mpf_svector::indx, mpf_svector::nzcnt, and mpf_lpinfo::zA.

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

void mpf_ILLfct_update_pfeas ( mpf_lpinfo lp,
int  lindex,
mpf_svector srhs 
)

Definition at line 1716 of file mpf_fct.c.

References mpf_lpinfo::baz, BBOUND, mpf_lpinfo::bfeas, mpf_svector::coef, mpf_pI_uinfo::dty, ILL_IFTRACE, mpf_svector::indx, mpf_tol_struct::ip_tol, mpf_lpinfo::iwork, mpf_pI_uinfo::ix, mpf_lpinfo::lz, mpf_INFTY, mpf_NINFTY, mpf_svector::nzcnt, mpf_pI_uinfo::perm, mpf_pI_uinfo::t, t, mpf_pI_uinfo::tctr, mpf_lpinfo::tol, mpf_pI_uinfo::tz, mpf_lpinfo::upd, mpf_lpinfo::uz, mpf_lpinfo::xbz, and mpf_lpinfo::yjz.

Referenced by mpf_primal_phaseI_step().

void mpf_ILLfct_update_pIdz ( mpf_lpinfo lp,
mpf_svector zA,
int  eindex,
const mpf_t  alpha 
)

Definition at line 728 of file mpf_fct.c.

References mpf_svector::coef, mpf_svector::indx, mpf_svector::nzcnt, and mpf_lpinfo::pIdz.

Referenced by mpf_ILLfct_update_ppI_prices().

void mpf_ILLfct_update_pIpiz ( mpf_lpinfo lp,
mpf_svector z,
const mpf_t  alpha 
)

Definition at line 695 of file mpf_fct.c.

References mpf_svector::coef, mpf_svector::indx, mpf_svector::nzcnt, and mpf_lpinfo::pIpiz.

Referenced by mpf_ILLfct_update_ppI_prices().

void mpf_ILLfct_update_piz ( mpf_lpinfo lp,
mpf_t  alpha 
)

Definition at line 685 of file mpf_fct.c.

References mpf_svector::coef, mpf_svector::indx, mpf_svector::nzcnt, mpf_lpinfo::piz, and mpf_lpinfo::zz.

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

void mpf_ILLfct_update_ppI_prices ( mpf_lpinfo lp,
mpf_price_info pinf,
mpf_svector srhs,
mpf_svector ssoln,
int  eindex,
int  lindex,
const mpf_t  alpha 
)

Definition at line 1813 of file mpf_fct.c.

References CNT_ZARAVG, COL_PRICING, COMPLETE_PRICING, mpf_pI_uinfo::dty, mpf_pI_uinfo::fs, ILL_IFTRACE, mpf_add_vectors(), mpf_ILLfct_compute_zA(), mpf_ILLfct_update_counts(), mpf_ILLfct_update_pIdz(), mpf_ILLfct_update_pIpiz(), mpf_ILLprice_compute_dual_inf(), mpf_ILLprice_update_mpartial_price(), mpf_svector::nzcnt, mpf_price_info::p_strategy, mpf_lpinfo::pIdz, mpf_pI_uinfo::piv, PRIMAL_PHASEI, mpf_lpinfo::upd, and mpf_lpinfo::zz.

Referenced by mpf_primal_phaseI_step().

Here is the call graph for this function:

void mpf_ILLfct_update_xz ( mpf_lpinfo lp,
mpf_t  tz,
int  eindex,
int  lindex 
)

Definition at line 657 of file mpf_fct.c.

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

Referenced by mpf_ILLfct_update_dpI_prices(), mpf_ILLfct_update_dpII_prices(), mpf_primal_phaseI_step(), and mpf_primal_phaseII_step().

void mpf_ILLfct_zero_workvector ( mpf_lpinfo lp  ) 

Definition at line 119 of file mpf_fct.c.

References mpf_svector::coef, mpf_svector::indx, mpf_svector::nzcnt, and mpf_lpinfo::work.

Referenced by mpf_ILLprice_update_dsteep_norms(), and mpf_ILLprice_update_psteep_norms().

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

Definition at line 756 of file mpf_fct.c.

References ILLutil_lprand().

Referenced by mpf_expand_phaseI_bounds(), mpf_expand_var_bounds(), and mpf_expand_var_coefs().

Here is the call graph for this function:

static void mpf_update_piv_values ( mpf_count_struct c,
int  phase,
const mpf_t  piv 
) [static]

Definition at line 1532 of file mpf_fct.c.

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

Referenced by mpf_ILLfct_update_counts().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file mpf_fct.c.


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