ldbl_factor.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include "config.h"
#include "ldbl_iqsutil.h"
#include "ldbl_lpdefs.h"
#include "ldbl_factor.h"

Include dependency graph for ldbl_factor.c:

Go to the source code of this file.

Defines

#define ldbl_EGlpNumSetToMaxAbsAndDo(a, b, c)
#define ldbl_SETPERM(f, s, r, c)

Functions

static int ldbl_add_col_nz (ldbl_factor_work *f, int r, int c)
static int ldbl_add_nonzero (ldbl_factor_work *f, int row, int col, long double val)
static void ldbl_btranl3_delay2 (ldbl_factor_work *f, int r)
static void ldbl_btranl3_process2 (ldbl_factor_work *f, int r, ldbl_svector *x)
static void ldbl_btranu3_delay2 (ldbl_factor_work *f, int r)
static void ldbl_btranu3_process2 (ldbl_factor_work *f, int r, ldbl_svector *x)
static int ldbl_build_iteration_l_data (ldbl_factor_work *f)
static int ldbl_build_iteration_u_data (ldbl_factor_work *f)
static void ldbl_clear_row (ldbl_factor_work *f, int r)
static void ldbl_clear_work (ldbl_factor_work *f)
static int ldbl_create_column (ldbl_factor_work *f, ldbl_svector *a, int col, int *p_last_rank)
static int ldbl_create_factor_space (ldbl_factor_work *f)
static int ldbl_create_row (ldbl_factor_work *f, long double *a, int row, int minrank)
static int ldbl_delete_column (ldbl_factor_work *f, int col)
static void ldbl_delete_nonzero_col (ldbl_factor_work *f, int col, int ind)
static int ldbl_delete_nonzero_row (ldbl_factor_work *f, int row, int ind)
static int ldbl_delete_row (ldbl_factor_work *f, int row, ldbl_svector *x)
static int ldbl_dense_build_matrix (ldbl_factor_work *f)
static int ldbl_dense_create_col (ldbl_factor_work *f, int i)
static void ldbl_dense_elim (ldbl_factor_work *f, int r, int c)
static int ldbl_dense_factor (ldbl_factor_work *f)
static int ldbl_dense_find_pivot (ldbl_factor_work *f, int *p_r, int *p_c)
static int ldbl_dense_replace (ldbl_factor_work *f)
static int ldbl_dense_replace_row (ldbl_factor_work *f, int i)
static void ldbl_dense_swap (ldbl_factor_work *f, int r, int c)
static void ldbl_disable_col (ldbl_factor_work *f, int c)
static int ldbl_elim (ldbl_factor_work *f, int r, int c)
static int ldbl_elim_row (ldbl_factor_work *f, int elim_r, int r, int c, long double *p_pivot_coef)
static int ldbl_eliminate_row (ldbl_factor_work *f, int rank_p, int rank_r)
static int ldbl_expand_col (ldbl_factor_work *f, int col)
static int ldbl_expand_row (ldbl_factor_work *f, int row)
static void ldbl_find_coef (ldbl_factor_work *f, int r, int c, long double *coef)
static int ldbl_find_pivot (ldbl_factor_work *f, int *p_r, int *p_c)
static void ldbl_find_pivot_column (ldbl_factor_work *f, int c, int *p_r)
static void ldbl_find_pivot_row (ldbl_factor_work *f, int r, int *p_c)
static void ldbl_ftranl3_delay2 (ldbl_factor_work *f, int c)
static void ldbl_ftranl3_process2 (ldbl_factor_work *f, int c, ldbl_svector *x)
static void ldbl_ftranu3_delay2 (ldbl_factor_work *f, int c)
static void ldbl_ftranu3_process2 (ldbl_factor_work *f, int c, ldbl_svector *x)
static int ldbl_handle_singularity (ldbl_factor_work *f)
int ldbl_ILLfactor (ldbl_factor_work *f, int *basis, int *cbeg, int *clen, int *cindx, long double *ccoef, int *p_nsing, int **p_singr, int **p_singc)
void ldbl_ILLfactor_btran (ldbl_factor_work *f, ldbl_svector *a, ldbl_svector *x)
static void ldbl_ILLfactor_btrane (ldbl_factor_work *f, long double *x)
static void ldbl_ILLfactor_btrane2 (ldbl_factor_work *f, ldbl_svector *x)
static void ldbl_ILLfactor_btranl2 (ldbl_factor_work *f, long double *x)
static void ldbl_ILLfactor_btranl3 (ldbl_factor_work *f, ldbl_svector *a, ldbl_svector *x)
static void ldbl_ILLfactor_btranu (ldbl_factor_work *f, long double *a, ldbl_svector *x)
static void ldbl_ILLfactor_btranu3 (ldbl_factor_work *f, ldbl_svector *a, ldbl_svector *x)
int ldbl_ILLfactor_create_factor_work (ldbl_factor_work *f, int dim)
void ldbl_ILLfactor_free_factor_work (ldbl_factor_work *f)
void ldbl_ILLfactor_ftran (ldbl_factor_work *f, ldbl_svector *a, ldbl_svector *x)
void ldbl_ILLfactor_ftran_update (ldbl_factor_work *f, ldbl_svector *a, ldbl_svector *upd, ldbl_svector *x)
static void ldbl_ILLfactor_ftrane (ldbl_factor_work *f, long double *a)
static void ldbl_ILLfactor_ftrane2 (ldbl_factor_work *f, ldbl_svector *a)
static void ldbl_ILLfactor_ftranl (ldbl_factor_work *f, long double *a)
static void ldbl_ILLfactor_ftranl3 (ldbl_factor_work *f, ldbl_svector *a, ldbl_svector *x)
static void ldbl_ILLfactor_ftranu (ldbl_factor_work *f, long double *a, ldbl_svector *x)
static void ldbl_ILLfactor_ftranu3 (ldbl_factor_work *f, ldbl_svector *a, ldbl_svector *x)
void ldbl_ILLfactor_init_factor_work (ldbl_factor_work *f)
int ldbl_ILLfactor_set_factor_dparam (ldbl_factor_work *f, int param, long double val)
int ldbl_ILLfactor_set_factor_iparam (ldbl_factor_work *f, int param, int val)
static int ldbl_ILLfactor_try (ldbl_factor_work *f, int *basis, int *cbeg, int *clen, int *cindx, long double *ccoef)
int ldbl_ILLfactor_update (ldbl_factor_work *f, ldbl_svector *a, int col_p, int *p_refact)
static int ldbl_init_matrix (ldbl_factor_work *f, int *basis, int *cbeg, int *clen, int *in_ucindx, long double *in_uccoef)
static void ldbl_load_row (ldbl_factor_work *f, int r)
static int ldbl_make_lc_space (ldbl_factor_work *f, int space)
static int ldbl_make_uc_space (ldbl_factor_work *f, int space)
static int ldbl_make_ur_space (ldbl_factor_work *f, int space)
static int ldbl_move_pivot (ldbl_factor_work *f, int rank_r)
static int ldbl_move_pivot_col (ldbl_factor_work *f, int c, int r)
static int ldbl_move_pivot_row (ldbl_factor_work *f, int r, int c)
static void ldbl_remove_col (ldbl_factor_work *f, int c)
static void ldbl_remove_col_nz (ldbl_factor_work *f, int r, int c)
static void ldbl_remove_row (ldbl_factor_work *f, int r)
static void ldbl_remove_row_nz (ldbl_factor_work *f, int r, int c)
static void ldbl_serow_delay (ldbl_factor_work *f, int r, int rank_r)
static int ldbl_serow_process (ldbl_factor_work *f, int r, ldbl_svector *newr, int rank_r)
static void ldbl_set_col_nz (ldbl_factor_work *f, int c)
static void ldbl_set_row_nz (ldbl_factor_work *f, int r)
static void ldbl_shift_permutations (ldbl_factor_work *f, int rank_p, int rank_r)
static int ldbl_sparse_eliminate_row (ldbl_factor_work *f, ldbl_svector *x, int row_p, int rank_r)


