186 SUBROUTINE sgebd2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
193 INTEGER INFO, LDA, M, N
196 REAL A( LDA, * ), D( * ), E( * ), TAUP( * ),
197 $ TAUQ( * ), WORK( * )
204 parameter( zero = 0.0e+0, one = 1.0e+0 )
222 ELSE IF( n.LT.0 )
THEN
224 ELSE IF( lda.LT.max( 1, m ) )
THEN
228 CALL xerbla(
'SGEBD2', -info )
240 CALL slarfg( m-i+1, a( i, i ), a( min( i+1, m ), i ), 1,
247 $
CALL slarf1f(
'Left', m-i+1, n-i, a( i, i ), 1,
248 $ tauq( i ), a( i, i+1 ), lda, work )
255 CALL slarfg( n-i, a( i, i+1 ), a( i, min( i+2, n ) ),
261 CALL slarf1f(
'Right', m-i, n-i, a( i, i+1 ), lda,
262 $ taup( i ), a( i+1, i+1 ), lda, work )
275 CALL slarfg( n-i+1, a( i, i ), a( i, min( i+1, n ) ),
283 $
CALL slarf1f(
'Right', m-i, n-i+1, a( i, i ), lda,
284 $ taup( i ), a( i+1, i ), lda, work )
291 CALL slarfg( m-i, a( i+1, i ), a( min( i+2, m ), i ),
298 CALL slarf1f(
'Left', m-i, n-i, a( i+1, i ), 1,
299 $ tauq( i ), 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 slarfg(n, alpha, x, incx, tau)
SLARFG generates an elementary reflector (Householder matrix).
subroutine slarf1f(side, m, n, v, incv, tau, c, ldc, work)
SLARF1F applies an elementary reflector to a general rectangular