182 SUBROUTINE dlahr2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )
190 INTEGER K, LDA, LDT, LDY, N, NB
193 DOUBLE PRECISION A( lda, * ), T( ldt, nb ), TAU( nb ),
200 DOUBLE PRECISION ZERO, ONE
201 parameter ( zero = 0.0d+0,
229 CALL dgemv(
'NO TRANSPOSE', n-k, i-1, -one, y(k+1,1), ldy,
230 $ a( k+i-1, 1 ), lda, one, a( k+1, i ), 1 )
242 CALL dcopy( i-1, a( k+1, i ), 1, t( 1, nb ), 1 )
243 CALL dtrmv(
'Lower',
'Transpose',
'UNIT',
245 $ lda, t( 1, nb ), 1 )
249 CALL dgemv(
'Transpose', n-k-i+1, i-1,
251 $ lda, a( k+i, i ), 1, one, t( 1, nb ), 1 )
255 CALL dtrmv(
'Upper',
'Transpose',
'NON-UNIT',
261 CALL dgemv(
'NO TRANSPOSE', n-k-i+1, i-1, -one,
263 $ lda, t( 1, nb ), 1, one, a( k+i, i ), 1 )
267 CALL dtrmv(
'Lower',
'NO TRANSPOSE',
269 $ a( k+1, 1 ), lda, t( 1, nb ), 1 )
270 CALL daxpy( i-1, -one, t( 1, nb ), 1, a( k+1, i ), 1 )
278 CALL dlarfg( n-k-i+1, a( k+i, i ), a( min( k+i+1, n ), i ), 1,
285 CALL dgemv(
'NO TRANSPOSE', n-k, n-k-i+1,
286 $ one, a( k+1, i+1 ),
287 $ lda, a( k+i, i ), 1, zero, y( k+1, i ), 1 )
288 CALL dgemv(
'Transpose', n-k-i+1, i-1,
289 $ one, a( k+i, 1 ), lda,
290 $ a( k+i, i ), 1, zero, t( 1, i ), 1 )
291 CALL dgemv(
'NO TRANSPOSE', n-k, i-1, -one,
293 $ t( 1, i ), 1, one, y( k+1, i ), 1 )
294 CALL dscal( n-k, tau( i ), y( k+1, i ), 1 )
298 CALL dscal( i-1, -tau( i ), t( 1, i ), 1 )
299 CALL dtrmv(
'Upper',
'No Transpose',
'NON-UNIT',
309 CALL dlacpy(
'ALL', k, nb, a( 1, 2 ), lda, y, ldy )
310 CALL dtrmm(
'RIGHT',
'Lower',
'NO TRANSPOSE',
312 $ one, a( k+1, 1 ), lda, y, ldy )
314 $
CALL dgemm(
'NO TRANSPOSE',
'NO TRANSPOSE', k,
316 $ a( 1, 2+nb ), lda, a( k+1+nb, 1 ), lda, one, y,
318 CALL dtrmm(
'RIGHT',
'Upper',
'NO TRANSPOSE',
320 $ one, t, ldt, y, ldy )
subroutine dlacpy(UPLO, M, N, A, LDA, B, LDB)
DLACPY copies all or part of one two-dimensional array to another.
subroutine dcopy(N, DX, INCX, DY, INCY)
DCOPY
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine dtrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRMM
subroutine daxpy(N, DA, DX, INCX, DY, INCY)
DAXPY
subroutine dgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
DGEMM
subroutine dscal(N, DA, DX, INCX)
DSCAL
subroutine dlarfg(N, ALPHA, X, INCX, TAU)
DLARFG generates an elementary reflector (Householder matrix).
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 dtrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
DTRMV