DGEEQU(l)		LAPACK routine (version	1.1)		    DGEEQU(l)

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

SYNOPSIS

  SUBROUTINE DGEEQU( M,	N, A, LDA, R, C, ROWCND, COLCND, AMAX, INFO )

      INTEGER	     INFO, LDA,	M, N

      DOUBLE	     PRECISION AMAX, COLCND, ROWCND

      DOUBLE	     PRECISION A( LDA, * ), C( * ), R( * )

PURPOSE
  DGEEQU computes row and column scalings intended to equilibrate an M-by-N
  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 entry 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.

  A	  (input) DOUBLE PRECISION array, dimension (LDA,N)
	  The M-by-N matrix whose equilibration	factors	are to be computed.

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

  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