gsequ(3P) Sun Performance Library gsequ(3P)NAME
gsequ: cgsequ, dgsequ, sgsequ, zgsequ - computes row and column scal‐
ings intended to equilibrate an M-by-N sparse matrix A and reduce its
condition number.
SYNOPSIS
#include <sunperf.h>
void sgsequ(SuperMatrix *A, float *R, float *C, float *rowcnd, float
*colcnd, float *amax, int *info)
void dgsequ(SuperMatrix *A, double *R, double *C, double *rowcnd, dou‐
ble *colcnd, double *amax, int *info)
void cgsequ(SuperMatrix *A, float *R, float *C, float *rowcnd, float
*colcnd, float *amax, int *info)
void zgsequ(SuperMatrix *A, double *R, double *C, double *rowcnd, dou‐
ble *colcnd, double *amax, int *info)
void sgsequ_64(SuperMatrix_64 *A, float *R, float *C, float *rowcnd,
float *colcnd, float *amax, long *info)
void dgsequ_64(SuperMatrix_64 *A, double *R, double *C, double *rowcnd,
double *colcnd, double *amax, long *info)
void cgsequ_64(SuperMatrix_64 *A, float *R, float *C, float *rowcnd,
float *colcnd, float *amax, long *info)
void zgsequ_64(SuperMatrix_64 *A, double *R, double *C, double *rowcnd,
double *colcnd, double *amax, long *info)
PURPOSEgsequ computes the row and column scaling factors to be used by routine
slaqgs to equilibrate an M-by-N sparse matrix A and reduce its condi‐
tion number. The scaling factors are chosen such that the largest ele‐
ment in each row and column of the matrix B has absolute value 1, and B
is computed as B(i,j)=R(i)*A(i,j)*C(j) by slaqgs.
R(i) and C(j) are restricted to be between the smallest safe number and
the largest safe number. Use of these scaling factors is not guaran‐
teed to reduce the condition number of A but it works well in practice.
ARGUMENTS
SuperMatrix *A (input)
The matrix of dimension (A->nrow, A->ncol) whose equilibration
factors are to be computed. The type of A can be:
Stype = SLU_NC; Dtype = SLU_C; Mtype = SLU_GE.
float *R (output)
Array of size A->nrow that contains the row scale factors for A
if info = 0 or info > M.
float *C (output)
Array of size A->ncol that contains the column scale factors for
A if info = 0.
float *colcond (output)
If info = 0 or info > M, rowcond contains the ratio of the
smallest R(i) to the largest R(i). If rowcnd >= 0.1 and amax is
neither too large nor too small, it is not worth scaling by R.
float *colcond (output)
If info = 0, colcond contains the ratio of the smallest C(i) to
the largest C(i). If colcnd >= 0.1, it is not worth scaling by
C.
float *amax (output)
Absolute value of largest matrix element. If amax is very close
to overflow or very close to underflow, the matrix should be
scaled.
int *info (output)
= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, and i is
<= A->nrow: the i-th row of A is exactly zero
> A->ncol: the (i-M)-th column of A is exactly zero
COPYRIGHT
Copyright (c) 2003, The Regents of the University of California,
through Lawrence Berkeley National Laboratory (subject to receipt of
any required approvals from U.S. Dept. of Energy)
SEE ALSO
SuperMatrix
laqgs
http://crd.lbl.gov/~xiaoye/SuperLU/
James W. Demmel, Stanley C. Eisenstat, John R. Gilbert, Xiaoye S. Li
and Joseph W. H. Liu, "A supernodal approach to sparse partial pivot‐
ing", SIAM J. Matrix Analysis and Applications, Vol. 20, Num. 3, 1999,
pp. 720-755.
6 Mar 2009 gsequ(3P)