210 SUBROUTINE zlabrd( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y,
218 INTEGER LDA, LDX, LDY, M, N, NB
222COMPLEX*16 A( LDA, * ), TAUP( * ), TAUQ( * ), X( LDX, * ),
230 parameter( zero = ( 0.0d+0, 0.0d+0 ),
231 $ one = ( 1.0d+0, 0.0d+0 ) )
247 IF( m.LE.0 .OR. n.LE.0 )
258 CALL zlacgv( i-1, y( i, 1 ), ldy )
259 CALL zgemv(
'No transpose', m-i+1, i-1, -one, a( i, 1 ),
260 $ lda, y( i, 1 ), ldy, one, a( i, i ), 1 )
261 CALL zlacgv( i-1, y( i, 1 ), ldy )
262 CALL zgemv(
'No transpose', m-i+1, i-1, -one, x( i, 1 ),
263 $ ldx, a( 1, i ), 1, one, a( i, i ), 1 )
268 CALL zlarfg( m-i+1, alpha, a(
min( i+1, m ), i ), 1,
270 d( i ) = dble( alpha )
276 CALL zgemv(
'Conjugate transpose', m-i+1, n-i, one,
277 $ a( i, i+1 ), lda, a( i, i ), 1, zero,
279 CALL zgemv(
'Conjugate transpose', m-i+1, i-1, one,
280 $ a( i, 1 ), lda, a( i, i ), 1, zero,
282 CALL zgemv(
'No transpose', n-i, i-1, -one, y( i+1, 1 ),
283 $ ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
284 CALL zgemv(
'Conjugate transpose', m-i+1, i-1, one,
285 $ x( i, 1 ), ldx, a( i, i ), 1, zero,
287 CALL zgemv(
'Conjugate transpose', i-1, n-i, -one,
288 $ a( 1, i+1 ), lda, y( 1, i ), 1, one,
290 CALL zscal( n-i, tauq( i ), y( i+1, i ), 1 )
294 CALL zlacgv( n-i, a( i, i+1 ), lda )
295 CALL zlacgv( i, a( i, 1 ), lda )
296 CALL zgemv(
'No transpose', n-i, i, -one, y( i+1, 1 ),
297 $ ldy, a( i, 1 ), lda, one, a( i, i+1 ), lda )
298 CALL zlacgv( i, a( i, 1 ), lda )
299 CALL zlacgv( i-1, x( i, 1 ), ldx )
300 CALL zgemv(
'Conjugate transpose', i-1, n-i, -one,
301 $ a( 1, i+1 ), lda, x( i, 1 ), ldx, one,
303 CALL zlacgv( i-1, x( i, 1 ), ldx )
308 CALL zlarfg( n-i, alpha, a( i,
min( i+2, n ) ), lda,
310 e( i ) = dble( alpha )
315 CALL zgemv(
'No transpose', m-i, n-i, one, a( i+1, i+1 ),
316 $ lda, a( i, i+1 ), lda, zero, x( i+1, i ), 1 )
317 CALL zgemv(
'Conjugate transpose', n-i, i, one,
318 $ y( i+1, 1 ), ldy, a( i, i+1 ), lda, zero,
320 CALL zgemv(
'No transpose', m-i, i, -one, a( i+1, 1 ),
321 $ lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
322 CALL zgemv(
'No transpose', i-1, n-i, one, a( 1, i+1 ),
323 $ lda, a( i, i+1 ), lda, zero, x( 1, i ), 1 )
324 CALL zgemv(
'No transpose', m-i, i-1, -one, x( i+1, 1 ),
325 $ ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
326 CALL zscal( m-i, taup( i ), x( i+1, i ), 1 )
327 CALL zlacgv( n-i, a( i, i+1 ), lda )
338 CALL zlacgv( n-i+1, a( i, i ), lda )
339 CALL zlacgv( i-1, a( i, 1 ), lda )
340 CALL zgemv(
'No transpose', n-i+1, i-1, -one, y( i, 1 ),
341 $ ldy, a( i, 1 ), lda, one, a( i, i ), lda )
342 CALL zlacgv( i-1, a( i, 1 ), lda )
343 CALL zlacgv( i-1, x( i, 1 ), ldx )
344 CALL zgemv(
'Conjugate transpose', i-1, n-i+1, -one,
345 $ a( 1, i ), lda, x( i, 1 ), ldx, one, a( i, i ),
347 CALL zlacgv( i-1, x( i, 1 ), ldx )
352 CALL zlarfg( n-i+1, alpha, a( i,
min( i+1, n ) ), lda,
354 d( i ) = dble( alpha )
360 CALL zgemv(
'No transpose', m-i, n-i+1, one, a( i+1, i ),
361 $ lda, a( i, i ), lda, zero, x( i+1, i ), 1 )
362 CALL zgemv(
'Conjugate transpose', n-i+1, i-1, one,
363 $ y( i, 1 ), ldy, a( i, i ), lda, zero,
365 CALL zgemv(
'No transpose', m-i, i-1, -one, a( i+1, 1 ),
366 $ lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
367 CALL zgemv(
'No transpose', i-1, n-i+1, one, a( 1, i ),
368 $ lda, a( i, i ), lda, zero, x( 1, i ), 1 )
369 CALL zgemv(
'No transpose', m-i, i-1, -one, x( i+1, 1 ),
370 $ ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
371 CALL zscal( m-i, taup( i ), x( i+1, i ), 1 )
372 CALL zlacgv( n-i+1, a( i, i ), lda )
376 CALL zlacgv( i-1, y( i, 1 ), ldy )
377 CALL zgemv(
'No transpose', m-i, i-1, -one, a( i+1, 1 ),
378 $ lda, y( i, 1 ), ldy, one, a( i+1, i ), 1 )
379 CALL zlacgv( i-1, y( i, 1 ), ldy )
380 CALL zgemv(
'No transpose', m-i, i, -one, x( i+1, 1 ),
381 $ ldx, a( 1, i ), 1, one, a( i+1, i ), 1 )
386 CALL zlarfg( m-i, alpha, a(
min( i+2, m ), i ), 1,
388 e( i ) = dble( alpha )
393 CALL zgemv(
'Conjugate transpose', m-i, n-i, one,
394 $ a( i+1, i+1 ), lda, a( i+1, i ), 1, zero,
396 CALL zgemv(
'Conjugate transpose', m-i, i-1, one,
397 $ a( i+1, 1 ), lda, a( i+1, i ), 1, zero,
399 CALL zgemv(
'No transpose', n-i, i-1, -one, y( i+1, 1 ),
400 $ ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
401 CALL zgemv(
'Conjugate transpose', m-i, i, one,
402 $ x( i+1, 1 ), ldx, a( i+1, i ), 1, zero,
404 CALL zgemv(
'Conjugate transpose', i, n-i, -one,
405 $ a( 1, i+1 ), lda, y( 1, i ), 1, one,
407 CALL zscal( n-i, tauq( i ), y( i+1, i ), 1 )
409 CALL zlacgv( n-i+1, a( i, i ), lda )