148 SUBROUTINE cupmtr( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK,
156 CHARACTER SIDE, TRANS, UPLO
157 INTEGER INFO, LDC, M, N
160 COMPLEX AP( * ), C( LDC, * ), TAU( * ), WORK( * )
167 parameter( one = ( 1.0e+0, 0.0e+0 ) )
170 LOGICAL FORWRD, LEFT, NOTRAN, UPPER
171 INTEGER I, I1, I2, I3, IC, II, JC, MI, NI, NQ
189 left = lsame( side,
'L' )
190 notran = lsame( trans,
'N' )
191 upper = lsame( uplo,
'U' )
200 IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN
202 ELSE IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
204 ELSE IF( .NOT.notran .AND. .NOT.lsame( trans,
'C' ) )
THEN
206 ELSE IF( m.LT.0 )
THEN
208 ELSE IF( n.LT.0 )
THEN
210 ELSE IF( ldc.LT.max( 1, m ) )
THEN
214 CALL xerbla(
'CUPMTR', -info )
220 IF( m.EQ.0 .OR. n.EQ.0 )
227 forwrd = ( left .AND. notran ) .OR.
228 $ ( .NOT.left .AND. .NOT.notran )
239 ii = nq*( nq+1 ) / 2 - 1
266 taui = conjg( tau( i ) )
270 CALL clarf( side, mi, ni, ap( ii-i+1 ), 1, taui, c, ldc,
284 forwrd = ( left .AND. .NOT.notran ) .OR.
285 $ ( .NOT.left .AND. notran )
296 ii = nq*( nq+1 ) / 2 - 1
329 taui = conjg( tau( i ) )
331 CALL clarf( side, mi, ni, ap( ii ), 1, taui, c( ic, jc ),
subroutine xerbla(srname, info)
subroutine clarf(side, m, n, v, incv, tau, c, ldc, work)
CLARF applies an elementary reflector to a general rectangular matrix.
subroutine cupmtr(side, uplo, trans, m, n, ap, tau, c, ldc, work, info)
CUPMTR