SPPEQU(l)		LAPACK routine (version	1.1)		    SPPEQU(l)

NAME
  SPPEQU - 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 SPPEQU( UPLO, N, AP, S, SCOND, AMAX, INFO )

      CHARACTER	     UPLO

      INTEGER	     INFO, N

      REAL	     AMAX, SCOND

      REAL	     AP( * ), S( * )

PURPOSE
  SPPEQU 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) REAL 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) 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