float128_basis.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "qs_config.h"
#include "config.h"
#include "float128_sortrus.h"
#include "float128_iqsutil.h"
#include "float128_lpdefs.h"
#include "float128_qstruct.h"
#include "float128_qsopt.h"
#include "float128_basis.h"
#include "float128_fct.h"
#include "float128_lp.h"
#include "float128_lib.h"

Include dependency graph for float128_basis.c:

Go to the source code of this file.

Defines

#define float128_BASIS_DEBUG   0
#define float128_BASIS_STATS   0

Functions

static int float128_choose_basis (int algorithm, float128 pinf1, float128 dinf1, float128 pinf2, float128 dinf2)
static int float128_get_initial_basis1 (float128_lpinfo *lp, int *vstat)
static int float128_get_initial_basis2 (float128_lpinfo *lp, int *vstat)
static void float128_get_var_info (float128_lpinfo *lp, float128_var_data *v)
int float128_ILLbasis_build_basisinfo (float128_lpinfo *lp)
void float128_ILLbasis_clear_vardata (float128_var_data *vd)
void float128_ILLbasis_column_solve (float128_lpinfo *lp, float128_svector *rhs, float128_svector *soln)
void float128_ILLbasis_column_solve_update (float128_lpinfo *lp, float128_svector *rhs, float128_svector *upd, float128_svector *soln)
int float128_ILLbasis_factor (float128_lpinfo *lp, int *singular)
void float128_ILLbasis_free_basisinfo (float128_lpinfo *lp)
int float128_ILLbasis_get_cinitial (float128_lpinfo *lp, int algorithm)
int float128_ILLbasis_get_initial (float128_lpinfo *lp, int algorithm)
void float128_ILLbasis_init_basisinfo (float128_lpinfo *lp)
void float128_ILLbasis_init_vardata (float128_var_data *vd)
int float128_ILLbasis_load (float128_lpinfo *lp, float128_ILLlp_basis *B)
int float128_ILLbasis_refactor (float128_lpinfo *lp)
void float128_ILLbasis_row_solve (float128_lpinfo *lp, float128_svector *rhs, float128_svector *soln)
int float128_ILLbasis_tableau_row (float128_lpinfo *lp, int row, float128 *brow, float128 *trow, float128 *rhs, int strict)
int float128_ILLbasis_update (float128_lpinfo *lp, float128_svector *y, int lindex, int *refactor, int *singular)
static int float128_init_slack_basis (float128_lpinfo *lp, int *vstat, int *irow, int *rrow, int *unitcol, int *icol, int *rcol)
static int float128_primal_col_select (float128_lpinfo *lp, int *vstat, int *irow, int *rrow, int *unitcol, float128 *v, int *perm, int *porder, int nbelem, int pcols)
static int float128_set_basis_indices (float128_lpinfo *lp, int *vstat)

Variables

static int TRACE = 0


Define Documentation

#define float128_BASIS_DEBUG   0

Definition at line 47 of file float128_basis.c.

#define float128_BASIS_STATS   0

Definition at line 45 of file float128_basis.c.


Function Documentation

static int float128_choose_basis ( int  algorithm,
float128  pinf1,
float128  dinf1,
float128  pinf2,
float128  dinf2 
)

Definition at line 1155 of file float128_basis.c.

References float128_CB_EPS, float128_CB_INF_RATIO, float128_CB_PRI_RLIMIT, ILL_IFTRACE, and PRIMAL_SIMPLEX.

Referenced by float128_ILLbasis_get_cinitial().

static int float128_get_initial_basis1 ( float128_lpinfo lp,
int *  vstat 
)

Definition at line 636 of file float128_basis.c.

References float128_var_data::cmax, float128_lpinfo::cz, E_SIMPLEX_ERROR, float128_get_var_info(), float128_ILLbasis_init_vardata(), float128_INFTY, float128_init_slack_basis(), ILL_CLEANUP, ILL_SAFE_MALLOC, float128_lpinfo::lz, float128_var_data::nbndone, float128_var_data::nbounded, float128_lpinfo::ncols, float128_var_data::nfree, float128_lpinfo::nrows, float128_var_data::nslacks, NULL, STAT_BASIC, float128_lpinfo::uz, VBOUNDED, VFIXED, VFREE, VLOWER, float128_lpinfo::vtype, and VUPPER.

Referenced by float128_ILLbasis_get_cinitial(), and float128_ILLbasis_get_initial().

Here is the call graph for this function:

static int float128_get_initial_basis2 ( float128_lpinfo lp,
int *  vstat 
)

Definition at line 798 of file float128_basis.c.

