125 SUBROUTINE zpot06( UPLO, N, NRHS, A, LDA, X, LDX, B, LDB,
134 INTEGER LDA, LDB, LDX, N, NRHS
135 DOUBLE PRECISION RESID
138 DOUBLE PRECISION RWORK( * )
139 COMPLEX*16 A( LDA, * ), B( LDB, * ), X( LDX, * )
145 DOUBLE PRECISION ZERO, ONE
146 parameter( zero = 0.0d+0, one = 1.0d+0 )
147 COMPLEX*16 CONE, NEGCONE
148 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
149 parameter( negcone = ( -1.0d+0, 0.0d+0 ) )
153 DOUBLE PRECISION ANORM, BNORM, EPS, XNORM
159 DOUBLE PRECISION DLAMCH, ZLANSY
160 EXTERNAL lsame, izamax, dlamch, zlansy
166 INTRINSIC abs, dble, dimag, max
169 DOUBLE PRECISION CABS1
172 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
179 IF( n.LE.0 .OR. nrhs.EQ.0 )
THEN
186 eps = dlamch(
'Epsilon' )
187 anorm = zlansy(
'I', uplo, n, a, lda, rwork )
188 IF( anorm.LE.zero )
THEN
196 CALL zhemm(
'Left', uplo, n, nrhs, negcone, a, lda, x,
197 $ ldx, cone, b, ldb )
204 bnorm = cabs1(b(izamax( n, b( 1, j ), 1 ),j))
205 xnorm = cabs1(x(izamax( n, x( 1, j ), 1 ),j))
206 IF( xnorm.LE.zero )
THEN
209 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