ZPPEQU(3)
computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A in packed storage and reduce its condition number (with respect to the twonorm)
SYNOPSIS
 SUBROUTINE ZPPEQU(

UPLO, N, AP, S, SCOND, AMAX, INFO )

CHARACTER
UPLO

INTEGER
INFO, N

DOUBLE
PRECISION AMAX, SCOND

DOUBLE
PRECISION S( * )

COMPLEX*16
AP( * )
PURPOSE
ZPPEQU computes row and column scalings intended to equilibrate a
Hermitian positive definite matrix A in packed storage and reduce
its condition number (with respect to the twonorm). 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 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) COMPLEX*16 array, dimension (N*(N+1)/2)

The upper or lower triangle of the Hermitian matrix A, packed
columnwise in a linear array. The jth column of A is stored
in the array AP as follows:
if UPLO = 'U', AP(i + (j1)*j/2) = A(i,j) for 1<=i<=j;
if UPLO = 'L', AP(i + (j1)*(2nj)/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 largest 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 ith argument had an illegal value
> 0: if INFO = i, the ith diagonal element is nonpositive.