182 SUBROUTINE slahr2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )
190 INTEGER K, LDA, LDT, LDY, N, NB
193 REAL A( lda, * ), T( ldt, nb ), TAU( nb ),
201 parameter ( zero = 0.0e+0,
229 CALL sgemv(
'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 scopy( i-1, a( k+1, i ), 1, t( 1, nb ), 1 )
243 CALL strmv(
'Lower',
'Transpose',
'UNIT',
245 $ lda, t( 1, nb ), 1 )
249 CALL sgemv(
'Transpose', n-k-i+1, i-1,
251 $ lda, a( k+i, i ), 1, one, t( 1, nb ), 1 )
255 CALL strmv(
'Upper',
'Transpose',
'NON-UNIT',
261 CALL sgemv(
'NO TRANSPOSE', n-k-i+1, i-1, -one,
263 $ lda, t( 1, nb ), 1, one, a( k+i, i ), 1 )
267 CALL strmv(
'Lower',
'NO TRANSPOSE',
269 $ a( k+1, 1 ), lda, t( 1, nb ), 1 )
270 CALL saxpy( i-1, -one, t( 1, nb ), 1, a( k+1, i ), 1 )
278 CALL slarfg( n-k-i+1, a( k+i, i ), a( min( k+i+1, n ), i ), 1,
285 CALL sgemv(
'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 sgemv(
'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 sgemv(
'NO TRANSPOSE', n-k, i-1, -one,
293 $ t( 1, i ), 1, one, y( k+1, i ), 1 )
294 CALL sscal( n-k, tau( i ), y( k+1, i ), 1 )
298 CALL sscal( i-1, -tau( i ), t( 1, i ), 1 )
299 CALL strmv(
'Upper',
'No Transpose',
'NON-UNIT',
309 CALL slacpy(
'ALL', k, nb, a( 1, 2 ), lda, y, ldy )
310 CALL strmm(
'RIGHT',
'Lower',
'NO TRANSPOSE',
312 $ one, a( k+1, 1 ), lda, y, ldy )
314 $
CALL sgemm(
'NO TRANSPOSE',
'NO TRANSPOSE', k,
316 $ a( 1, 2+nb ), lda, a( k+1+nb, 1 ), lda, one, y,
318 CALL strmm(
'RIGHT',
'Upper',
'NO TRANSPOSE',
320 $ one, t, ldt, y, ldy )
subroutine sgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SGEMM
subroutine sgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
SGEMV
subroutine strmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
STRMM
subroutine strmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
STRMV
subroutine saxpy(N, SA, SX, INCX, SY, INCY)
SAXPY
subroutine slarfg(N, ALPHA, X, INCX, TAU)
SLARFG generates an elementary reflector (Householder matrix).
subroutine sscal(N, SA, SX, INCX)
SSCAL
subroutine slacpy(UPLO, M, N, A, LDA, B, LDB)
SLACPY copies all or part of one two-dimensional array to another.
subroutine scopy(N, SX, INCX, SY, INCY)
SCOPY
subroutine slahr2(N, K, NB, A, LDA, TAU, T, LDT, Y, LDY)
SLAHR2 reduces the specified number of first columns of a general rectangular matrix A so that elemen...