sgsequ - ings intended to equilibrate an M-by-N sparse matrix A and reduce its condition number.
#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)
Oracle Solaris Studio 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)
PURPOSE
gsequ 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
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.
7 Nov 2015 gsequ(3P)