DPPEQU(l)		LAPACK routine (version	1.1)		    DPPEQU(l)

NAME
  DPPEQU - compute row and column scalings intended to equilibrate a sym-
  metric positive definite matrix A in packed storage and reduce its condi-
  tion number (with respect to the two-norm)

SYNOPSIS

  SUBROUTINE DPPEQU( UPLO, N, AP, S, SCOND, AMAX, INFO )

      CHARACTER	     UPLO

      INTEGER	     INFO, N

      DOUBLE	     PRECISION AMAX, SCOND

      DOUBLE	     PRECISION AP( * ),	S( * )

PURPOSE
  DPPEQU computes row and column scalings intended to equilibrate a symmetric
  positive definite matrix A in	packed storage 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 condi-
  tion number over all possible	diagonal scalings.

ARGUMENTS

  UPLO	  (input) CHARACTER*1
	  = 'U':  Upper	triangle of A is stored;
	  = 'L':  Lower	triangle of A is stored.

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

  AP	  (input) DOUBLE PRECISION array, dimension (N*(N+1)/2)
	  The upper or lower triangle of the symmetric matrix A, packed
	  columnwise in	a linear array.	 The j-th column of A is stored	in
	  the array AP as follows: if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j)
	  for 1<=i<=j; if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for
	  j<=i<=n.

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

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

Back to the listing of computational routines for linear equations