References float128_var_data::cmax, float128_lpinfo::cz, E_SIMPLEX_ERROR, float128_BD_TOLER, float128_get_var_info(), float128_ILLbasis_clear_vardata(), float128_ILLbasis_free_basisinfo(), float128_ILLbasis_init_vardata(), float128_ILLutil_EGlpNum_perm_quicksort(), float128_INFTY, float128_init_slack_basis(), float128_primal_col_select(), ILL_CLEANUP, ILL_IFFREE, ILL_SAFE_MALLOC, ILLutil_int_perm_quicksort(), float128_lpinfo::lz, float128_lpinfo::matcnt, float128_var_data::nbndone, float128_lpinfo::ncols, float128_var_data::nfree, float128_lpinfo::nrows, float128_var_data::nslacks, NULL, float128_lpinfo::rowbeg, float128_lpinfo::rowcnt, float128_lpinfo::rowind, float128_lpinfo::rowval, STAT_BASIC, float128_lpinfo::uz, VBOUNDED, VFIXED, VFREE, VLOWER, float128_lpinfo::vtype, and VUPPER.

Referenced by float128_ILLbasis_get_cinitial(), and float128_ILLbasis_get_initial().

Here is the call graph for this function:

static void float128_get_var_info ( float128_lpinfo lp,
float128_var_data v 
) [static]

Definition at line 405 of file float128_basis.c.

References CLASS_LOGICAL, float128_var_data::cmax, float128_lpinfo::cz, float128_NINFTY, float128_var_data::nartif, float128_var_data::nbndone, float128_var_data::nbounded, float128_lpinfo::ncols, float128_var_data::nfixed, float128_var_data::nfree, float128_var_data::nslacks, VARTIFICIAL, VBOUNDED, float128_lpinfo::vclass, VFIXED, VFREE, VLOWER, float128_lpinfo::vtype, and VUPPER.

Referenced by float128_get_initial_basis1(), and float128_get_initial_basis2().

int float128_ILLbasis_build_basisinfo ( float128_lpinfo lp  ) 

Definition at line 123 of file float128_basis.c.

References float128_lpinfo::baz, float128_lpinfo::fbasisid, float128_ILLbasis_free_basisinfo(), ILL_SAFE_MALLOC, float128_lpinfo::nbaz, float128_ILLlpdata::ncols, float128_ILLlpdata::nrows, float128_lpinfo::O, float128_lpinfo::vindex, and float128_lpinfo::vstat.

Here is the call graph for this function:

void float128_ILLbasis_clear_vardata ( float128_var_data vd  ) 

Definition at line 56 of file float128_basis.c.

References float128_var_data::cmax.

Referenced by float128_get_initial_basis2().

void float128_ILLbasis_column_solve ( float128_lpinfo lp,
float128_svector rhs,
float128_svector soln 
)

Definition at line 1445 of file float128_basis.c.

References float128_lpinfo::f, and float128_ILLfactor_ftran().

Here is the call graph for this function:

void float128_ILLbasis_column_solve_update ( float128_lpinfo lp,
float128_svector rhs,
float128_svector upd,
float128_svector soln 
)

Definition at line 1453 of file float128_basis.c.

References float128_lpinfo::f, and float128_ILLfactor_ftran_update().

Here is the call graph for this function:

int float128_ILLbasis_factor ( float128_lpinfo lp,
int *  singular 
)

Definition at line 1352 of file float128_basis.c.

References __QS_SB_VERB, float128_lpinfo::basisid, float128_lpinfo::baz, float128_lpinfo::f, float128_lpinfo::fbasisid, float128_ILLfactor(), float128_ILLfactor_create_factor_work(), float128_ILLfactor_free_factor_work(), float128_ILLfactor_init_factor_work(), float128_ILLfct_update_basis_info(), float128_factor_work::fzero_tol, ILL_IFFREE, ILL_SAFE_MALLOC, float128_lpinfo::matbeg, float128_lpinfo::matcnt, float128_lpinfo::matind, float128_lpinfo::matval, float128_factor_work::maxelem_cur, float128_factor_work::maxelem_factor, float128_factor_work::maxelem_orig, float128_ILLlpdata::nrows, float128_lpinfo::O, float128_factor_work::partial_cur, float128_factor_work::partial_tol, float128_ILLlpdata::rowmap, STAT_LOWER, STAT_UPPER, STAT_ZERO, float128_factor_work::szero_tol, VARTIFICIAL, VBOUNDED, float128_lpinfo::vindex, VLOWER, float128_lpinfo::vtype, and VUPPER.

Here is the call graph for this function:

void float128_ILLbasis_free_basisinfo ( float128_lpinfo lp  ) 

Definition at line 101 of file float128_basis.c.

