dlasq1(3)
NAME
- DLASQ1 - compute the singular values of a real N-by-N
- bidiagonal matrix with diagonal D and off-diagonal E
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 bidi
- agonal matrix with diagonal D and off-diagonal E. The singular
- 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) DOUBLE PRECISION array, dimension (N)
- On entry, D contains the diagonal elements of the
- bidiagonal matrix whose SVD is desired. On normal exit, D con
- tains 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 (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 cri
- terion of outer while loop not met (program created more than N
- unreduced blocks)
- LAPACK version 3.0 15 June 2000