Define Documentation

#define ldbl_EGlpNumSetToMaxAbsAndDo ( a,
b,
 ) 

Value:

if(ldbl_EGlpNumIsGreatZero(b))\
  {\
    if(ldbl_EGlpNumIsLess(a,b)){\
      ldbl_EGlpNumCopy(a,b);\
      c;\
      }\
  }\
  else\
  {\
    ldbl_EGlpNumSign(a);\
    if(ldbl_EGlpNumIsLess(b,a)){\
      ldbl_EGlpNumCopy(a,b);\
      c;\
      }\
    ldbl_EGlpNumSign(a);\
  }

Definition at line 28 of file ldbl_factor.c.

Referenced by ldbl_dense_find_pivot().

#define ldbl_SETPERM ( f,
s,
r,
 ) 

Value:

{                    \
        f->rperm[f->rrank[r]] = f->rperm[s];  \
        f->rrank[f->rperm[s]] = f->rrank[r];  \
        f->rperm[s] = r;                      \
        f->rrank[r] = s;                      \
                                              \
        f->cperm[f->crank[c]] = f->cperm[s];  \
        f->crank[f->cperm[s]] = f->crank[c];  \
        f->cperm[s] = c;                      \
        f->crank[c] = s;                      \
}

Definition at line 1481 of file ldbl_factor.c.

Referenced by ldbl_elim().


Function Documentation

static int ldbl_add_col_nz ( ldbl_factor_work f,
int  r,
int  c 
) [static]

Definition at line 1148 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_make_uc_space(), ldbl_set_col_nz(), ldbl_uc_info::nzcnt, ldbl_factor_work::uc_freebeg, ldbl_factor_work::uc_inf, ldbl_factor_work::uc_space, and ldbl_factor_work::ucindx.

Referenced by ldbl_elim_row().

Here is the call graph for this function:

static int ldbl_add_nonzero ( ldbl_factor_work f,
int  row,
int  col,
long double  val 
) [static]

Definition at line 4773 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_expand_col(), ldbl_expand_row(), ldbl_ur_info::nzcnt, ldbl_uc_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::uc_freebeg, ldbl_factor_work::uc_inf, ldbl_factor_work::uccoef, ldbl_factor_work::ucindx, ldbl_factor_work::ucrind, ldbl_factor_work::ur_freebeg, ldbl_factor_work::ur_inf, ldbl_factor_work::ur_space, ldbl_factor_work::urcind, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_create_column(), ldbl_create_row(), and ldbl_sparse_eliminate_row().

Here is the call graph for this function:

static void ldbl_btranl3_delay2 ( ldbl_factor_work f,
int  r 
) [static]

Definition at line 3997 of file ldbl_factor.c.

References ldbl_factor_work::lr_inf, ldbl_factor_work::lrindx, ldbl_lr_info::nzcnt, ldbl_lr_info::rbeg, and ldbl_lr_info::rrank.

Referenced by ldbl_ILLfactor_btranl3().

static void ldbl_btranl3_process2 ( ldbl_factor_work f,
int  r,
ldbl_svector x 
) [static]

Definition at line 4071 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_svector::indx, ldbl_factor_work::lr_inf, ldbl_factor_work::lrcoef, ldbl_factor_work::lrindx, ldbl_lr_info::nzcnt, ldbl_svector::nzcnt, ldbl_lr_info::rbeg, ldbl_lr_info::rrank, ldbl_factor_work::szero_tol, and ldbl_factor_work::work_coef.

Referenced by ldbl_ILLfactor_btranl3().

static void ldbl_btranu3_delay2 ( ldbl_factor_work f,
int  r 
) [static]

Definition at line 4385 of file ldbl_factor.c.

References ldbl_factor_work::crank, ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::rperm, ldbl_factor_work::ur_inf, and ldbl_factor_work::urindx.

Referenced by ldbl_ILLfactor_btranu3().

static void ldbl_btranu3_process2 ( ldbl_factor_work f,
int  r,
ldbl_svector x 
) [static]

Definition at line 4459 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_factor_work::crank, ldbl_svector::indx, ldbl_svector::nzcnt, ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::rperm, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, ldbl_factor_work::urindx, and ldbl_factor_work::work_coef.

Referenced by ldbl_ILLfactor_btranu3().

static int ldbl_build_iteration_l_data ( ldbl_factor_work f  )  [static]

Definition at line 2183 of file ldbl_factor.c.

References ldbl_lc_info::c, ldbl_lc_info::cbeg, ldbl_lc_info::crank, ldbl_lc_info::delay, ldbl_lr_info::delay, ldbl_factor_work::dim, ILL_IFFREE, ILL_SAFE_MALLOC, ldbl_factor_work::lc_inf, ldbl_factor_work::lccoef, ldbl_factor_work::lcindx, ldbl_factor_work::lr_inf, ldbl_factor_work::lrcoef, ldbl_factor_work::lrindx, ldbl_factor_work::maxelem_cur, ldbl_factor_work::maxelem_factor, ldbl_lr_info::nzcnt, ldbl_factor_work::nzcnt_cur, ldbl_factor_work::nzcnt_factor, ldbl_lr_info::r, ldbl_lr_info::rbeg, and ldbl_lr_info::rrank.

Referenced by ldbl_ILLfactor_try().

static int ldbl_build_iteration_u_data ( ldbl_factor_work f  )  [static]

