CXML

DLASQ1 (3lapack)


SYNOPSIS

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

      INTEGER        INFO, N

      DOUBLE         PRECISION D( * ), E( * ), WORK( * )

PURPOSE

     DLASQ1 computes the singular values of a real N-by-N bidiagonal
     matrix with diagonal D and off-diagonal E. The singular values are
     computed to high relative accuracy, barring over/underflow or
     denormalization. The algorithm is described 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.

     See also
     "Implementation of differential qd algorithms," by
     K. V. Fernando and B. N. Parlett, Technical Report,
     Department of Mathematics, University of California at Berkeley,
     1994 (Under preparation).

ARGUMENTS

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

  D       (input/output) DOUBLE PRECISION 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) DOUBLE PRECISION 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) DOUBLE PRECISION array, dimension (2*N)

  INFO    (output) INTEGER
          = 0:  successful exit
          < 0:  if INFO = -i, the i-th argument had an illegal value
          > 0:  if INFO = i, the algorithm did not converge;  i specifies how
          many superdiagonals did not converge.

CXML Home Page

Index of CXML Routines