188 SUBROUTINE sgebd2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
195 INTEGER INFO, LDA, M, N
198 REAL A( LDA, * ), D( * ), E( * ), TAUP( * ),
199 $ TAUQ( * ), WORK( * )
206 parameter( zero = 0.0e+0, one = 1.0e+0 )
224 ELSE IF( n.LT.0 )
THEN
226 ELSE IF( lda.LT.max( 1, m ) )
THEN
230 CALL xerbla(
'SGEBD2', -info )
242 CALL slarfg( m-i+1, a( i, i ), a( min( i+1, m ), i ), 1,
250 $
CALL slarf(
'Left', m-i+1, n-i, a( i, i ), 1, tauq( i ),
251 $ a( i, i+1 ), lda, work )
259 CALL slarfg( n-i, a( i, i+1 ), a( i, min( i+2, n ) ),
266 CALL slarf(
'Right', m-i, n-i, a( i, i+1 ), lda,
267 $ taup( i ), a( i+1, i+1 ), lda, work )
281 CALL slarfg( n-i+1, a( i, i ), a( i, min( i+1, n ) ), lda,
289 $
CALL slarf(
'Right', m-i, n-i+1, a( i, i ), lda,
290 $ taup( i ), a( i+1, i ), lda, work )
298 CALL slarfg( m-i, a( i+1, i ), a( min( i+2, m ), i ), 1,
305 CALL slarf(
'Left', m-i, n-i, a( i+1, i ), 1, tauq( i ),
306 $ a( i+1, i+1 ), lda, work )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine sgebd2(M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO)
SGEBD2 reduces a general matrix to bidiagonal form using an unblocked algorithm.
subroutine slarfg(N, ALPHA, X, INCX, TAU)
SLARFG generates an elementary reflector (Householder matrix).
subroutine slarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
SLARF applies an elementary reflector to a general rectangular matrix.