191 SUBROUTINE cgebd2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
199 INTEGER INFO, LDA, M, N
203 COMPLEX A( lda, * ), TAUP( * ), TAUQ( * ), WORK( * )
210 parameter( zero = ( 0.0e+0, 0.0e+0 ),
211 $ one = ( 1.0e+0, 0.0e+0 ) )
221 INTRINSIC conjg, max, min
230 ELSE IF( n.LT.0 )
THEN
232 ELSE IF( lda.LT.max( 1, m ) )
THEN
236 CALL
xerbla(
'CGEBD2', -info )
249 CALL
clarfg( m-i+1, alpha, a( min( i+1, m ), i ), 1,
257 $ CALL
clarf(
'Left', m-i+1, n-i, a( i, i ), 1,
258 $ conjg( tauq( i ) ), a( i, i+1 ), lda, work )
266 CALL
clacgv( n-i, a( i, i+1 ), lda )
268 CALL
clarfg( n-i, alpha, a( i, min( i+2, n ) ),
275 CALL
clarf(
'Right', m-i, n-i, a( i, i+1 ), lda,
276 $ taup( i ), a( i+1, i+1 ), lda, work )
277 CALL
clacgv( n-i, a( i, i+1 ), lda )
291 CALL
clacgv( n-i+1, a( i, i ), lda )
293 CALL
clarfg( n-i+1, alpha, a( i, min( i+1, n ) ), lda,
301 $ CALL
clarf(
'Right', m-i, n-i+1, a( i, i ), lda,
302 $ taup( i ), a( i+1, i ), lda, work )
303 CALL
clacgv( n-i+1, a( i, i ), lda )
312 CALL
clarfg( m-i, alpha, a( min( i+2, m ), i ), 1,
319 CALL
clarf(
'Left', m-i, n-i, a( i+1, i ), 1,
320 $ conjg( tauq( i ) ), a( i+1, i+1 ), lda,
subroutine cgebd2(M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO)
CGEBD2 reduces a general matrix to bidiagonal form using an unblocked algorithm.
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.
subroutine clarfg(N, ALPHA, X, INCX, TAU)
CLARFG generates an elementary reflector (Householder matrix).
subroutine clarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
CLARF applies an elementary reflector to a general rectangular matrix.