212 SUBROUTINE zlabrd( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y,
221 INTEGER lda, ldx, ldy, m, n, nb
224 DOUBLE PRECISION d( * ), e( * )
225 COMPLEX*16 a( lda, * ), taup( * ), tauq( * ), x( ldx, * ),
233 parameter( zero = ( 0.0d+0, 0.0d+0 ),
234 $ one = ( 1.0d+0, 0.0d+0 ) )
250 IF( m.LE.0 .OR. n.LE.0 )
261 CALL
zlacgv( i-1, y( i, 1 ), ldy )
262 CALL
zgemv(
'No transpose', m-i+1, i-1, -one, a( i, 1 ),
263 $ lda, y( i, 1 ), ldy, one, a( i, i ), 1 )
264 CALL
zlacgv( i-1, y( i, 1 ), ldy )
265 CALL
zgemv(
'No transpose', m-i+1, i-1, -one, x( i, 1 ),
266 $ ldx, a( 1, i ), 1, one, a( i, i ), 1 )
271 CALL
zlarfg( m-i+1, alpha, a( min( i+1, m ), i ), 1,
279 CALL
zgemv(
'Conjugate transpose', m-i+1, n-i, one,
280 $ a( i, i+1 ), lda, a( i, i ), 1, zero,
282 CALL
zgemv(
'Conjugate transpose', m-i+1, i-1, one,
283 $ a( i, 1 ), lda, a( i, i ), 1, zero,
285 CALL
zgemv(
'No transpose', n-i, i-1, -one, y( i+1, 1 ),
286 $ ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
287 CALL
zgemv(
'Conjugate transpose', m-i+1, i-1, one,
288 $ x( i, 1 ), ldx, a( i, i ), 1, zero,
290 CALL
zgemv(
'Conjugate transpose', i-1, n-i, -one,
291 $ a( 1, i+1 ), lda, y( 1, i ), 1, one,
293 CALL
zscal( n-i, tauq( i ), y( i+1, i ), 1 )
297 CALL
zlacgv( n-i, a( i, i+1 ), lda )
298 CALL
zlacgv( i, a( i, 1 ), lda )
299 CALL
zgemv(
'No transpose', n-i, i, -one, y( i+1, 1 ),
300 $ ldy, a( i, 1 ), lda, one, a( i, i+1 ), lda )
301 CALL
zlacgv( i, a( i, 1 ), lda )
302 CALL
zlacgv( i-1, x( i, 1 ), ldx )
303 CALL
zgemv(
'Conjugate transpose', i-1, n-i, -one,
304 $ a( 1, i+1 ), lda, x( i, 1 ), ldx, one,
306 CALL
zlacgv( i-1, x( i, 1 ), ldx )
311 CALL
zlarfg( n-i, alpha, a( i, min( i+2, n ) ), lda,
318 CALL
zgemv(
'No transpose', m-i, n-i, one, a( i+1, i+1 ),
319 $ lda, a( i, i+1 ), lda, zero, x( i+1, i ), 1 )
320 CALL
zgemv(
'Conjugate transpose', n-i, i, one,
321 $ y( i+1, 1 ), ldy, a( i, i+1 ), lda, zero,
323 CALL
zgemv(
'No transpose', m-i, i, -one, a( i+1, 1 ),
324 $ lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
325 CALL
zgemv(
'No transpose', i-1, n-i, one, a( 1, i+1 ),
326 $ lda, a( i, i+1 ), lda, zero, x( 1, i ), 1 )
327 CALL
zgemv(
'No transpose', m-i, i-1, -one, x( i+1, 1 ),
328 $ ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
329 CALL
zscal( m-i, taup( i ), x( i+1, i ), 1 )
330 CALL
zlacgv( n-i, a( i, i+1 ), lda )
341 CALL
zlacgv( n-i+1, a( i, i ), lda )
342 CALL
zlacgv( i-1, a( i, 1 ), lda )
343 CALL
zgemv(
'No transpose', n-i+1, i-1, -one, y( i, 1 ),
344 $ ldy, a( i, 1 ), lda, one, a( i, i ), lda )
345 CALL
zlacgv( i-1, a( i, 1 ), lda )
346 CALL
zlacgv( i-1, x( i, 1 ), ldx )
347 CALL
zgemv(
'Conjugate transpose', i-1, n-i+1, -one,
348 $ a( 1, i ), lda, x( i, 1 ), ldx, one, a( i, i ),
350 CALL
zlacgv( i-1, x( i, 1 ), ldx )
355 CALL
zlarfg( n-i+1, alpha, a( i, min( i+1, n ) ), lda,
363 CALL
zgemv(
'No transpose', m-i, n-i+1, one, a( i+1, i ),
364 $ lda, a( i, i ), lda, zero, x( i+1, i ), 1 )
365 CALL
zgemv(
'Conjugate transpose', n-i+1, i-1, one,
366 $ y( i, 1 ), ldy, a( i, i ), lda, zero,
368 CALL
zgemv(
'No transpose', m-i, i-1, -one, a( i+1, 1 ),
369 $ lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
370 CALL
zgemv(
'No transpose', i-1, n-i+1, one, a( 1, i ),
371 $ lda, a( i, i ), lda, zero, x( 1, i ), 1 )
372 CALL
zgemv(
'No transpose', m-i, i-1, -one, x( i+1, 1 ),
373 $ ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
374 CALL
zscal( m-i, taup( i ), x( i+1, i ), 1 )
375 CALL
zlacgv( n-i+1, a( i, i ), lda )
379 CALL
zlacgv( i-1, y( i, 1 ), ldy )
380 CALL
zgemv(
'No transpose', m-i, i-1, -one, a( i+1, 1 ),
381 $ lda, y( i, 1 ), ldy, one, a( i+1, i ), 1 )
382 CALL
zlacgv( i-1, y( i, 1 ), ldy )
383 CALL
zgemv(
'No transpose', m-i, i, -one, x( i+1, 1 ),
384 $ ldx, a( 1, i ), 1, one, a( i+1, i ), 1 )
389 CALL
zlarfg( m-i, alpha, a( min( i+2, m ), i ), 1,
396 CALL
zgemv(
'Conjugate transpose', m-i, n-i, one,
397 $ a( i+1, i+1 ), lda, a( i+1, i ), 1, zero,
399 CALL
zgemv(
'Conjugate transpose', m-i, i-1, one,
400 $ a( i+1, 1 ), lda, a( i+1, i ), 1, zero,
402 CALL
zgemv(
'No transpose', n-i, i-1, -one, y( i+1, 1 ),
403 $ ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
404 CALL
zgemv(
'Conjugate transpose', m-i, i, one,
405 $ x( i+1, 1 ), ldx, a( i+1, i ), 1, zero,
407 CALL
zgemv(
'Conjugate transpose', i, n-i, -one,
408 $ a( 1, i+1 ), lda, y( 1, i ), 1, one,
410 CALL
zscal( n-i, tauq( i ), y( i+1, i ), 1 )
412 CALL
zlacgv( n-i+1, a( i, i ), lda )
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV
subroutine zlabrd(M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y, LDY)
ZLABRD reduces the first nb rows and columns of a general matrix to a bidiagonal form.
subroutine zlacgv(N, X, INCX)
ZLACGV conjugates a complex vector.
subroutine zlarfg(N, ALPHA, X, INCX, TAU)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine zscal(N, ZA, ZX, INCX)
ZSCAL