190 SUBROUTINE dgebd2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
198 INTEGER INFO, LDA, M, N
201 DOUBLE PRECISION A( lda, * ), D( * ), E( * ), TAUP( * ),
202 $ tauq( * ), work( * )
208 DOUBLE PRECISION ZERO, ONE
209 parameter( zero = 0.0d+0, one = 1.0d+0 )
227 ELSE IF( n.LT.0 )
THEN
229 ELSE IF( lda.LT.max( 1, m ) )
THEN
233 CALL xerbla(
'DGEBD2', -info )
245 CALL dlarfg( m-i+1, a( i, i ), a( min( i+1, m ), i ), 1,
253 $
CALL dlarf(
'Left', m-i+1, n-i, a( i, i ), 1, tauq( i ),
254 $ a( i, i+1 ), lda, work )
262 CALL dlarfg( n-i, a( i, i+1 ), a( i, min( i+2, n ) ),
269 CALL dlarf(
'Right', m-i, n-i, a( i, i+1 ), lda,
270 $ taup( i ), a( i+1, i+1 ), lda, work )
284 CALL dlarfg( n-i+1, a( i, i ), a( i, min( i+1, n ) ), lda,
292 $
CALL dlarf(
'Right', m-i, n-i+1, a( i, i ), lda,
293 $ taup( i ), a( i+1, i ), lda, work )
301 CALL dlarfg( m-i, a( i+1, i ), a( min( i+2, m ), i ), 1,
308 CALL dlarf(
'Left', m-i, n-i, a( i+1, i ), 1, tauq( i ),
309 $ a( i+1, i+1 ), lda, work )
subroutine dlarfg(N, ALPHA, X, INCX, TAU)
DLARFG generates an elementary reflector (Householder matrix).
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dlarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
DLARF applies an elementary reflector to a general rectangular matrix.
subroutine dgebd2(M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO)
DGEBD2 reduces a general matrix to bidiagonal form using an unblocked algorithm.