178 SUBROUTINE clahr2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )
185 INTEGER K, LDA, LDT, LDY, N, NB
188 COMPLEX A( LDA, * ), T( LDT, NB ), TAU( NB ),
196 parameter( zero = ( 0.0e+0, 0.0e+0 ),
197 $ one = ( 1.0e+0, 0.0e+0 ) )
224 CALL clacgv( i-1, a( k+i-1, 1 ), lda )
225 CALL cgemv(
'NO TRANSPOSE', n-k, i-1, -one, y(k+1,1),
227 $ a( k+i-1, 1 ), lda, one, a( k+1, i ), 1 )
228 CALL clacgv( i-1, a( k+i-1, 1 ), lda )
240 CALL ccopy( i-1, a( k+1, i ), 1, t( 1, nb ), 1 )
241 CALL ctrmv(
'Lower',
'Conjugate transpose',
'UNIT',
243 $ lda, t( 1, nb ), 1 )
247 CALL cgemv(
'Conjugate transpose', n-k-i+1, i-1,
249 $ lda, a( k+i, i ), 1, one, t( 1, nb ), 1 )
253 CALL ctrmv(
'Upper',
'Conjugate transpose',
'NON-UNIT',
259 CALL cgemv(
'NO TRANSPOSE', n-k-i+1, i-1, -one,
261 $ lda, t( 1, nb ), 1, one, a( k+i, i ), 1 )
265 CALL ctrmv(
'Lower',
'NO TRANSPOSE',
267 $ a( k+1, 1 ), lda, t( 1, nb ), 1 )
268 CALL caxpy( i-1, -one, t( 1, nb ), 1, a( k+1, i ), 1 )
276 CALL clarfg( n-k-i+1, a( k+i, i ), a( min( k+i+1, n ), i ),
284 CALL cgemv(
'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 cgemv(
'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 cgemv(
'NO TRANSPOSE', n-k, i-1, -one,
292 $ t( 1, i ), 1, one, y( k+1, i ), 1 )
293 CALL cscal( n-k, tau( i ), y( k+1, i ), 1 )
297 CALL cscal( i-1, -tau( i ), t( 1, i ), 1 )
298 CALL ctrmv(
'Upper',
'No Transpose',
'NON-UNIT',
308 CALL clacpy(
'ALL', k, nb, a( 1, 2 ), lda, y, ldy )
309 CALL ctrmm(
'RIGHT',
'Lower',
'NO TRANSPOSE',
311 $ one, a( k+1, 1 ), lda, y, ldy )
313 $
CALL cgemm(
'NO TRANSPOSE',
'NO TRANSPOSE', k,
315 $ a( 1, 2+nb ), lda, a( k+1+nb, 1 ), lda, one, y,
317 CALL ctrmm(
'RIGHT',
'Upper',
'NO TRANSPOSE',
319 $ one, t, ldt, y, ldy )
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...