References float128_lpinfo::baz, float128_lpinfo::f, float128_ILLfactor_free_factor_work(), float128_factor_work::fzero_tol, ILL_IFFREE, float128_factor_work::maxelem_cur, float128_factor_work::maxelem_factor, float128_factor_work::maxelem_orig, float128_lpinfo::nbaz, float128_factor_work::partial_cur, float128_factor_work::partial_tol, float128_factor_work::szero_tol, float128_lpinfo::vindex, and float128_lpinfo::vstat.

Here is the call graph for this function:

int float128_ILLbasis_get_cinitial ( float128_lpinfo lp,
int  algorithm 
)

Definition at line 1213 of file float128_basis.c.

References __QS_SB_VERB, float128_lpinfo::basisid, float128_lpinfo::baz, float128_tol_struct::dfeas_tol, float128_lpinfo::dinfeas, E_SIMPLEX_ERROR, float128_lpinfo::fbasisid, float128_choose_basis(), float128_get_initial_basis1(), float128_get_initial_basis2(), float128_ILLbasis_build_basisinfo(), float128_ILLbasis_factor(), float128_ILLbasis_free_basisinfo(), float128_ILLbasis_init_basisinfo(), float128_ILLfct_check_dfeasible(), float128_ILLfct_check_pfeasible(), float128_ILLfct_compute_dz(), float128_ILLfct_compute_piz(), float128_ILLfct_compute_xbz(), float128_ILLfct_dual_adjust(), float128_ILLwrite_lp_file(), float128_set_basis_indices(), ILL_CLEANUP, ILL_IFFREE, ILL_SAFE_MALLOC, float128_lpinfo::matcnt, float128_lpinfo::ncols, float128_lpinfo::nrows, NULL, float128_lpinfo::O, float128_tol_struct::pfeas_tol, float128_lpinfo::pinfeas, PRIMAL_SIMPLEX, float128_lpinfo::tol, and float128_feas_info::totinfeas.

Here is the call graph for this function:

int float128_ILLbasis_get_initial ( float128_lpinfo lp,
int  algorithm 
)

Definition at line 1105 of file float128_basis.c.

References float128_lpinfo::basisid, E_SIMPLEX_ERROR, float128_get_initial_basis1(), float128_get_initial_basis2(), float128_ILLbasis_build_basisinfo(), float128_ILLbasis_free_basisinfo(), float128_ILLbasis_init_basisinfo(), float128_ILLwrite_lp_file(), float128_set_basis_indices(), ILL_IFFREE, ILL_SAFE_MALLOC, float128_lpinfo::ncols, NULL, float128_lpinfo::O, and PRIMAL_SIMPLEX.

Here is the call graph for this function:

void float128_ILLbasis_init_basisinfo ( float128_lpinfo lp  ) 

Definition at line 91 of file float128_basis.c.

References float128_lpinfo::baz, float128_lpinfo::f, float128_lpinfo::nbaz, float128_lpinfo::vindex, and float128_lpinfo::vstat.

Referenced by float128_ILLbasis_get_cinitial(), float128_ILLbasis_get_initial(), float128_ILLbasis_load(), and float128_ILLsimplex_init_lpinfo().

void float128_ILLbasis_init_vardata ( float128_var_data vd  ) 

Definition at line 49 of file float128_basis.c.

References float128_var_data::cmax.

Referenced by float128_get_initial_basis1(), and float128_get_initial_basis2().

int float128_ILLbasis_load ( float128_lpinfo lp,
float128_ILLlp_basis B 
)

Definition at line 141 of file float128_basis.c.

References float128_lpinfo::basisid, float128_lpinfo::baz, float128_ILLlp_basis::cstat, float128_lpinfo::fbasisid, float128_ILLbasis_build_basisinfo(), float128_ILLbasis_free_basisinfo(), float128_ILLbasis_init_basisinfo(), float128_lpinfo::nbaz, float128_ILLlpdata::ncols, float128_ILLlpdata::nrows, float128_ILLlpdata::nstruct, float128_lpinfo::O, QS_COL_BSTAT_BASIC, QS_COL_BSTAT_FREE, QS_COL_BSTAT_LOWER, QS_COL_BSTAT_UPPER, QS_ROW_BSTAT_BASIC, QS_ROW_BSTAT_LOWER, QS_ROW_BSTAT_UPPER, float128_ILLlpdata::rowmap, float128_ILLlp_basis::rstat, float128_ILLlpdata::sense, STAT_BASIC, STAT_LOWER, STAT_UPPER, STAT_ZERO, float128_ILLlpdata::structmap, float128_lpinfo::vindex, and float128_lpinfo::vstat.

Here is the call graph for this function:

int float128_ILLbasis_refactor ( float128_lpinfo lp  ) 

Definition at line 1429 of file float128_basis.c.

