dlasq1(3P)
NAME
dlasq1 - DLASQ1 computes 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 )
void dlasq1(long int n, double ∗d, double ∗e, long int ∗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.
Sun, Inc. — Last change: 20 Sep 1996