DLASD0  -  a  divide and conquer approach, DLASD0 computes
       the singular value decomposition (SVD)  of  a  real  upper
       bidiagonal N-by-M matrix B with diagonal D and offdiagonal
       E, where M = N + SQRE


SYNOPSIS

       SUBROUTINE DLASD0( N, SQRE, D, E, U, LDU, VT,  LDVT,  SML­
                          SIZ, IWORK, WORK, INFO )

           INTEGER        INFO, LDU, LDVT, N, SMLSIZ, SQRE

           INTEGER        IWORK( * )

           DOUBLE         PRECISION  D( * ), E( * ), U( LDU, * ),
                          VT( LDVT, * ), WORK( * )


PURPOSE

       Using a divide and conquer approach, DLASD0  computes  the
       singular value decomposition (SVD) of a real upper bidiag­
       onal N-by-M matrix B with diagonal D  and  offdiagonal  E,
       where  M  =  N  +  SQRE. The algorithm computes orthogonal
       matrices U and VT such that B = U * S * VT.  The  singular
       values S are overwritten on D.

       A  related  subroutine, DLASDA, computes only the singular
       values, and optionally, the singular  vectors  in  compact
       form.


ARGUMENTS

       N      (input) INTEGER
              On entry, the row dimension of the upper bidiagonal
              matrix.  This is also the  dimension  of  the  main
              diagonal array D.

       SQRE   (input) INTEGER
              Specifies  the  column  dimension of the bidiagonal
              matrix.  = 0:  The  bidiagonal  matrix  has  column
              dimension M = N;
              = 1: The bidiagonal matrix has column dimension M =
              N+1;

       D      (input/output) DOUBLE PRECISION array, dimension
              (N)
              On  entry D contains the main diagonal of the bidi­
              agonal matrix.  On exit D, if INFO  =  0,  contains
              its singular values.

       E      (input) DOUBLE PRECISION array, dimension (M-1)
              Contains  the subdiagonal entries of the bidiagonal
              matrix.  On exit, E has been destroyed.

              (LDQ, N)
              On exit, U contains the left singular vectors.

       LDU    (input) INTEGER
              On entry, leading dimension of U.

       VT     (output) DOUBLE PRECISION array, dimension at least
              (LDVT, M)
              On exit, VT' contains the right singular vectors.

       LDVT   (input) INTEGER
              On entry, leading dimension of VT.

              SMLSIZ (input) INTEGER On entry,  maximum  size  of
              the  subproblems  at  the bottom of the computation
              tree.

       IWORK  INTEGER work array.
              Dimension must be at least (8 * N)

       WORK   DOUBLE PRECISION work array.
              Dimension must be at least (3 * M**2 + 2 * M)

       INFO   (output) INTEGER
              = 0:  successful exit.
              < 0:  if INFO = -i, the i-th argument had an  ille­
              gal value.
              >  0:   if INFO = 1, an singular value did not con­
              verge


FURTHER DETAILS

       Based on contributions by
          Ming Gu and Huan Ren, Computer Science  Division,  Uni­
       versity of
          California at Berkeley, USA


Man(1) output converted with man2html