Definition at line 2033 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_uc_info::delay, ldbl_ur_info::delay, ldbl_factor_work::dim, ILL_IFFREE, ILL_SAFE_MALLOC, ldbl_uc_info::nzcnt, ldbl_factor_work::nzcnt_factor, ldbl_ur_info::rbeg, ldbl_factor_work::rperm, ldbl_factor_work::rrank, ldbl_factor_work::uc_freebeg, ldbl_factor_work::uc_inf, ldbl_factor_work::uc_space, ldbl_factor_work::uccoef, ldbl_factor_work::ucindx, ldbl_factor_work::ucrind, ldbl_factor_work::ur_freebeg, ldbl_factor_work::ur_inf, ldbl_factor_work::ur_space, ldbl_factor_work::urcind, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_ILLfactor_try().

static void ldbl_clear_row ( ldbl_factor_work f,
int  r 
) [static]

Definition at line 743 of file ldbl_factor.c.

References ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::ur_inf, ldbl_factor_work::urindx, ldbl_factor_work::work_coef, and ldbl_factor_work::work_indx.

Referenced by ldbl_elim().

static void ldbl_clear_work ( ldbl_factor_work f  )  [static]

Definition at line 710 of file ldbl_factor.c.

References ldbl_factor_work::dim, and ldbl_factor_work::work_coef.

static int ldbl_create_column ( ldbl_factor_work f,
ldbl_svector a,
int  col,
int *  p_last_rank 
) [static]

Definition at line 4953 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_svector::indx, ldbl_add_nonzero(), ldbl_factor_work::maxelem_cur, ldbl_svector::nzcnt, ldbl_factor_work::nzcnt_cur, and ldbl_factor_work::rrank.

Referenced by ldbl_ILLfactor_update().

Here is the call graph for this function:

static int ldbl_create_factor_space ( ldbl_factor_work f  )  [static]

Definition at line 1810 of file ldbl_factor.c.

References ldbl_factor_work::dim, ILL_SAFE_MALLOC, ldbl_factor_work::uc_inf, ldbl_factor_work::uc_space, ldbl_factor_work::uc_space_mul, ldbl_factor_work::ucindx, and ldbl_factor_work::ur_inf.

Referenced by ldbl_init_matrix().

static int ldbl_create_row ( ldbl_factor_work f,
long double *  a,
int  row,
int  minrank 
) [static]

Definition at line 5127 of file ldbl_factor.c.

References ldbl_factor_work::cperm, ldbl_factor_work::dim, ldbl_factor_work::fzero_tol, ldbl_add_nonzero(), and ldbl_factor_work::maxelem_cur.

Here is the call graph for this function:

static int ldbl_delete_column ( ldbl_factor_work f,
int  col 
) [static]

Definition at line 4878 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_delete_nonzero_row(), ldbl_uc_info::nzcnt, ldbl_factor_work::nzcnt_cur, ldbl_factor_work::uc_inf, ldbl_factor_work::ucindx, and ldbl_factor_work::ucrind.

Referenced by ldbl_ILLfactor_update().

Here is the call graph for this function:

static void ldbl_delete_nonzero_col ( ldbl_factor_work f,
int  col,
int  ind 
) [static]

Definition at line 4852 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_uc_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::uc_inf, ldbl_factor_work::uccoef, ldbl_factor_work::ucindx, ldbl_factor_work::ucrind, ldbl_factor_work::ur_inf, and ldbl_factor_work::urcind.

Referenced by ldbl_delete_row().

static int ldbl_delete_nonzero_row ( ldbl_factor_work f,
int  row,
int  ind 
) [static]

Definition at line 4819 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::uc_inf, ldbl_factor_work::ucrind, ldbl_factor_work::ur_inf, ldbl_factor_work::urcind, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_delete_column().

static int ldbl_delete_row ( ldbl_factor_work f,
int  row,
ldbl_svector x 
) [static]

Definition at line 4913 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_svector::indx, ldbl_delete_nonzero_col(), ldbl_svector::nzcnt, ldbl_ur_info::nzcnt, ldbl_factor_work::nzcnt_cur, ldbl_ur_info::rbeg, ldbl_factor_work::ur_inf, ldbl_factor_work::urcind, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Here is the call graph for this function:

static int ldbl_dense_build_matrix ( ldbl_factor_work f  )  [static]

Definition at line 2322 of file ldbl_factor.c.

References ldbl_factor_work::crank, ldbl_factor_work::dcols, ldbl_factor_work::dense_base, ldbl_factor_work::dim, ldbl_factor_work::dmat, ldbl_factor_work::drows, ldbl_factor_work::nstages, ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::rperm, ldbl_factor_work::stage, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_dense_factor().

static int ldbl_dense_create_col ( ldbl_factor_work f,
int  i 
) [static]

Definition at line 2594 of file ldbl_factor.c.

References ldbl_factor_work::dcols, ldbl_factor_work::dense_base, ldbl_factor_work::dmat, ldbl_factor_work::drows, ldbl_factor_work::fzero_tol, ldbl_factor_work::lc_inf, and ldbl_factor_work::rperm.

Referenced by ldbl_dense_replace().

static void ldbl_dense_elim ( ldbl_factor_work f,
int  r,
int  c 
) [static]

Definition at line 2456 of file ldbl_factor.c.

References ldbl_factor_work::dcols, ldbl_factor_work::dense_base, ldbl_factor_work::dmat, ldbl_factor_work::drows, ldbl_factor_work::fzero_tol, ldbl_dense_swap(), ldbl_factor_work::maxelem_factor, ldbl_factor_work::rperm, ldbl_factor_work::stage, and ldbl_factor_work::ur_inf.

Referenced by ldbl_dense_factor().

Here is the call graph for this function:

static int ldbl_dense_factor ( ldbl_factor_work f  )  [static]

Definition at line 2667 of file ldbl_factor.c.

References ldbl_factor_work::dense_base, E_FACTOR_BLOWUP, E_NO_PIVOT, E_SINGULAR_INTERNAL, ldbl_dense_build_matrix(), ldbl_dense_elim(), ldbl_dense_find_pivot(), ldbl_dense_replace(), ldbl_handle_singularity(), ldbl_factor_work::maxelem_factor, ldbl_factor_work::maxelem_orig, ldbl_factor_work::maxmult, ldbl_factor_work::nstages, ldbl_factor_work::partial_cur, and ldbl_factor_work::stage.

Referenced by ldbl_ILLfactor_try().

Here is the call graph for this function:

static int ldbl_dense_find_pivot ( ldbl_factor_work f,
int *  p_r,
int *  p_c 
) [static]

Definition at line 2368 of file ldbl_factor.c.

