Contents


NAME

     zgeequ - compute row and column scalings intended to equili-
     brate an M-by-N matrix A and reduce its condition number

SYNOPSIS

     SUBROUTINE ZGEEQU(M, N, A, LDA, R, C, ROWCN, COLCN, AMAX,
           INFO)

     DOUBLE COMPLEX A(LDA,*)
     INTEGER M, N, LDA, INFO
     DOUBLE PRECISION ROWCN, COLCN, AMAX
     DOUBLE PRECISION R(*), C(*)

     SUBROUTINE ZGEEQU_64(M, N, A, LDA, R, C, ROWCN, COLCN, AMAX,
           INFO)

     DOUBLE COMPLEX A(LDA,*)
     INTEGER*8 M, N, LDA, INFO
     DOUBLE PRECISION ROWCN, COLCN, AMAX
     DOUBLE PRECISION R(*), C(*)

  F95 INTERFACE
     SUBROUTINE GEEQU([M], [N], A, [LDA], R, C, ROWCN, COLCN,
            AMAX, [INFO])

     COMPLEX(8), DIMENSION(:,:) :: A
     INTEGER :: M, N, LDA, INFO
     REAL(8) :: ROWCN, COLCN, AMAX
     REAL(8), DIMENSION(:) :: R, C

     SUBROUTINE GEEQU_64([M], [N], A, [LDA], R, C, ROWCN, COLCN,
            AMAX, [INFO])

     COMPLEX(8), DIMENSION(:,:) :: A
     INTEGER(8) :: M, N, LDA, INFO
     REAL(8) :: ROWCN, COLCN, AMAX
     REAL(8), DIMENSION(:) :: R, C

  C INTERFACE
     #include <sunperf.h>

     void zgeequ(int m, int n, doublecomplex *a, int lda,  double
               *r,  double *c, double *rowcn, double *colcn, dou-
               ble *amax, int *info);

     void zgeequ_64(long m, long n, doublecomplex *a,  long  lda,
               double   *r,  double  *c,  double  *rowcn,  double
               *colcn, double *amax, long *info);

PURPOSE

     zgeequ computes row and column scalings intended to  equili-
     brate an M-by-N matrix A and reduce its condition number.  R
     returns the row scale factors and C the  column  scale  fac-
     tors,  chosen to try to make the largest element in each row
     and   column    of    the    matrix    B    with    elements
     B(i,j)=R(i)*A(i,j)*C(j) have absolute value 1.

     R(i) and C(j) are restricted to be between SMLNUM = smallest
     safe  number and BIGNUM = largest safe number.  Use of these
     scaling factors is not guaranteed to  reduce  the  condition
     number of A but works well in practice.

ARGUMENTS

     M (input) The number of rows of the matrix A.  M >= 0.

     N (input) The number of columns of the matrix A.  N >= 0.

     A (input) The M-by-N matrix whose equilibration factors  are
               to be computed.

     LDA (input)
               The leading dimension of  the  array  A.   LDA  >=
               max(1,M).

     R (output)
               If INFO = 0 or INFO > M, R contains the row  scale
               factors for A.

     C (output)
               If INFO = 0,  C contains the column scale  factors
               for A.

     ROWCN (output)
               If INFO = 0 or INFO > M, ROWCN contains the  ratio
               of  the  smallest  R(i)  to  the largest R(i).  If
               ROWCN >= 0.1 and AMAX is neither too large nor too
               small, it is not worth scaling by R.

     COLCN (output)
               If INFO = 0, COLCN contains the ratio of the smal-
               lest  C(i)  to the largest C(i).  If COLCN >= 0.1,
               it is not worth scaling by C.

     AMAX (output)
               Absolute value of largest matrix element.  If AMAX
               is  very close to overflow or very close to under-
               flow, the matrix should be scaled.

     INFO (output)
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille-
               gal value
               > 0:  if INFO = i,  and i is
               <= M:  the i-th row of A is exactly zero
               >  M:  the (i-M)-th column of A is exactly zero