206 SUBROUTINE dlabrd( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX,
215 INTEGER LDA, LDX, LDY, M, N, NB
218 DOUBLE PRECISION A( LDA, * ), D( * ), E( * ), TAUP( * ),
219 $ TAUQ( * ), X( LDX, * ), Y( LDY, * )
225 DOUBLE PRECISION ZERO, ONE
226 PARAMETER ( ZERO = 0.0d0, one = 1.0d0 )
241 IF( m.LE.0 .OR. n.LE.0 )
252 CALL dgemv(
'No transpose', m-i+1, i-1, -one, a( i, 1 ),
253 $ lda, y( i, 1 ), ldy, one, a( i, i ), 1 )
254 CALL dgemv(
'No transpose', m-i+1, i-1, -one, x( i, 1 ),
255 $ ldx, a( 1, i ), 1, one, a( i, i ), 1 )
259 CALL dlarfg( m-i+1, a( i, i ), a( min( i+1, m ), i ), 1,
267 CALL dgemv(
'Transpose', m-i+1, n-i, one, a( i, i+1 ),
268 $ lda, a( i, i ), 1, zero, y( i+1, i ), 1 )
269 CALL dgemv(
'Transpose', m-i+1, i-1, one, a( i, 1 ),
271 $ a( i, i ), 1, zero, y( 1, i ), 1 )
272 CALL dgemv(
'No transpose', n-i, i-1, -one, y( i+1,
274 $ ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
275 CALL dgemv(
'Transpose', m-i+1, i-1, one, x( i, 1 ),
277 $ a( i, i ), 1, zero, y( 1, i ), 1 )
278 CALL dgemv(
'Transpose', i-1, n-i, -one, a( 1, i+1 ),
279 $ lda, y( 1, i ), 1, one, y( i+1, i ), 1 )
280 CALL dscal( n-i, tauq( i ), y( i+1, i ), 1 )
284 CALL dgemv(
'No transpose', n-i, i, -one, y( i+1, 1 ),
285 $ ldy, a( i, 1 ), lda, one, a( i, i+1 ), lda )
286 CALL dgemv(
'Transpose', i-1, n-i, -one, a( 1, i+1 ),
287 $ lda, x( i, 1 ), ldx, one, a( i, i+1 ), lda )
291 CALL dlarfg( n-i, a( i, i+1 ), a( i, min( i+2, n ) ),
298 CALL dgemv(
'No transpose', m-i, n-i, one, a( i+1,
300 $ lda, a( i, i+1 ), lda, zero, x( i+1, i ), 1 )
301 CALL dgemv(
'Transpose', n-i, i, one, y( i+1, 1 ),
303 $ a( i, i+1 ), lda, zero, x( 1, i ), 1 )
304 CALL dgemv(
'No transpose', m-i, i, -one, a( i+1, 1 ),
305 $ lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
306 CALL dgemv(
'No transpose', i-1, n-i, one, a( 1,
308 $ lda, a( i, i+1 ), lda, zero, x( 1, i ), 1 )
309 CALL dgemv(
'No transpose', m-i, i-1, -one, x( i+1,
311 $ ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
312 CALL dscal( m-i, taup( i ), x( i+1, i ), 1 )
323 CALL dgemv(
'No transpose', n-i+1, i-1, -one, y( i, 1 ),
324 $ ldy, a( i, 1 ), lda, one, a( i, i ), lda )
325 CALL dgemv(
'Transpose', i-1, n-i+1, -one, a( 1, i ),
327 $ x( i, 1 ), ldx, one, a( i, i ), lda )
331 CALL dlarfg( n-i+1, a( i, i ), a( i, min( i+1, n ) ),
340 CALL dgemv(
'No transpose', m-i, n-i+1, one, a( i+1,
342 $ lda, a( i, i ), lda, zero, x( i+1, i ), 1 )
343 CALL dgemv(
'Transpose', n-i+1, i-1, one, y( i, 1 ),
345 $ a( i, i ), lda, zero, x( 1, i ), 1 )
346 CALL dgemv(
'No transpose', m-i, i-1, -one, a( i+1,
348 $ lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
349 CALL dgemv(
'No transpose', i-1, n-i+1, one, a( 1,
351 $ lda, a( i, i ), lda, zero, x( 1, i ), 1 )
352 CALL dgemv(
'No transpose', m-i, i-1, -one, x( i+1,
354 $ ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
355 CALL dscal( m-i, taup( i ), x( i+1, i ), 1 )
359 CALL dgemv(
'No transpose', m-i, i-1, -one, a( i+1,
361 $ lda, y( i, 1 ), ldy, one, a( i+1, i ), 1 )
362 CALL dgemv(
'No transpose', m-i, i, -one, x( i+1, 1 ),
363 $ ldx, a( 1, i ), 1, one, a( i+1, i ), 1 )
367 CALL dlarfg( m-i, a( i+1, i ), a( min( i+2, m ), i ),
375 CALL dgemv(
'Transpose', m-i, n-i, one, a( i+1, i+1 ),
376 $ lda, a( i+1, i ), 1, zero, y( i+1, i ), 1 )
377 CALL dgemv(
'Transpose', m-i, i-1, one, a( i+1, 1 ),
379 $ a( i+1, i ), 1, zero, y( 1, i ), 1 )
380 CALL dgemv(
'No transpose', n-i, i-1, -one, y( i+1,
382 $ ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
383 CALL dgemv(
'Transpose', m-i, i, one, x( i+1, 1 ),
385 $ a( i+1, i ), 1, zero, y( 1, i ), 1 )
386 CALL dgemv(
'Transpose', i, n-i, -one, a( 1, i+1 ),
388 $ y( 1, i ), 1, one, y( i+1, i ), 1 )
389 CALL dscal( n-i, tauq( i ), y( i+1, i ), 1 )