References ldbl_factor_work::dcols, ldbl_factor_work::dense_base, ldbl_factor_work::dmat, ldbl_factor_work::drows, E_NO_PIVOT, ldbl_EGlpNumSetToMaxAbsAndDo, ldbl_factor_work::rperm, ldbl_factor_work::stage, and ldbl_factor_work::ur_inf.

Referenced by ldbl_dense_factor().

static int ldbl_dense_replace ( ldbl_factor_work f  )  [static]

Definition at line 2646 of file ldbl_factor.c.

References ldbl_factor_work::dcols, ldbl_factor_work::dmat, ldbl_factor_work::drows, ldbl_dense_create_col(), and ldbl_dense_replace_row().

Referenced by ldbl_dense_factor().

Here is the call graph for this function:

static int ldbl_dense_replace_row ( ldbl_factor_work f,
int  i 
) [static]

Definition at line 2537 of file ldbl_factor.c.

References ldbl_factor_work::cperm, ldbl_factor_work::dcols, ldbl_factor_work::dense_base, ldbl_factor_work::dmat, ldbl_factor_work::fzero_tol, ldbl_factor_work::rperm, and ldbl_factor_work::ur_inf.

Referenced by ldbl_dense_replace().

static void ldbl_dense_swap ( ldbl_factor_work f,
int  r,
int  c 
) [static]

Definition at line 2418 of file ldbl_factor.c.

References ldbl_factor_work::cperm, ldbl_factor_work::crank, ldbl_factor_work::dcols, ldbl_factor_work::dense_base, ldbl_factor_work::dmat, ldbl_factor_work::drows, ldbl_factor_work::rperm, ldbl_factor_work::rrank, and ldbl_factor_work::stage.

Referenced by ldbl_dense_elim().

static void ldbl_disable_col ( ldbl_factor_work f,
int  c 
) [static]

Definition at line 1201 of file ldbl_factor.c.

References ldbl_uc_info::next, ldbl_uc_info::prev, and ldbl_factor_work::uc_inf.

Referenced by ldbl_find_pivot().

static int ldbl_elim ( ldbl_factor_work f,
int  r,
int  c 
) [static]

Definition at line 1493 of file ldbl_factor.c.

References ldbl_lc_info::c, ldbl_uc_info::cbeg, ldbl_lc_info::cbeg, ldbl_factor_work::lc_freebeg, ldbl_factor_work::lc_inf, ldbl_factor_work::lc_space, ldbl_factor_work::lccoef, ldbl_factor_work::lcindx, ldbl_clear_row(), ldbl_elim_row(), ldbl_load_row(), ldbl_make_lc_space(), ldbl_remove_col(), ldbl_remove_col_nz(), ldbl_remove_row(), ldbl_remove_row_nz(), ldbl_SETPERM, ldbl_ur_info::max, ldbl_factor_work::nstages, ldbl_uc_info::nzcnt, ldbl_ur_info::nzcnt, ldbl_lc_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::stage, ldbl_factor_work::uc_inf, ldbl_factor_work::ucindx, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_ILLfactor_try().

Here is the call graph for this function:

static int ldbl_elim_row ( ldbl_factor_work f,
int  elim_r,
int  r,
int  c,
long double *  p_pivot_coef 
) [static]

Definition at line 1284 of file ldbl_factor.c.

References ldbl_factor_work::fzero_tol, ldbl_add_col_nz(), ldbl_find_coef(), ldbl_make_ur_space(), ldbl_remove_col_nz(), ldbl_set_row_nz(), ldbl_ur_info::nzcnt, ldbl_ur_info::pivcnt, ldbl_ur_info::rbeg, ldbl_factor_work::ur_freebeg, ldbl_factor_work::ur_inf, ldbl_factor_work::ur_space, ldbl_factor_work::urcoef, ldbl_factor_work::urindx, ldbl_factor_work::work_coef, and ldbl_factor_work::work_indx.

Referenced by ldbl_elim().

Here is the call graph for this function:

static int ldbl_eliminate_row ( ldbl_factor_work f,
int  rank_p,
int  rank_r 
) [static]

Definition at line 5051 of file ldbl_factor.c.

References ldbl_factor_work::cperm, E_UPDATE_NOSPACE, ldbl_factor_work::er_freebeg, ldbl_factor_work::er_space, ldbl_factor_work::ercoef, ldbl_factor_work::erindx, ldbl_factor_work::fzero_tol, ldbl_factor_work::maxelem_cur, ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::rperm, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, ldbl_factor_work::urindx, and ldbl_factor_work::work_coef.

static int ldbl_expand_col ( ldbl_factor_work f,
int  col 
) [static]

Definition at line 4695 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_make_uc_space(), ldbl_uc_info::nzcnt, ldbl_factor_work::uc_freebeg, ldbl_factor_work::uc_inf, ldbl_factor_work::uc_space, ldbl_factor_work::uccoef, ldbl_factor_work::ucindx, and ldbl_factor_work::ucrind.

Referenced by ldbl_add_nonzero().

Here is the call graph for this function:

static int ldbl_expand_row ( ldbl_factor_work f,
int  row 
) [static]

Definition at line 4734 of file ldbl_factor.c.

References ldbl_make_ur_space(), ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::ur_freebeg, ldbl_factor_work::ur_inf, ldbl_factor_work::ur_space, ldbl_factor_work::urcind, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_add_nonzero().

Here is the call graph for this function:

static void ldbl_find_coef ( ldbl_factor_work f,
int  r,
int  c,
long double *  coef 
) [static]

Definition at line 1260 of file ldbl_factor.c.

References ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_elim_row(), and ldbl_find_pivot_column().

static int ldbl_find_pivot ( ldbl_factor_work f,
int *  p_r,
int *  p_c 
) [static]

Definition at line 1703 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_factor_work::dim, E_NO_PIVOT, ldbl_disable_col(), ldbl_find_pivot_column(), ldbl_find_pivot_row(), ldbl_factor_work::max_k, ldbl_ur_info::next, ldbl_uc_info::next, ldbl_factor_work::p, ldbl_uc_info::prev, ldbl_ur_info::rbeg, ldbl_factor_work::uc_inf, ldbl_factor_work::ucindx, ldbl_factor_work::ur_inf, and ldbl_factor_work::urindx.

Referenced by ldbl_ILLfactor_try().

Here is the call graph for this function:

static void ldbl_find_pivot_column ( ldbl_factor_work f,
int  c,
int *  p_r 
) [static]

Definition at line 1625 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_find_coef(), ldbl_uc_info::nzcnt, ldbl_ur_info::pivcnt, ldbl_factor_work::uc_inf, ldbl_factor_work::ucindx, and ldbl_factor_work::ur_inf.

