ZGBEQU(l)		LAPACK routine (version	1.1)		    ZGBEQU(l)

NAME
  ZGBEQU - compute row and column scalings intended to equilibrate an M	by N
  band matrix A	and reduce its condition number

SYNOPSIS

  SUBROUTINE ZGBEQU( M,	N, KL, KU, AB, LDAB, R,	C, ROWCND, COLCND, AMAX, INFO
		     )

      INTEGER	     INFO, KL, KU, LDAB, M, N

      DOUBLE	     PRECISION AMAX, COLCND, ROWCND

      DOUBLE	     PRECISION C( * ), R( * )

      COMPLEX*16     AB( LDAB, * )

PURPOSE
  ZGBEQU computes row and column scalings intended to equilibrate an M by N
  band matrix A	and reduce its condition number.  R returns the	row scale
  factors and C	the column scale factors, 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) INTEGER
	  The number of	rows of	the matrix A.  M >= 0.

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

  KL	  (input) INTEGER
	  The number of	subdiagonals within the	band of	A.  KL >= 0.

  KU	  (input) INTEGER
	  The number of	superdiagonals within the band of A.  KU >= 0.

  AB	  (input) COMPLEX*16 array, dimension (LDAB,N)
	  The band matrix A, stored in rows 1 to KL+KU+1.  The j-th column of
	  A is stored in the j-th column of the	array AB as follows:
	  AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl).

  LDAB	  (input) INTEGER
	  The leading dimension	of the array AB.  LDAB >= KL+KU+1.

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

  C	  (output) DOUBLE PRECISION array, dimension (N)
	  If INFO = 0, C contains the column scale factors for A.

  ROWCND  (output) DOUBLE PRECISION
	  If INFO = 0 or INFO >	M, ROWCND 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.

  COLCND  (output) DOUBLE PRECISION
	  If INFO = 0, COLCND contains the ratio of the	smallest C(i) to the
	  largest C(i).	 If COLCND >= 0.1, it is not worth scaling by C.

  AMAX	  (output) DOUBLE PRECISION
	  Absolute value of largest matrix element.  If	AMAX is	very close to
	  overflow or very close to underflow, the matrix should be scaled.

  INFO	  (output) INTEGER
	  = 0:	successful exit
	  < 0:	if INFO	= -i, the i-th argument	had an illegal 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


Back to the listing of computational routines for linear equations