182 SUBROUTINE zlahr2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )
190 INTEGER K, LDA, LDT, LDY, N, NB
193 COMPLEX*16 A( lda, * ), T( ldt, nb ), TAU( nb ),
201 parameter ( zero = ( 0.0d+0, 0.0d+0 ),
202 $ one = ( 1.0d+0, 0.0d+0 ) )
229 CALL zlacgv( i-1, a( k+i-1, 1 ), lda )
230 CALL zgemv(
'NO TRANSPOSE', n-k, i-1, -one, y(k+1,1), ldy,
231 $ a( k+i-1, 1 ), lda, one, a( k+1, i ), 1 )
232 CALL zlacgv( i-1, a( k+i-1, 1 ), lda )
244 CALL zcopy( i-1, a( k+1, i ), 1, t( 1, nb ), 1 )
245 CALL ztrmv(
'Lower',
'Conjugate transpose',
'UNIT',
247 $ lda, t( 1, nb ), 1 )
251 CALL zgemv(
'Conjugate transpose', n-k-i+1, i-1,
253 $ lda, a( k+i, i ), 1, one, t( 1, nb ), 1 )
257 CALL ztrmv(
'Upper',
'Conjugate transpose',
'NON-UNIT',
263 CALL zgemv(
'NO TRANSPOSE', n-k-i+1, i-1, -one,
265 $ lda, t( 1, nb ), 1, one, a( k+i, i ), 1 )
269 CALL ztrmv(
'Lower',
'NO TRANSPOSE',
271 $ a( k+1, 1 ), lda, t( 1, nb ), 1 )
272 CALL zaxpy( i-1, -one, t( 1, nb ), 1, a( k+1, i ), 1 )
280 CALL zlarfg( n-k-i+1, a( k+i, i ), a( min( k+i+1, n ), i ), 1,
287 CALL zgemv(
'NO TRANSPOSE', n-k, n-k-i+1,
288 $ one, a( k+1, i+1 ),
289 $ lda, a( k+i, i ), 1, zero, y( k+1, i ), 1 )
290 CALL zgemv(
'Conjugate transpose', n-k-i+1, i-1,
291 $ one, a( k+i, 1 ), lda,
292 $ a( k+i, i ), 1, zero, t( 1, i ), 1 )
293 CALL zgemv(
'NO TRANSPOSE', n-k, i-1, -one,
295 $ t( 1, i ), 1, one, y( k+1, i ), 1 )
296 CALL zscal( n-k, tau( i ), y( k+1, i ), 1 )
300 CALL zscal( i-1, -tau( i ), t( 1, i ), 1 )
301 CALL ztrmv(
'Upper',
'No Transpose',
'NON-UNIT',
311 CALL zlacpy(
'ALL', k, nb, a( 1, 2 ), lda, y, ldy )
312 CALL ztrmm(
'RIGHT',
'Lower',
'NO TRANSPOSE',
314 $ one, a( k+1, 1 ), lda, y, ldy )
316 $
CALL zgemm(
'NO TRANSPOSE',
'NO TRANSPOSE', k,
318 $ a( 1, 2+nb ), lda, a( k+1+nb, 1 ), lda, one, y,
320 CALL ztrmm(
'RIGHT',
'Upper',
'NO TRANSPOSE',
322 $ one, t, ldt, y, ldy )
subroutine zlacpy(UPLO, M, N, A, LDA, B, LDB)
ZLACPY copies all or part of one two-dimensional array to another.
subroutine zcopy(N, ZX, INCX, ZY, INCY)
ZCOPY
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV
subroutine zlarfg(N, ALPHA, X, INCX, TAU)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine zgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZGEMM
subroutine ztrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRMM
subroutine zlahr2(N, K, NB, A, LDA, TAU, T, LDT, Y, LDY)
ZLAHR2 reduces the specified number of first columns of a general rectangular matrix A so that elemen...
subroutine ztrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
ZTRMV
subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)
ZAXPY
subroutine zscal(N, ZA, ZX, INCX)
ZSCAL
subroutine zlacgv(N, X, INCX)
ZLACGV conjugates a complex vector.