Referenced by ldbl_find_pivot().

Here is the call graph for this function:

static void ldbl_find_pivot_row ( ldbl_factor_work f,
int  r,
int *  p_c 
) [static]

Definition at line 1665 of file ldbl_factor.c.

References ldbl_factor_work::partial_cur, ldbl_ur_info::pivcnt, ldbl_ur_info::rbeg, ldbl_factor_work::uc_inf, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_find_pivot().

static void ldbl_ftranl3_delay2 ( ldbl_factor_work f,
int  c 
) [static]

Definition at line 3089 of file ldbl_factor.c.

References ldbl_lc_info::cbeg, ldbl_lc_info::crank, ldbl_factor_work::lc_inf, ldbl_factor_work::lcindx, and ldbl_lc_info::nzcnt.

Referenced by ldbl_ILLfactor_ftranl3().

static void ldbl_ftranl3_process2 ( ldbl_factor_work f,
int  c,
ldbl_svector x 
) [static]

Definition at line 3162 of file ldbl_factor.c.

References ldbl_lc_info::cbeg, ldbl_svector::coef, ldbl_lc_info::crank, ldbl_svector::indx, ldbl_factor_work::lc_inf, ldbl_factor_work::lccoef, ldbl_factor_work::lcindx, ldbl_lc_info::nzcnt, ldbl_svector::nzcnt, and ldbl_factor_work::work_coef.

Referenced by ldbl_ILLfactor_ftranl3().

static void ldbl_ftranu3_delay2 ( ldbl_factor_work f,
int  c 
) [static]

Definition at line 3490 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_factor_work::cperm, ldbl_uc_info::nzcnt, ldbl_factor_work::rrank, ldbl_factor_work::uc_inf, and ldbl_factor_work::ucindx.

Referenced by ldbl_ILLfactor_ftranu3().

static void ldbl_ftranu3_process2 ( ldbl_factor_work f,
int  c,
ldbl_svector x 
) [static]

Definition at line 3565 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_svector::coef, ldbl_factor_work::cperm, ldbl_svector::indx, ldbl_svector::nzcnt, ldbl_uc_info::nzcnt, ldbl_factor_work::rrank, ldbl_factor_work::szero_tol, ldbl_factor_work::uc_inf, ldbl_factor_work::uccoef, ldbl_factor_work::ucindx, and ldbl_factor_work::work_coef.

Referenced by ldbl_ILLfactor_ftranu3().

static int ldbl_handle_singularity ( ldbl_factor_work f  )  [static]

Definition at line 2285 of file ldbl_factor.c.

References ldbl_factor_work::cperm, E_SING_NO_DATA, ILL_IFFREE, ILL_SAFE_MALLOC, ldbl_factor_work::nstages, ldbl_factor_work::p_nsing, ldbl_factor_work::p_singc, ldbl_factor_work::p_singr, ldbl_factor_work::rperm, and ldbl_factor_work::stage.

Referenced by ldbl_dense_factor(), and ldbl_ILLfactor_try().

int ldbl_ILLfactor ( ldbl_factor_work f,
int *  basis,
int *  cbeg,
int *  clen,
int *  cindx,
long double *  ccoef,
int *  p_nsing,
int **  p_singr,
int **  p_singc 
)

Definition at line 2961 of file ldbl_factor.c.

References E_FACTOR_BLOWUP, ldbl_ILLfactor_try(), ldbl_factor_work::p_nsing, ldbl_factor_work::p_singc, ldbl_factor_work::p_singr, and ldbl_factor_work::partial_cur.

Here is the call graph for this function:

void ldbl_ILLfactor_btran ( ldbl_factor_work f,
ldbl_svector a,
ldbl_svector x 
)

Definition at line 4549 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_factor_work::dim, ldbl_svector::indx, ldbl_ILLfactor_btrane2(), ldbl_ILLfactor_btranu(), ldbl_ILLfactor_btranu3(), ldbl_svector::nzcnt, SPARSE_FACTOR, ldbl_factor_work::work_coef, and ldbl_factor_work::xtmp.

Referenced by ldbl_ILLbasis_row_solve().

Here is the call graph for this function:

static void ldbl_ILLfactor_btrane ( ldbl_factor_work f,
long double *  x 
) [static]

Definition at line 4160 of file ldbl_factor.c.

References ldbl_factor_work::dim, ldbl_factor_work::er_inf, ldbl_factor_work::ercoef, ldbl_factor_work::erindx, ldbl_factor_work::etacnt, ldbl_er_info::nzcnt, and ldbl_er_info::rbeg.

static void ldbl_ILLfactor_btrane2 ( ldbl_factor_work f,
ldbl_svector x 
) [static]

Definition at line 4214 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_factor_work::er_inf, ldbl_factor_work::ercoef, ldbl_factor_work::erindx, ldbl_factor_work::etacnt, ldbl_svector::indx, ldbl_er_info::nzcnt, ldbl_svector::nzcnt, ldbl_er_info::rbeg, ldbl_factor_work::work_coef, and ldbl_factor_work::work_indx.

Referenced by ldbl_ILLfactor_btran().

static void ldbl_ILLfactor_btranl2 ( ldbl_factor_work f,
long double *  x 
) [static]

Definition at line 3919 of file ldbl_factor.c.

References ldbl_factor_work::dim, ldbl_factor_work::lr_inf, ldbl_factor_work::lrcoef, ldbl_factor_work::lrindx, ldbl_lr_info::nzcnt, and ldbl_lr_info::rbeg.

static void ldbl_ILLfactor_btranl3 ( ldbl_factor_work f,
ldbl_svector a,
ldbl_svector x 
) [static]

Definition at line 4121 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_svector::indx, ldbl_btranl3_delay2(), ldbl_btranl3_process2(), ldbl_factor_work::lr_inf, ldbl_svector::nzcnt, and ldbl_factor_work::work_coef.

Here is the call graph for this function:

static void ldbl_ILLfactor_btranu ( ldbl_factor_work f,
long double *  a,
ldbl_svector x 
) [static]

Definition at line 4302 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_factor_work::cperm, ldbl_factor_work::dim, ldbl_svector::indx, ldbl_svector::nzcnt, ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::rperm, ldbl_factor_work::szero_tol, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_ILLfactor_btran().

static void ldbl_ILLfactor_btranu3 ( ldbl_factor_work f,
ldbl_svector a,
ldbl_svector x 
) [static]

Definition at line 4509 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_svector::indx, ldbl_btranu3_delay2(), ldbl_btranu3_process2(), ldbl_svector::nzcnt, ldbl_factor_work::ur_inf, and ldbl_factor_work::work_coef.

Referenced by ldbl_ILLfactor_btran().

