146 SUBROUTINE zupmtr( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC,
155 CHARACTER SIDE, TRANS, UPLO
156 INTEGER INFO, LDC, M, N
159 COMPLEX*16 AP( * ), C( LDC, * ), TAU( * ), WORK( * )
166 PARAMETER ( ONE = ( 1.0d+0, 0.0d+0 ) )
169 LOGICAL FORWRD, LEFT, NOTRAN, UPPER
170 INTEGER I, I1, I2, I3, IC, II, JC, MI, NI, NQ
181 INTRINSIC dconjg, max
188 left = lsame( side,
'L' )
189 notran = lsame( trans,
'N' )
190 upper = lsame( uplo,
'U' )
199 IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN
201 ELSE IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
203 ELSE IF( .NOT.notran .AND. .NOT.lsame( trans,
'C' ) )
THEN
205 ELSE IF( m.LT.0 )
THEN
207 ELSE IF( n.LT.0 )
THEN
209 ELSE IF( ldc.LT.max( 1, m ) )
THEN
213 CALL xerbla(
'ZUPMTR', -info )
219 IF( m.EQ.0 .OR. n.EQ.0 )
226 forwrd = ( left .AND. notran ) .OR.
227 $ ( .NOT.left .AND. .NOT.notran )
238 ii = nq*( nq+1 ) / 2 - 1
265 taui = dconjg( tau( i ) )
267 CALL zlarf1l( side, mi, ni, ap( ii-i+1 ), 1, taui, c,
280 forwrd = ( left .AND. .NOT.notran ) .OR.
281 $ ( .NOT.left .AND. notran )
292 ii = nq*( nq+1 ) / 2 - 1
323 taui = dconjg( tau( i ) )
325 CALL zlarf1f( side, mi, ni, ap( ii ), 1, taui, c( ic,
subroutine zlarf1f(side, m, n, v, incv, tau, c, ldc, work)
ZLARF1F applies an elementary reflector to a general rectangular
subroutine zupmtr(side, uplo, trans, m, n, ap, tau, c, ldc, work, info)
ZUPMTR
subroutine zlarf1l(side, m, n, v, incv, tau, c, ldc, work)
ZLARF1L applies an elementary reflector to a general rectangular