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 slarfg(N, ALPHA, X, INCX, TAU)
SLARFG generates an elementary reflector (Householder matrix).
subroutine sgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SGEMM
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...
subroutine sgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
SGEMV
subroutine slacpy(UPLO, M, N, A, LDA, B, LDB)
SLACPY copies all or part of one two-dimensional array to another.
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 sscal(N, SA, SX, INCX)
SSCAL
subroutine scopy(N, SX, INCX, SY, INCY)
SCOPY