References __QS_SB_VERB, float128_ILLbasis_factor(), and QS_LP_CHANGE_PREC.

Here is the call graph for this function:

void float128_ILLbasis_row_solve ( float128_lpinfo lp,
float128_svector rhs,
float128_svector soln 
)

Definition at line 1462 of file float128_basis.c.

References float128_lpinfo::f, and float128_ILLfactor_btran().

Here is the call graph for this function:

int float128_ILLbasis_tableau_row ( float128_lpinfo lp,
int  row,
float128 *  brow,
float128 *  trow,
float128 *  rhs,
int  strict 
)

Definition at line 266 of file float128_basis.c.

References __QS_SB_VERB, float128_lpinfo::basisid, float128_lpinfo::baz, float128_lpinfo::bz, float128_svector::coef, E_BASIS_SINGULAR, E_GENERAL_ERROR, float128_lpinfo::fbasisid, float128_ILLbasis_factor(), float128_ILLfct_compute_vA(), float128_ILLfct_compute_zA(), float128_ILLfct_compute_zz(), float128_ILLsvector_alloc(), float128_ILLsvector_free(), float128_ILLsvector_init(), float128_PIVZ_TOLER, ILL_CLEANUP, ILL_IFTRACE, float128_svector::indx, float128_lpinfo::lz, float128_lpinfo::nbaz, float128_lpinfo::ncols, float128_ILLlpdata::nrows, float128_lpinfo::nrows, NULL, float128_svector::nzcnt, float128_lpinfo::O, STAT_BASIC, STAT_LOWER, STAT_UPPER, float128_lpinfo::uz, float128_lpinfo::vindex, float128_lpinfo::vstat, and float128_lpinfo::xbz.

Here is the call graph for this function:

int float128_ILLbasis_update ( float128_lpinfo lp,
float128_svector y,
int  lindex,
int *  refactor,
int *  singular 
)

Definition at line 1470 of file float128_basis.c.

References __QS_SB_VERB, E_FACTOR_BLOWUP, E_UPDATE_NOSPACE, E_UPDATE_SINGULAR_COL, E_UPDATE_SINGULAR_ROW, float128_lpinfo::f, float128_ILLbasis_factor(), float128_ILLfactor_update(), float128_ILLlib_writebasis(), float128_ILLwrite_lp_file(), NULL, and float128_lpinfo::O.

Referenced by float128_dual_phaseI_step(), float128_dual_phaseII_step(), float128_primal_phaseI_step(), and float128_primal_phaseII_step().

Here is the call graph for this function:

static int float128_init_slack_basis ( float128_lpinfo lp,
int *  vstat,
int *  irow,
int *  rrow,
int *  unitcol,
int *  icol,
int *  rcol 
) [static]

Definition at line 457 of file float128_basis.c.

References CLASS_LOGICAL, float128_lpinfo::lz, float128_lpinfo::matbeg, float128_lpinfo::matind, float128_lpinfo::ncols, NULL, STAT_BASIC, STAT_LOWER, STAT_UPPER, STAT_ZERO, float128_lpinfo::uz, VARTIFICIAL, VBOUNDED, float128_lpinfo::vclass, VFIXED, VFREE, VLOWER, float128_lpinfo::vtype, and VUPPER.

Referenced by float128_get_initial_basis1(), and float128_get_initial_basis2().

static int float128_primal_col_select ( float128_lpinfo lp,
int *  vstat,
int *  irow,
int *  rrow,
int *  unitcol,
float128 *  v,
int *  perm,
int *  porder,
int  nbelem,
int  pcols 
) [static]

Definition at line 511 of file float128_basis.c.

References float128_INFTY, float128_NINFTY, float128_PARAM_IBASIS_RPIVOT, float128_PARAM_IBASIS_RTRIANG, float128_lpinfo::matbeg, float128_lpinfo::matcnt, float128_lpinfo::matind, float128_lpinfo::matval, float128_lpinfo::nrows, and STAT_BASIC.

Referenced by float128_get_initial_basis2().

static int float128_set_basis_indices ( float128_lpinfo lp,
int *  vstat 
)

Definition at line 1062 of file float128_basis.c.

References float128_lpinfo::baz, E_SIMPLEX_ERROR, float128_lpinfo::nbaz, float128_lpinfo::ncols, float128_lpinfo::nnbasic, float128_lpinfo::nrows, STAT_BASIC, STAT_LOWER, STAT_UPPER, STAT_ZERO, float128_lpinfo::vindex, and float128_lpinfo::vstat.

Referenced by float128_ILLbasis_get_cinitial(), and float128_ILLbasis_get_initial().


Variable Documentation

int TRACE = 0 [static]

Definition at line 24 of file float128_basis.c.


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