slasq1(3P)
NAME
slasq1 - SLASQ1 computes 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( ∗ )
#include <sunperf.h>
void slasq1(int n, float ∗d, float ∗e, int ∗info) ;
PURPOSE
SLASQ1 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) 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 (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.
SunOS 5.0 — Last change: 10 Dec 1998