182 SUBROUTINE clahr2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )
190 INTEGER K, LDA, LDT, LDY, N, NB
193 COMPLEX A( lda, * ), T( ldt, nb ), TAU( nb ),
201 parameter ( zero = ( 0.0e+0, 0.0e+0 ),
202 $ one = ( 1.0e+0, 0.0e+0 ) )
229 CALL clacgv( i-1, a( k+i-1, 1 ), lda )
230 CALL cgemv(
'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 clacgv( i-1, a( k+i-1, 1 ), lda )
244 CALL ccopy( i-1, a( k+1, i ), 1, t( 1, nb ), 1 )
245 CALL ctrmv(
'Lower',
'Conjugate transpose',
'UNIT',
247 $ lda, t( 1, nb ), 1 )
251 CALL cgemv(
'Conjugate transpose', n-k-i+1, i-1,
253 $ lda, a( k+i, i ), 1, one, t( 1, nb ), 1 )
257 CALL ctrmv(
'Upper',
'Conjugate transpose',
'NON-UNIT',
263 CALL cgemv(
'NO TRANSPOSE', n-k-i+1, i-1, -one,
265 $ lda, t( 1, nb ), 1, one, a( k+i, i ), 1 )
269 CALL ctrmv(
'Lower',
'NO TRANSPOSE',
271 $ a( k+1, 1 ), lda, t( 1, nb ), 1 )
272 CALL caxpy( i-1, -one, t( 1, nb ), 1, a( k+1, i ), 1 )
280 CALL clarfg( n-k-i+1, a( k+i, i ), a( min( k+i+1, n ), i ), 1,
287 CALL cgemv(
'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 cgemv(
'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 cgemv(
'NO TRANSPOSE', n-k, i-1, -one,
295 $ t( 1, i ), 1, one, y( k+1, i ), 1 )
296 CALL cscal( n-k, tau( i ), y( k+1, i ), 1 )
300 CALL cscal( i-1, -tau( i ), t( 1, i ), 1 )
301 CALL ctrmv(
'Upper',
'No Transpose',
'NON-UNIT',
311 CALL clacpy(
'ALL', k, nb, a( 1, 2 ), lda, y, ldy )
312 CALL ctrmm(
'RIGHT',
'Lower',
'NO TRANSPOSE',
314 $ one, a( k+1, 1 ), lda, y, ldy )
316 $
CALL cgemm(
'NO TRANSPOSE',
'NO TRANSPOSE', k,
318 $ a( 1, 2+nb ), lda, a( k+1+nb, 1 ), lda, one, y,
320 CALL ctrmm(
'RIGHT',
'Upper',
'NO TRANSPOSE',
322 $ one, t, ldt, y, ldy )
subroutine clarfg(N, ALPHA, X, INCX, TAU)
CLARFG generates an elementary reflector (Householder matrix).
subroutine cscal(N, CA, CX, INCX)
CSCAL
subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine ctrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
CTRMV
subroutine clacpy(UPLO, M, N, A, LDA, B, LDB)
CLACPY copies all or part of one two-dimensional array to another.
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.
subroutine clahr2(N, K, NB, A, LDA, TAU, T, LDT, Y, LDY)
CLAHR2 reduces the specified number of first columns of a general rectangular matrix A so that elemen...
subroutine ccopy(N, CX, INCX, CY, INCY)
CCOPY
subroutine ctrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
CTRMM
subroutine caxpy(N, CA, CX, INCX, CY, INCY)
CAXPY
subroutine cgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
CGEMM