180 SUBROUTINE dlahr2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )
187 INTEGER K, LDA, LDT, LDY, N, NB
190 DOUBLE PRECISION A( LDA, * ), T( LDT, NB ), TAU( NB ),
197 DOUBLE PRECISION ZERO, ONE
198 parameter( zero = 0.0d+0,
226 CALL dgemv(
'NO TRANSPOSE', n-k, i-1, -one, y(k+1,1), ldy,
227 $ a( k+i-1, 1 ), lda, one, a( k+1, i ), 1 )
239 CALL dcopy( i-1, a( k+1, i ), 1, t( 1, nb ), 1 )
240 CALL dtrmv(
'Lower',
'Transpose',
'UNIT',
242 $ lda, t( 1, nb ), 1 )
246 CALL dgemv(
'Transpose', n-k-i+1, i-1,
248 $ lda, a( k+i, i ), 1, one, t( 1, nb ), 1 )
252 CALL dtrmv(
'Upper',
'Transpose',
'NON-UNIT',
258 CALL dgemv(
'NO TRANSPOSE', n-k-i+1, i-1, -one,
260 $ lda, t( 1, nb ), 1, one, a( k+i, i ), 1 )
264 CALL dtrmv(
'Lower',
'NO TRANSPOSE',
266 $ a( k+1, 1 ), lda, t( 1, nb ), 1 )
267 CALL daxpy( i-1, -one, t( 1, nb ), 1, a( k+1, i ), 1 )
275 CALL dlarfg( n-k-i+1, a( k+i, i ), a( min( k+i+1, n ), i ), 1,
282 CALL dgemv(
'NO TRANSPOSE', n-k, n-k-i+1,
283 $ one, a( k+1, i+1 ),
284 $ lda, a( k+i, i ), 1, zero, y( k+1, i ), 1 )
285 CALL dgemv(
'Transpose', n-k-i+1, i-1,
286 $ one, a( k+i, 1 ), lda,
287 $ a( k+i, i ), 1, zero, t( 1, i ), 1 )
288 CALL dgemv(
'NO TRANSPOSE', n-k, i-1, -one,
290 $ t( 1, i ), 1, one, y( k+1, i ), 1 )
291 CALL dscal( n-k, tau( i ), y( k+1, i ), 1 )
295 CALL dscal( i-1, -tau( i ), t( 1, i ), 1 )
296 CALL dtrmv(
'Upper',
'No Transpose',
'NON-UNIT',
306 CALL dlacpy(
'ALL', k, nb, a( 1, 2 ), lda, y, ldy )
307 CALL dtrmm(
'RIGHT',
'Lower',
'NO TRANSPOSE',
309 $ one, a( k+1, 1 ), lda, y, ldy )
311 $
CALL dgemm(
'NO TRANSPOSE',
'NO TRANSPOSE', k,
313 $ a( 1, 2+nb ), lda, a( k+1+nb, 1 ), lda, one, y,
315 CALL dtrmm(
'RIGHT',
'Upper',
'NO TRANSPOSE',
317 $ one, t, ldt, y, ldy )
subroutine daxpy(n, da, dx, incx, dy, incy)
DAXPY
subroutine dcopy(n, dx, incx, dy, incy)
DCOPY
subroutine dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
DGEMM
subroutine dgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
DGEMV
subroutine dlacpy(uplo, m, n, a, lda, b, ldb)
DLACPY copies all or part of one two-dimensional array to another.
subroutine dlahr2(n, k, nb, a, lda, tau, t, ldt, y, ldy)
DLAHR2 reduces the specified number of first columns of a general rectangular matrix A so that elemen...
subroutine dlarfg(n, alpha, x, incx, tau)
DLARFG generates an elementary reflector (Householder matrix).
subroutine dscal(n, da, dx, incx)
DSCAL
subroutine dtrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
DTRMM
subroutine dtrmv(uplo, trans, diag, n, a, lda, x, incx)
DTRMV