SLASQ1  -  compute  the  singular  values of a real N-by-N
       bidiagonal matrix with diagonal D and off-diagonal E


SYNOPSIS

       SUBROUTINE SLASQ1( N, D, E, WORK, INFO )

           INTEGER        INFO, N

           REAL           D( * ), E( * ), WORK( * )


PURPOSE

       SLASQ1 computes the singular values of a real N-by-N bidi­
       agonal matrix with diagonal D and off-diagonal E. The sin­
       gular values are computed to high  relative  accuracy,  in
       the  absence  of  denormalization, underflow and overflow.
       The algorithm was first presented in

       "Accurate singular values and differential qd  algorithms"
       by  K.  V.   Fernando  and  B.  N.  Parlett, Numer. Math.,
       Vol-67, No. 2, pp. 191-230, 1994,

       and the present implementation is described in "An  imple­
       mentation  of  the dqds Algorithm (Positive Case)", LAPACK
       Working Note.


ARGUMENTS

       N     (input) INTEGER
             The number of rows and columns in the matrix.  N  >=
             0.

       D     (input/output) REAL array, dimension (N)
             On  entry,  D  contains the diagonal elements of the
             bidiagonal matrix whose SVD is  desired.  On  normal
             exit,  D  contains the singular values in decreasing
             order.

       E     (input/output) REAL array, dimension (N)
             On entry, elements E(1:N-1) contain the off-diagonal
             elements  of  the  bidiagonal  matrix  whose  SVD is
             desired.  On exit, E is overwritten.

       WORK  (workspace) REAL array, dimension (4*N)

       INFO  (output) INTEGER
             = 0: successful exit
             < 0: if INFO = -i, the i-th argument had an  illegal
             value
             > 0: the algorithm failed = 1, a split was marked by
             a positive value in E = 2, current block  of  Z  not
             diagonalized  after  30*N iterations (in inner while
             loop) = 3, termination criterion of outer while loop
             not  met  (program  created  more  than  N unreduced



Man(1) output converted with man2html