Here is the call graph for this function:

int ldbl_ILLfactor_create_factor_work ( ldbl_factor_work f,
int  dim 
)

Definition at line 263 of file ldbl_factor.c.

References ldbl_factor_work::cperm, ldbl_factor_work::crank, ldbl_factor_work::dim, ldbl_factor_work::etacnt, ILL_SAFE_MALLOC, ldbl_factor_work::lc_inf, ldbl_ILLfactor_free_factor_work(), ldbl_ILLsvector_alloc(), ldbl_factor_work::lr_inf, ldbl_ur_info::max, ldbl_factor_work::max_k, ldbl_ur_info::next, ldbl_uc_info::next, ldbl_lr_info::nzcnt, ldbl_lc_info::nzcnt, ldbl_ur_info::nzcnt, ldbl_uc_info::nzcnt, ldbl_ur_info::prev, ldbl_uc_info::prev, ldbl_factor_work::rperm, ldbl_factor_work::rrank, ldbl_factor_work::uc_inf, ldbl_factor_work::ur_inf, ldbl_factor_work::work_coef, ldbl_factor_work::work_indx, and ldbl_factor_work::xtmp.

Here is the call graph for this function:

void ldbl_ILLfactor_free_factor_work ( ldbl_factor_work f  ) 

Definition at line 131 of file ldbl_factor.c.

References ldbl_factor_work::cperm, ldbl_factor_work::crank, ldbl_factor_work::dim, ldbl_factor_work::dmat, ldbl_factor_work::er_inf, ldbl_factor_work::ercoef, ldbl_factor_work::erindx, ILL_IFFREE, ldbl_factor_work::lc_inf, ldbl_factor_work::lccoef, ldbl_factor_work::lcindx, ldbl_ILLsvector_free(), ldbl_factor_work::lr_inf, ldbl_factor_work::lrcoef, ldbl_factor_work::lrindx, ldbl_ur_info::max, ldbl_factor_work::max_k, ldbl_factor_work::rperm, ldbl_factor_work::rrank, ldbl_factor_work::uc_inf, ldbl_factor_work::uccoef, ldbl_factor_work::ucindx, ldbl_factor_work::ucrind, ldbl_factor_work::ur_inf, ldbl_factor_work::urcind, ldbl_factor_work::urcoef, ldbl_factor_work::urindx, ldbl_factor_work::work_coef, ldbl_factor_work::work_indx, and ldbl_factor_work::xtmp.

Here is the call graph for this function:

void ldbl_ILLfactor_ftran ( ldbl_factor_work f,
ldbl_svector a,
ldbl_svector x 
)

Definition at line 3656 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_factor_work::dim, ldbl_svector::indx, ldbl_ILLfactor_ftranl3(), ldbl_svector::nzcnt, SPARSE_FACTOR, and ldbl_factor_work::work_coef.

Here is the call graph for this function:

void ldbl_ILLfactor_ftran_update ( ldbl_factor_work f,
ldbl_svector a,
ldbl_svector upd,
ldbl_svector x 
)

Definition at line 3777 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_factor_work::dim, ldbl_svector::indx, ldbl_ILLfactor_ftranl3(), ldbl_svector::nzcnt, SPARSE_FACTOR, and ldbl_factor_work::work_coef.

Here is the call graph for this function:

static void ldbl_ILLfactor_ftrane ( ldbl_factor_work f,
long double *  a 
) [static]

Definition at line 3250 of file ldbl_factor.c.

References ldbl_factor_work::dim, ldbl_factor_work::er_inf, ldbl_factor_work::ercoef, ldbl_factor_work::erindx, ldbl_factor_work::etacnt, ldbl_er_info::nzcnt, and ldbl_er_info::rbeg.

static void ldbl_ILLfactor_ftrane2 ( ldbl_factor_work f,
ldbl_svector a 
) [static]

Definition at line 3302 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_factor_work::er_inf, ldbl_factor_work::ercoef, ldbl_factor_work::erindx, ldbl_factor_work::etacnt, ldbl_factor_work::fzero_tol, ldbl_svector::indx, ldbl_er_info::nzcnt, ldbl_svector::nzcnt, ldbl_er_info::rbeg, ldbl_factor_work::work_coef, and ldbl_factor_work::work_indx.

static void ldbl_ILLfactor_ftranl ( ldbl_factor_work f,
long double *  a 
) [static]

Definition at line 3012 of file ldbl_factor.c.

References ldbl_lc_info::cbeg, ldbl_factor_work::dim, ldbl_factor_work::lc_inf, ldbl_factor_work::lccoef, and ldbl_factor_work::lcindx.

static void ldbl_ILLfactor_ftranl3 ( ldbl_factor_work f,
ldbl_svector a,
ldbl_svector x 
) [static]

Definition at line 3211 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_svector::indx, ldbl_factor_work::lc_inf, ldbl_ftranl3_delay2(), ldbl_ftranl3_process2(), ldbl_svector::nzcnt, and ldbl_factor_work::work_coef.

Referenced by ldbl_ILLfactor_ftran(), and ldbl_ILLfactor_ftran_update().

Here is the call graph for this function:

static void ldbl_ILLfactor_ftranu ( ldbl_factor_work f,
long double *  a,
ldbl_svector x 
) [static]

Definition at line 3407 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_svector::coef, ldbl_factor_work::cperm, ldbl_factor_work::dim, ldbl_svector::indx, ldbl_svector::nzcnt, ldbl_uc_info::nzcnt, ldbl_factor_work::rperm, ldbl_factor_work::szero_tol, ldbl_factor_work::uc_inf, ldbl_factor_work::uccoef, and ldbl_factor_work::ucindx.

static void ldbl_ILLfactor_ftranu3 ( ldbl_factor_work f,
ldbl_svector a,
ldbl_svector x 
) [static]

Definition at line 3616 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_svector::indx, ldbl_ftranu3_delay2(), ldbl_ftranu3_process2(), ldbl_svector::nzcnt, ldbl_factor_work::uc_inf, and ldbl_factor_work::work_coef.

Here is the call graph for this function:

void ldbl_ILLfactor_init_factor_work ( ldbl_factor_work f  ) 

Definition at line 84 of file ldbl_factor.c.

