127 SUBROUTINE zpot06( UPLO, N, NRHS, A, LDA, X, LDX, B, LDB,
137 INTEGER LDA, LDB, LDX, N, NRHS
138 DOUBLE PRECISION RESID
141 DOUBLE PRECISION RWORK( * )
142 COMPLEX*16 A( lda, * ), B( ldb, * ), X( ldx, * )
148 DOUBLE PRECISION ZERO, ONE
149 parameter ( zero = 0.0d+0, one = 1.0d+0 )
150 COMPLEX*16 CONE, NEGCONE
151 parameter ( cone = ( 1.0d+0, 0.0d+0 ) )
152 parameter ( negcone = ( -1.0d+0, 0.0d+0 ) )
156 DOUBLE PRECISION ANORM, BNORM, EPS, XNORM
162 DOUBLE PRECISION DLAMCH, ZLANSY
163 EXTERNAL lsame, izamax, dlamch, zlansy
169 INTRINSIC abs, dble, dimag, max
172 DOUBLE PRECISION CABS1
175 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
182 IF( n.LE.0 .OR. nrhs.EQ.0 )
THEN
189 eps = dlamch(
'Epsilon' )
190 anorm = zlansy(
'I', uplo, n, a, lda, rwork )
191 IF( anorm.LE.zero )
THEN
199 CALL zhemm(
'Left', uplo, n, nrhs, negcone, a, lda, x,
200 $ ldx, cone, b, ldb )
207 bnorm = cabs1(b(izamax( n, b( 1, j ), 1 ),j))
208 xnorm = cabs1(x(izamax( n, x( 1, j ), 1 ),j))
209 IF( xnorm.LE.zero )
THEN
212 resid = max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )
subroutine zhemm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZHEMM
subroutine zpot06(UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZPOT06