210 SUBROUTINE clabrd( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y,
218 INTEGER LDA, LDX, LDY, , N, NB
222 COMPLEX A( LDA, * ), TAUP( * ), TAUQ( * ), X( , * ),
230 parameter( zero = ( 0.0e+0, 0.0e+0 ),
231 $ one = ( 1.0e+0, 0.0e+0 ) )
247 IF( m.LE.0 .OR. n.LE.0 )
258 CALL clacgv( i-1, y( i, 1 ), ldy )
259 CALL cgemv(
'No transpose', m-i+1, i-1, -one, a( i, 1 ),
260 $ lda, y( i, 1 ), ldy, one, a( i, i ), 1 )
261 CALL clacgv( i-1, y( i, 1 ), ldy )
262 CALL cgemv(
'No transpose', m-i+1, i-1, -one, x( i, 1 ),
263 $ ldx, a( 1, i ), 1, one, a( i, i ), 1 )
268 CALL clarfg( m-i+1, alpha, a(
min( i+1, m ), i ), 1,
270 d( i ) = real( alpha )
276 CALL cgemv(
'Conjugate transpose', m-i+1, n-i, one,
277 $ a( i, i+1 ), lda, a( i, i ), 1, zero,
279 CALL cgemv( 'conjugate transpose
', M-I+1, I-1, ONE,
280 $ A( I, 1 ), LDA, A( I, I ), 1, ZERO,
282 CALL CGEMV( '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 CGEMV( 'conjugate transpose
', M-I+1, I-1, ONE,
285 $ X( I, 1 ), LDX, A( I, I ), 1, ZERO,
287 CALL CGEMV( 'conjugate transpose
', I-1, N-I, -ONE,
288 $ A( 1, I+1 ), LDA, Y( 1, I ), 1, ONE,
290 CALL CSCAL( N-I, TAUQ( I ), Y( I+1, I ), 1 )
294 CALL CLACGV( N-I, A( I, I+1 ), LDA )
295 CALL CLACGV( I, A( I, 1 ), LDA )
296 CALL CGEMV( 'no transpose
', N-I, I, -ONE, Y( I+1, 1 ),
297 $ LDY, A( I, 1 ), LDA, ONE, A( I, I+1 ), LDA )
298 CALL CLACGV( I, A( I, 1 ), LDA )
299 CALL CLACGV( I-1, X( I, 1 ), LDX )
300 CALL CGEMV( 'conjugate transpose
', I-1, N-I, -ONE,
301 $ A( 1, I+1 ), LDA, X( I, 1 ), LDX, ONE,
303 CALL CLACGV( I-1, X( I, 1 ), LDX )
308 CALL CLARFG( N-I, ALPHA, A( I, MIN( I+2, N ) ),
310 E( I ) = REAL( ALPHA )
315 CALL CGEMV( '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 CGEMV( 'conjugate transpose
', N-I, I, ONE,
318 $ Y( I+1, 1 ), LDY, A( I, I+1 ), LDA, ZERO,
320 CALL CGEMV( 'no transpose
', M-I, I, -ONE, A( I+1, 1 ),
321 $ LDA, X( 1, I ), 1, ONE, X( I+1, I ), 1 )
322 CALL CGEMV( '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 CGEMV( '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 cscal( m-i, taup( i ), x( i+1, i ), 1 )
327 CALL clacgv( n-i, a( i, i+1 ), lda )
338 CALL clacgv( n-i+1, a( i, i ), lda )
339 CALL clacgv( i-1, a( i, 1 ), lda )
340 CALL cgemv(
'No transpose', n-i+1, i-1, -one, y( i, 1 ),
341 $ ldy, a( i, 1 ), lda, one, a( i, i ), lda )
342 CALL clacgv( i-1, a( i, 1 ), lda )
343 CALL clacgv( i-1, x( i, 1 ), ldx )
344 CALL cgemv(
'Conjugate transpose', i-1, n-i+1, -one,
345 $ a( 1, i ), lda, x( i, 1 ), ldx, one, a( i, i ),
347 CALL clacgv( i-1, x( i, 1 ), ldx )
352 CALL clarfg( n-i+1, alpha, a( i,
min( i+1, n ) ), lda,
354 d( i ) = real( alpha )
360 CALL cgemv(
'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 cgemv(
'Conjugate transpose', n-i+1, i-1, one,
363 $ y( i, 1 ), ldy, a( i, i ), lda, zero,
365 CALL cgemv(
'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 cgemv(
'No transpose', i-1, n-i+1, one, a( 1, i ),
368 $ lda, a( i, i ), lda, zero, x( 1, i ), 1 )
369 CALL cgemv( '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 CSCAL( M-I, TAUP( I ), X( I+1, I ), 1 )
372 CALL CLACGV( N-I+1, A( I, I ), LDA )
376 CALL CLACGV( I-1, Y( I, 1 ), LDY )
377 CALL CGEMV( '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 CLACGV( I-1, Y( I, 1 ), LDY )
380 CALL CGEMV( 'no transpose
', M-I, I, -ONE, X( I+1, 1 ),
381 $ LDX, A( 1, I ), 1, ONE, A( I+1, I ), 1 )
386 CALL CLARFG( M-I, ALPHA, A( MIN( I+2, M ), I ), 1,
388 E( I ) = REAL( ALPHA )
393 CALL CGEMV( 'conjugate transpose
', M-I, N-I, ONE,
394 $ A( I+1, I+1 ), LDA, A( I+1, I ), 1, ZERO,
396 CALL CGEMV( 'conjugate transpose
', M-I, I-1, ONE,
397 $ A( I+1, 1 ), LDA, A( I+1, I ), 1, ZERO,
399 CALL CGEMV( '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 CGEMV( 'conjugate transpose
', M-I, I, ONE,
402 $ X( I+1, 1 ), LDX, A( I+1, I ), 1, ZERO,
404 CALL CGEMV( 'conjugate transpose
', I, N-I, -ONE,
405 $ A( 1, I+1 ), LDA, Y( 1, I ), 1, ONE,
407 CALL CSCAL( N-I, TAUQ( I ), Y( I+1, I ), 1 )
409 CALL CLACGV( N-I+1, A( I, I ), LDA )