References ldbl_factor_work::cperm, ldbl_factor_work::crank, ldbl_factor_work::dense_fract, ldbl_factor_work::dense_min, ldbl_factor_work::dmat, ldbl_factor_work::er_inf, ldbl_factor_work::er_space_mul, ldbl_factor_work::ercoef, ldbl_factor_work::erindx, ldbl_factor_work::etamax, ldbl_factor_work::fzero_tol, ldbl_factor_work::grow_mul, ldbl_factor_work::lc_inf, ldbl_factor_work::lc_space_mul, ldbl_factor_work::lccoef, ldbl_factor_work::lcindx, ldbl_ILLsvector_init(), ldbl_OBJBND_TOLER, ldbl_SZERO_TOLER, ldbl_factor_work::lr_inf, ldbl_factor_work::lrcoef, ldbl_factor_work::lrindx, ldbl_factor_work::max_k, ldbl_factor_work::maxmult, ldbl_factor_work::minmult, ldbl_factor_work::p, ldbl_factor_work::partial_cur, ldbl_factor_work::partial_tol, ldbl_factor_work::rperm, ldbl_factor_work::rrank, ldbl_factor_work::szero_tol, ldbl_factor_work::uc_inf, ldbl_factor_work::uc_space_mul, ldbl_factor_work::uccoef, ldbl_factor_work::ucindx, ldbl_factor_work::ucrind, ldbl_factor_work::updmaxmult, ldbl_factor_work::ur_inf, ldbl_factor_work::ur_space_mul, ldbl_factor_work::urcind, ldbl_factor_work::urcoef, ldbl_factor_work::urindx, ldbl_factor_work::work_coef, ldbl_factor_work::work_indx, and ldbl_factor_work::xtmp.

Here is the call graph for this function:

int ldbl_ILLfactor_set_factor_dparam ( ldbl_factor_work f,
int  param,
long double  val 
)

Definition at line 211 of file ldbl_factor.c.

References ldbl_factor_work::dense_fract, ldbl_factor_work::er_space_mul, ldbl_factor_work::fzero_tol, ldbl_factor_work::grow_mul, ldbl_factor_work::lc_space_mul, ldbl_factor_work::lr_space_mul, ldbl_factor_work::maxmult, ldbl_factor_work::partial_cur, ldbl_factor_work::partial_tol, QS_FACTOR_DENSE_FRACT, QS_FACTOR_ER_SPACE_MUL, QS_FACTOR_FZERO_TOL, QS_FACTOR_GROW_MUL, QS_FACTOR_LC_SPACE_MUL, QS_FACTOR_LR_SPACE_MUL, QS_FACTOR_MAXMULT, QS_FACTOR_PARTIAL_TOL, QS_FACTOR_SZERO_TOL, QS_FACTOR_UC_SPACE_MUL, QS_FACTOR_UPDMAXMULT, QS_FACTOR_UR_SPACE_MUL, ldbl_factor_work::szero_tol, ldbl_factor_work::uc_space_mul, ldbl_factor_work::updmaxmult, and ldbl_factor_work::ur_space_mul.

int ldbl_ILLfactor_set_factor_iparam ( ldbl_factor_work f,
int  param,
int  val 
)

Definition at line 184 of file ldbl_factor.c.

References ldbl_factor_work::dense_min, ldbl_factor_work::etamax, ldbl_factor_work::max_k, ldbl_factor_work::p, QS_FACTOR_DENSE_MIN, QS_FACTOR_ETAMAX, QS_FACTOR_MAX_K, and QS_FACTOR_P.

static int ldbl_ILLfactor_try ( ldbl_factor_work f,
int *  basis,
int *  cbeg,
int *  clen,
int *  cindx,
long double *  ccoef 
) [static]

Definition at line 2762 of file ldbl_factor.c.

References ldbl_factor_work::dense_fract, ldbl_factor_work::dense_min, ldbl_factor_work::dim, E_FACTOR_BLOWUP, E_NO_PIVOT, E_SINGULAR_INTERNAL, ldbl_build_iteration_l_data(), ldbl_build_iteration_u_data(), ldbl_dense_factor(), ldbl_elim(), ldbl_find_pivot(), ldbl_handle_singularity(), ldbl_init_matrix(), ldbl_factor_work::maxelem_factor, ldbl_factor_work::maxelem_orig, ldbl_factor_work::maxmult, ldbl_factor_work::minmult, ldbl_factor_work::nstages, ldbl_uc_info::nzcnt, ldbl_factor_work::partial_cur, ldbl_factor_work::partial_tol, ldbl_ur_info::pivcnt, ldbl_factor_work::stage, ldbl_factor_work::uc_inf, and ldbl_factor_work::ur_inf.

Referenced by ldbl_ILLfactor().

Here is the call graph for this function:

int ldbl_ILLfactor_update ( ldbl_factor_work f,
ldbl_svector a,
int  col_p,
int *  p_refact 
)

Definition at line 5474 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_svector::coef, ldbl_factor_work::crank, ldbl_factor_work::etacnt, ldbl_factor_work::etamax, ldbl_svector::indx, ldbl_create_column(), ldbl_delete_column(), ldbl_ur_info::nzcnt, ldbl_svector::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::rrank, ldbl_factor_work::uc_inf, ldbl_factor_work::ucindx, ldbl_factor_work::ur_inf, ldbl_factor_work::urindx, and ldbl_factor_work::work_coef.

Referenced by ldbl_ILLbasis_update().

Here is the call graph for this function:

static int ldbl_init_matrix ( ldbl_factor_work f,
int *  basis,
int *  cbeg,
int *  clen,
int *  in_ucindx,
long double *  in_uccoef 
) [static]

Definition at line 1879 of file ldbl_factor.c.

References ldbl_factor_work::dim, ldbl_factor_work::fzero_tol, ldbl_create_factor_space(), ldbl_factor_work::max_k, ldbl_ur_info::nzcnt, ldbl_uc_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::uc_freebeg, ldbl_factor_work::uc_inf, ldbl_factor_work::uc_space, ldbl_factor_work::ucindx, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_ILLfactor_try().

Here is the call graph for this function:

static void ldbl_load_row ( ldbl_factor_work f,
int  r 
) [static]

Definition at line 723 of file ldbl_factor.c.

References ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, ldbl_factor_work::urindx, ldbl_factor_work::work_coef, and ldbl_factor_work::work_indx.

Referenced by ldbl_elim().

static int ldbl_make_lc_space ( ldbl_factor_work f,
int  space 
) [static]

Definition at line 983 of file ldbl_factor.c.

References ldbl_factor_work::grow_mul, ILL_IFFREE, ILL_SAFE_MALLOC, ldbl_factor_work::lc_freebeg, ldbl_factor_work::lc_space, ldbl_factor_work::lccoef, and ldbl_factor_work::lcindx.

Referenced by ldbl_elim().

static int ldbl_make_uc_space ( ldbl_factor_work f,
int  space 
) [static]

