148 SUBROUTINE zupmtr( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK,
156 CHARACTER SIDE, TRANS, UPLO
157 INTEGER INFO, LDC, M, N
160 COMPLEX*16 AP( * ), C( ldc, * ), TAU( * ), WORK( * )
167 parameter( one = ( 1.0d+0, 0.0d+0 ) )
170 LOGICAL FORWRD, LEFT, NOTRAN, UPPER
171 INTEGER I, I1, I2, I3, IC, II, JC, MI, NI, NQ
182 INTRINSIC dconjg, max
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(
'ZUPMTR', -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 = dconjg( tau( i ) )
270 CALL zlarf( 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 = dconjg( tau( i ) )
331 CALL zlarf( side, mi, ni, ap( ii ), 1, taui, c( ic, jc ),
subroutine zlarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
ZLARF applies an elementary reflector to a general rectangular matrix.
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zupmtr(SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO)
ZUPMTR