CPOEQU(l)		LAPACK routine (version	1.1)		    CPOEQU(l)

NAME
  CPOEQU - compute row and column scalings intended to equilibrate a Hermi-
  tian positive	definite matrix	A and reduce its condition number (with
  respect to the two-norm)

SYNOPSIS

  SUBROUTINE CPOEQU( N,	A, LDA,	S, SCOND, AMAX,	INFO )

      INTEGER	     INFO, LDA,	N

      REAL	     AMAX, SCOND

      REAL	     S(	* )

      COMPLEX	     A(	LDA, * )

PURPOSE
  CPOEQU computes row and column scalings intended to equilibrate a Hermitian
  positive definite matrix A and reduce	its condition number (with respect to
  the two-norm).  S contains the scale factors,	S(i) = 1/sqrt(A(i,i)), chosen
  so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has
  ones on the diagonal.	 This choice of	S puts the condition number of B
  within a factor N of the smallest possible condition number over all possi-
  ble diagonal scalings.

ARGUMENTS

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

  A	  (input) COMPLEX array, dimension (LDA,N)
	  The N-by-N Hermitian positive	definite matrix	whose scaling factors
	  are to be computed.  Only the	diagonal elements of A are refer-
	  enced.

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

  S	  (output) REAL	array, dimension (N)
	  If INFO = 0, S contains the scale factors for	A.

  SCOND	  (output) REAL
	  If INFO = 0, S contains the ratio of the smallest S(i) to the	larg-
	  est S(i).  If	SCOND >= 0.1 and AMAX is neither too large nor too
	  small, it is not worth scaling by S.

  AMAX	  (output) REAL
	  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, the i-th diagonal entry is	nonpositive.


Back to the listing of computational routines for linear equations