Definition at line 873 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_factor_work::dim, ldbl_factor_work::grow_mul, ILL_IFFREE, ILL_SAFE_MALLOC, ldbl_uc_info::nzcnt, ldbl_factor_work::uc_freebeg, ldbl_factor_work::uc_inf, ldbl_factor_work::uc_space, ldbl_factor_work::uccoef, ldbl_factor_work::ucindx, and ldbl_factor_work::ucrind.

Referenced by ldbl_add_col_nz(), and ldbl_expand_col().

static int ldbl_make_ur_space ( ldbl_factor_work f,
int  space 
) [static]

Definition at line 762 of file ldbl_factor.c.

References ldbl_factor_work::dim, ldbl_factor_work::grow_mul, ILL_IFFREE, ILL_SAFE_MALLOC, ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::ur_freebeg, ldbl_factor_work::ur_inf, ldbl_factor_work::ur_space, ldbl_factor_work::urcind, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_elim_row(), and ldbl_expand_row().

static int ldbl_move_pivot ( ldbl_factor_work f,
int  rank_r 
) [static]

Definition at line 5444 of file ldbl_factor.c.

References ldbl_factor_work::cperm, E_UPDATE_SINGULAR_COL, ldbl_move_pivot_col(), ldbl_move_pivot_row(), and ldbl_factor_work::rperm.

Here is the call graph for this function:

static int ldbl_move_pivot_col ( ldbl_factor_work f,
int  c,
int  r 
) [static]

Definition at line 5405 of file ldbl_factor.c.

References __QS_SB_VERB, ldbl_uc_info::cbeg, E_UPDATE_SINGULAR_COL, ldbl_uc_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::uc_inf, ldbl_factor_work::uccoef, ldbl_factor_work::ucindx, ldbl_factor_work::ucrind, ldbl_factor_work::ur_inf, and ldbl_factor_work::urcind.

Referenced by ldbl_move_pivot().

static int ldbl_move_pivot_row ( ldbl_factor_work f,
int  r,
int  c 
) [static]

Definition at line 5365 of file ldbl_factor.c.

References __QS_SB_VERB, ldbl_uc_info::cbeg, E_UPDATE_SINGULAR_ROW, ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::uc_inf, ldbl_factor_work::ucrind, ldbl_factor_work::ur_inf, ldbl_factor_work::urcind, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_move_pivot().

static void ldbl_remove_col ( ldbl_factor_work f,
int  c 
) [static]

Definition at line 1217 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_uc_info::next, ldbl_uc_info::nzcnt, ldbl_uc_info::prev, ldbl_factor_work::uc_inf, and ldbl_factor_work::ucindx.

Referenced by ldbl_elim().

static void ldbl_remove_col_nz ( ldbl_factor_work f,
int  r,
int  c 
) [static]

Definition at line 1084 of file ldbl_factor.c.

References ldbl_uc_info::cbeg, ldbl_set_col_nz(), ldbl_uc_info::nzcnt, ldbl_factor_work::uc_inf, and ldbl_factor_work::ucindx.

Referenced by ldbl_elim(), and ldbl_elim_row().

Here is the call graph for this function:

static void ldbl_remove_row ( ldbl_factor_work f,
int  r 
) [static]

Definition at line 1244 of file ldbl_factor.c.

References ldbl_ur_info::next, ldbl_ur_info::prev, and ldbl_factor_work::ur_inf.

Referenced by ldbl_elim().

static void ldbl_remove_row_nz ( ldbl_factor_work f,
int  r,
int  c 
) [static]

Definition at line 1109 of file ldbl_factor.c.

References ldbl_set_row_nz(), ldbl_ur_info::pivcnt, ldbl_ur_info::rbeg, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, and ldbl_factor_work::urindx.

Referenced by ldbl_elim().

Here is the call graph for this function:

static void ldbl_serow_delay ( ldbl_factor_work f,
int  r,
int  rank_r 
) [static]

Definition at line 5178 of file ldbl_factor.c.

References ldbl_factor_work::crank, ldbl_ur_info::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::rperm, ldbl_factor_work::ur_inf, and ldbl_factor_work::urindx.

Referenced by ldbl_sparse_eliminate_row().

static int ldbl_serow_process ( ldbl_factor_work f,
int  r,
ldbl_svector newr,
int  rank_r 
) [static]

Definition at line 5212 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_factor_work::crank, E_UPDATE_NOSPACE, ldbl_factor_work::er_freebeg, ldbl_factor_work::er_space, ldbl_factor_work::ercoef, ldbl_factor_work::erindx, ldbl_factor_work::fzero_tol, ldbl_svector::indx, ldbl_factor_work::maxelem_cur, ldbl_ur_info::nzcnt, ldbl_svector::nzcnt, ldbl_ur_info::rbeg, ldbl_factor_work::rperm, ldbl_factor_work::ur_inf, ldbl_factor_work::urcoef, ldbl_factor_work::urindx, and ldbl_factor_work::work_coef.

Referenced by ldbl_sparse_eliminate_row().

static void ldbl_set_col_nz ( ldbl_factor_work f,
int  c 
) [static]

Definition at line 1038 of file ldbl_factor.c.

References ldbl_factor_work::dim, ldbl_factor_work::max_k, ldbl_uc_info::next, ldbl_uc_info::nzcnt, ldbl_uc_info::prev, and ldbl_factor_work::uc_inf.

Referenced by ldbl_add_col_nz(), and ldbl_remove_col_nz().

static void ldbl_set_row_nz ( ldbl_factor_work f,
int  r 
) [static]

Definition at line 1061 of file ldbl_factor.c.

References ldbl_factor_work::dim, ldbl_factor_work::max_k, ldbl_ur_info::next, ldbl_ur_info::pivcnt, ldbl_ur_info::prev, and ldbl_factor_work::ur_inf.

Referenced by ldbl_elim_row(), and ldbl_remove_row_nz().

static void ldbl_shift_permutations ( ldbl_factor_work f,
int  rank_p,
int  rank_r 
) [static]

Definition at line 5025 of file ldbl_factor.c.

References ldbl_factor_work::cperm, ldbl_factor_work::crank, ldbl_factor_work::rperm, and ldbl_factor_work::rrank.

static int ldbl_sparse_eliminate_row ( ldbl_factor_work f,
ldbl_svector x,
int  row_p,
int  rank_r 
) [static]

Definition at line 5302 of file ldbl_factor.c.

References ldbl_svector::coef, ldbl_factor_work::crank, ldbl_factor_work::dim, ILL_IFFREE, ILL_SAFE_MALLOC, ldbl_svector::indx, ldbl_add_nonzero(), ldbl_serow_delay(), ldbl_serow_process(), ldbl_svector::nzcnt, ldbl_factor_work::nzcnt_cur, ldbl_factor_work::ur_inf, and ldbl_factor_work::work_coef.

Here is the call graph for this function:


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