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.