180 SUBROUTINE zlahr2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )
187 INTEGER K, LDA, LDT, LDY, N, NB
190 COMPLEX*16 A( LDA, * ), T( LDT, NB ), TAU( NB ),
198 parameter( zero = ( 0.0d+0, 0.0d+0 ),
199 $ one = ( 1.0d+0, 0.0d+0 ) )
226 CALL zlacgv( i-1, a( k+i-1, 1 ), lda )
227 CALL zgemv(
'NO TRANSPOSE', n-k, i-1, -one, y(k+1,1), ldy,
228 $ a( k+i-1, 1 ), lda, one, a( k+1, i ), 1 )
229 CALL zlacgv( i-1, a( k+i-1, 1 ), lda )
241 CALL zcopy( i-1, a( k+1, i ), 1, t( 1, nb ), 1 )
242 CALL ztrmv(
'Lower',
'Conjugate transpose',
'UNIT',
244 $ lda, t( 1, nb ), 1 )
248 CALL zgemv(
'Conjugate transpose', n-k-i+1, i-1,
250 $ lda, a( k+i, i ), 1, one, t( 1, nb ), 1 )
254 CALL ztrmv(
'Upper',
'Conjugate transpose',
'NON-UNIT',
260 CALL zgemv(
'NO TRANSPOSE', n-k-i+1, i-1, -one,
262 $ lda, t( 1, nb ), 1, one, a( k+i, i ), 1 )
266 CALL ztrmv(
'Lower',
'NO TRANSPOSE',
268 $ a( k+1, 1 ), lda, t( 1, nb ), 1 )
269 CALL zaxpy( i-1, -one, t( 1, nb ), 1, a( k+1, i ), 1 )
277 CALL zlarfg( n-k-i+1, a( k+i, i ), a( min( k+i+1, n ), i ), 1,
284 CALL zgemv(
'NO TRANSPOSE', n-k, n-k-i+1,
285 $ one, a( k+1, i+1 ),
286 $ lda, a( k+i, i ), 1, zero, y( k+1, i ), 1 )
287 CALL zgemv(
'Conjugate transpose', n-k-i+1, i-1,
288 $ one, a( k+i, 1 ), lda,
289 $ a( k+i, i ), 1, zero, t( 1, i ), 1 )
290 CALL zgemv(
'NO TRANSPOSE', n-k, i-1, -one,
292 $ t( 1, i ), 1, one, y( k+1, i ), 1 )
293 CALL zscal( n-k, tau( i ), y( k+1, i ), 1 )
297 CALL zscal( i-1, -tau( i ), t( 1, i ), 1 )
298 CALL ztrmv(
'Upper',
'No Transpose',
'NON-UNIT',
308 CALL zlacpy(
'ALL', k, nb, a( 1, 2 ), lda, y, ldy )
309 CALL ztrmm(
'RIGHT',
'Lower',
'NO TRANSPOSE',
311 $ one, a( k+1, 1 ), lda, y, ldy )
313 $
CALL zgemm(
'NO TRANSPOSE',
'NO TRANSPOSE', k,
315 $ a( 1, 2+nb ), lda, a( k+1+nb, 1 ), lda, one, y,
317 CALL ztrmm(
'RIGHT',
'Upper',
'NO TRANSPOSE',
319 $ one, t, ldt, y, ldy )
subroutine zaxpy(n, za, zx, incx, zy, incy)
ZAXPY
subroutine zcopy(n, zx, incx, zy, incy)
ZCOPY
subroutine zgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
ZGEMM
subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZGEMV
subroutine zlacgv(n, x, incx)
ZLACGV conjugates a complex vector.
subroutine zlacpy(uplo, m, n, a, lda, b, ldb)
ZLACPY copies all or part of one two-dimensional array to another.
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 zlarfg(n, alpha, x, incx, tau)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine zscal(n, za, zx, incx)
ZSCAL
subroutine ztrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
ZTRMM
subroutine ztrmv(uplo, trans, diag, n, a, lda, x, incx)
ZTRMV