188 SUBROUTINE dgebd2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
195 INTEGER INFO, LDA, M, N
198 DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAUP( * ),
199 $ TAUQ( * ), WORK( * )
205 DOUBLE PRECISION ZERO, ONE
206 parameter( zero = 0.0d+0, one = 1.0d+0 )
224 ELSE IF( n.LT.0 )
THEN
226 ELSE IF( lda.LT.
max( 1, m ) )
THEN
230 CALL xerbla(
'DGEBD2', -info )
242 CALL dlarfg( m-i+1, a( i, i ), a(
min( i+1, m ), i ), 1,
250 $
CALL dlarf(
'Left', m-i+1, n-i, a( i, i ), 1, tauq( i ),
251 $ a( i, i+1 ), lda, work )
259 CALL dlarfg( n-i, a( i, i+1 ), a( i,
min( i+2, n ) ),
266 CALL dlarf(
'Right', m-i, n-i, a( i, i+1 ), lda,
267 $ taup( i ), a( i+1, i+1 ), lda, work )
281 CALL dlarfg( n-i+1, a( i, i ), a( i,
min( i+1, n ) ), lda,
289 $
CALL dlarf(
'Right', m-i, n-i+1, a( i, i ), lda,
290 $ taup( i ), a( i+1, i ), lda, work )
298 CALL dlarfg( m-i, a( i+1, i ), a(
min( i+2, m ), i ), 1,
305 CALL dlarf(
'Left', m-i
306 $ a( i+1, i+1 ), lda, work )
subroutine dgebd2(m, n, a, lda, d, e, tauq, taup, work, info)
DGEBD2 reduces a general matrix to bidiagonal form using an unblocked algorithm.
subroutine dlarfg(n, alpha, x, incx, tau)
DLARFG generates an elementary reflector (Householder matrix).
subroutine dlarf(side, m, n, v, incv, tau, c, ldc, work)
DLARF applies an elementary reflector to a general rectangular matrix.