208 SUBROUTINE dlabrd( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y,
216 INTEGER LDA, LDX, LDY, M, N, NB
219 DOUBLE PRECISION A( LDA, * ), ( * ), E( * ), TAUP( * ),
220 $ tauq( * ), x( ldx, * ), y( ldy, * )
226 DOUBLE PRECISION ZERO, ONE
227 parameter( zero = 0.0d0, one = 1.0d0 )
242 IF( m.LE.0 .OR. n.LE.0 )
253 CALL dgemv(
'No transpose', m-i+1, i-1, -one, a( i, 1 ),
254 $ lda, y( i, 1 ), ldy, one, a( i, i ), 1 )
255 CALL dgemv(
'No transpose', m-i+1, i-1, -one, x( i, 1 ),
256 $ ldx, a( 1, i ), 1, one, a( i, i ), 1 )
260 CALL dlarfg( m-i+1, a( i, i ), a(
min( i+1, m ), i ), 1,
268 CALL dgemv(
'Transpose', m-i+1, n-i, one, a( i, i+1 ),
269 $ lda, a( i, i ), 1, zero, y( i+1, i ), 1 )
270 CALL dgemv(
'Transpose', m-i+1, i-1, one, a( i, 1 ), lda,
271 $ a( i, i ), 1, zero, y( 1, i ), 1 )
272 CALL dgemv( 'no transpose
', N-I, I-1, -ONE, Y( I+1, 1 ),
273 $ LDY, Y( 1, I ), 1, ONE, Y( I+1, I ), 1 )
274 CALL DGEMV( 'transpose
', M-I+1, I-1, ONE, X( I, 1 ), LDX,
275 $ A( I, I ), 1, ZERO, Y( 1, I ), 1 )
276 CALL DGEMV( 'transpose
', I-1, N-I, -ONE, A( 1, I+1 ),
277 $ LDA, Y( 1, I ), 1, ONE, Y( I+1, I ), 1 )
278 CALL DSCAL( N-I, TAUQ( I ), Y( I+1, I ), 1 )
282 CALL DGEMV( 'no transpose
', N-I, I, -ONE, Y( I+1, 1 ),
283 $ LDY, A( I, 1 ), LDA, ONE, A( I, I+1 ), LDA )
284 CALL DGEMV( 'transpose
', I-1, N-I, -ONE, A( 1, I+1 ),
285 $ LDA, X( I, 1 ), LDX, ONE, A( I, I+1 ), LDA )
289 CALL DLARFG( N-I, A( I, I+1 ), A( I, MIN( I+2, N ) ),
296 CALL DGEMV( 'no transpose', m-i, n-i, one, a( i+1, i+1 ),
297 $ lda, a( i, i+1 ), lda, zero, x( i+1, i ), 1 )
298 CALL dgemv(
'Transpose', n-i, i, one, y( i+1, 1 ), ldy,
299 $ a( i, i+1 ), lda, zero, x( 1, i ), 1 )
300 CALL dgemv(
'No transpose', m-i, i, -one, a( i+1, 1 ),
301 $ lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
302 CALL dgemv(
'No transpose', i-1, n-i, one, a( 1, i+1 ),
303 $ lda, a( i, i+1 ), lda, zero, x( 1, i ), 1 )
304 CALL dgemv(
'No transpose', m-i, i-1, -one, x( i+1, 1 ),
305 $ ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
306 CALL dscal( m-i, taup( i ), x( i+1, i ), 1 )
317 CALL dgemv(
'No transpose', n-i+1, i-1, -one, y( i, 1 ),
318 $ ldy, a( i, 1 ), lda, one, a( i, i ), lda )
319 CALL dgemv(
'Transpose', i-1, n-i+1, -one, a( 1, i ), lda,
320 $ x( i, 1 ), ldx, one, a( i, i ), lda )
324 CALL dlarfg( n-i+1, a( i, i ), a( i,
min( i+1, n ) ), lda,
332 CALL dgemv(
'No transpose', m-i, n-i+1, one, a( i+1, i ),
333 $ lda, a( i, i ), lda, zero, x( i+1, i ), 1 )
334 CALL dgemv(
'Transpose', n-i+1, i-1, one, y( i, 1 ), ldy,
335 $ a( i, i ), lda, zero, x( 1, i ), 1 )
336 CALL dgemv(
'No transpose', m-i, i-1, -one, a( i+1, 1 ),
337 $ lda, x( 1, i ), 1, one, x( i+1, i ), 1 )
338 CALL dgemv(
'No transpose', i-1, n-i+1, one, a( 1, i ),
339 $ lda, a( i, i ), lda, zero, x( 1, i ), 1 )
340 CALL dgemv(
'No transpose', m-i, i-1, -one, x( i+1, 1 ),
341 $ ldx, x( 1, i ), 1, one, x( i+1, i ), 1 )
342 CALL dscal( m-i, taup( i ), x( i+1, i ), 1 )
346 CALL dgemv(
'No transpose', m-i, i-1, -one, a( i+1, 1 ),
347 $ lda, y( i, 1 ), ldy, one, a( i+1, i ), 1 )
348 CALL dgemv(
'No transpose', m-i, i, -one, x( i+1, 1 ),
349 $ ldx, a( 1, i ), 1, one, a( i+1, i ), 1 )
353 CALL dlarfg( m-i, a( i+1, i ), a(
min( i+2, m ), i ), 1,
360 CALL dgemv(
'Transpose', m-i, n-i, one, a( i+1, i+1 ),
361 $ lda, a( i+1, i ), 1, zero, y( i+1, i ), 1 )
362 CALL dgemv(
'Transpose', m-i, i-1, one, a( i+1, 1 ), lda,
363 $ a( i+1, i ), 1, zero, y( 1, i ), 1 )
364 CALL dgemv(
'No transpose', n-i, i-1, -one, y( i+1, 1 ),
365 $ ldy, y( 1, i ), 1, one, y( i+1, i ), 1 )
366 CALL dgemv( 'transpose
', M-I, I, ONE, X( I+1, 1 ), LDX,
367 $ A( I+1, I ), 1, ZERO, Y( 1, I ), 1 )
368 CALL DGEMV( 'transpose
', I, N-I, -ONE, A( 1, I+1 ), LDA,
369 $ Y( 1, I ), 1, ONE, Y( I+1, I ), 1 )
370 CALL DSCAL( N-I, TAUQ( I ), Y( I+1, I ), 1 )