148 SUBROUTINE clarz( SIDE, M, N, L, V, INCV, TAU, C, LDC, WORK )
157 INTEGER INCV, L, LDC, M, N
161 COMPLEX C( ldc, * ), V( * ), WORK( * )
168 parameter ( one = ( 1.0e+0, 0.0e+0 ),
169 $ zero = ( 0.0e+0, 0.0e+0 ) )
180 IF( lsame( side,
'L' ) )
THEN
184 IF( tau.NE.zero )
THEN
188 CALL ccopy( n, c, ldc, work, 1 )
193 CALL cgemv(
'Conjugate transpose', l, n, one, c( m-l+1, 1 ),
194 $ ldc, v, incv, one, work, 1 )
199 CALL caxpy( n, -tau, work, 1, c, ldc )
204 CALL cgeru( l, n, -tau, v, incv, work, 1, c( m-l+1, 1 ),
212 IF( tau.NE.zero )
THEN
216 CALL ccopy( m, c, 1, work, 1 )
220 CALL cgemv(
'No transpose', m, l, one, c( 1, n-l+1 ), ldc,
221 $ v, incv, one, work, 1 )
225 CALL caxpy( m, -tau, work, 1, c, 1 )
230 CALL cgerc( m, l, -tau, work, 1, v, incv, c( 1, n-l+1 ),
subroutine clarz(SIDE, M, N, L, V, INCV, TAU, C, LDC, WORK)
CLARZ applies an elementary reflector (as returned by stzrzf) to a general matrix.
subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine cgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CGERC
subroutine ccopy(N, CX, INCX, CY, INCY)
CCOPY
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.
subroutine cgeru(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CGERU
subroutine caxpy(N, CA, CX, INCX, CY, INCY)
CAXPY