190 SUBROUTINE sgebd2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
198 INTEGER INFO, LDA, M, N
201 REAL A( lda, * ), D( * ), E( * ), TAUP( * ),
202 $ tauq( * ), work( * )
209 parameter ( zero = 0.0e+0, one = 1.0e+0 )
227 ELSE IF( n.LT.0 )
THEN
229 ELSE IF( lda.LT.max( 1, m ) )
THEN
233 CALL xerbla(
'SGEBD2', -info )
245 CALL slarfg( m-i+1, a( i, i ), a( min( i+1, m ), i ), 1,
253 $
CALL slarf(
'Left', m-i+1, n-i, a( i, i ), 1, tauq( i ),
254 $ a( i, i+1 ), lda, work )
262 CALL slarfg( n-i, a( i, i+1 ), a( i, min( i+2, n ) ),
269 CALL slarf(
'Right', m-i, n-i, a( i, i+1 ), lda,
270 $ taup( i ), a( i+1, i+1 ), lda, work )
284 CALL slarfg( n-i+1, a( i, i ), a( i, min( i+1, n ) ), lda,
292 $
CALL slarf(
'Right', m-i, n-i+1, a( i, i ), lda,
293 $ taup( i ), a( i+1, i ), lda, work )
301 CALL slarfg( m-i, a( i+1, i ), a( min( i+2, m ), i ), 1,
308 CALL slarf(
'Left', m-i, n-i, a( i+1, i ), 1, tauq( i ),
309 $ a( i+1, i+1 ), lda, work )
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 xerbla(SRNAME, INFO)
XERBLA
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.