SPOEQU - compute row and column scalings intended to equi­
       librate a symmetric positive definite matrix A and  reduce
       its condition number (with respect to the two-norm)


SYNOPSIS

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

           INTEGER        INFO, LDA, N

           REAL           AMAX, SCOND

           REAL           A( LDA, * ), S( * )


PURPOSE

       SPOEQU  computes row and column scalings intended to equi­
       librate a symmetric 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 possible diag­
       onal scalings.


ARGUMENTS

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

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

       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  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) REAL
               Absolute value of largest matrix element.  If AMAX
               is very close to overflow or very close to  under­
               flow, the matrix should be scaled.

               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille­
               gal value
               > 0:  if INFO = i, the i-th  diagonal  element  is
               nonpositive.


Man(1) output converted with man2html