slasq3(3P)
NAME
slasq3 - SLASQ3 is the workhorse of the whole bidiagonal SVD algorithm
SYNOPSIS
SUBROUTINE SLASQ3(
N, Q, E, QQ, EE, SUP, SIGMA, KEND, OFF, IPHASE, ICONV, EPS, TOL2, SMALL2 )
void slasq3(long int ∗n, float ∗q, float ∗e, float ∗qq, float ∗ee,
float ∗sup, float ∗sigma, long int ∗kend, long int ∗off, long int ∗iphase,
long int iconv, float eps, float tol2, float small2)
INTEGER ICONV, IPHASE, KEND, N, OFF
REAL EPS, SIGMA, SMALL2, SUP, TOL2
REAL E( ∗ ), EE( ∗ ), Q( ∗ ), QQ( ∗ )
PURPOSE
SLASQ3 is the workhorse of the whole bidiagonal SVD algorithm.
This can be described as the differential qd with shifts.
ARGUMENTS
N (input/output) INTEGER
On entry, N specifies the number of rows and columns in the matrix. N must be at least 3. On exit N is non-negative and less than the input value.
Q (input/output) REAL array, dimension (N)
Q array in ping (see IPHASE below)
E (input/output) REAL array, dimension (N)
E array in ping (see IPHASE below)
QQ (input/output) REAL array, dimension (N)
Q array in pong (see IPHASE below)
EE (input/output) REAL array, dimension (N)
E array in pong (see IPHASE below)
SUP (input/output) REAL
Upper bound for the smallest eigenvalue
SIGMA (input/output) REAL
Accumulated shift for the present submatrix
KEND (input/output) INTEGER
Index where minimum D(i) occurs in recurrence for splitting criterion
OFF (input/output) INTEGER
Offset for arrays
IPHASE (input/output) INTEGER
If IPHASE = 1 (ping) then data is in Q and E arrays If IPHASE = 2 (pong) then data is in QQ and EE arrays
ICONV (input) INTEGER
If ICONV = 0 a bottom part of a matrix (with a split) If ICONV =-3 a top part of a matrix (with a split)
EPS (input) REAL
Machine epsilon
TOL2 (input) REAL
Square of the relative tolerance TOL as defined in SLASQ1
SMALL2 (input) REAL
A threshold value as defined in SLASQ1
Sun, Inc. — Last change: 20 Sep 1996