1 SUBROUTINE cpot01( UPLO, N, A, LDA, AFAC, LDAFAC, RWORK, RESID )
14 COMPLEX a( lda, * ), afac( ldafac, * )
64 parameter( zero = 0.0e+0, one = 1.0e+0 )
75 EXTERNAL lsame,
clanhe, slamch, cdotc
78 EXTERNAL cher, cscal, ctrmv
94 eps = slamch(
'Epsilon' )
96 IF( anorm.LE.zero )
THEN
105 IF( aimag( afac( j, j ) ).NE.zero )
THEN
113 IF( lsame(
uplo,
'U' ) )
THEN
118 tr = cdotc( k, afac( 1, k ), 1, afac( 1, k ), 1 )
123 CALL ctrmv(
'Upper',
'Conjugate',
'Non-unit', k-1, afac,
124 $ ldafac, afac( 1, k ), 1 )
137 $ CALL cher(
'Lower', n-k, one, afac( k+1, k ), 1,
138 $ afac( k+1, k+1 ), ldafac )
143 CALL cscal( n-k+1, tc, afac( k, k ), 1 )
150 IF( lsame(
uplo,
'U' ) )
THEN
153 afac( i, j ) = afac( i, j ) - a( i, j )
155 afac( j, j ) = afac( j, j ) -
REAL( A( J, J ) )
159 afac( j, j ) = afac( j, j ) -
REAL( A( J, J ) )
161 afac( i, j ) = afac( i, j ) - a( i, j )
168 resid =
clanhe(
'1',
uplo, n, afac, ldafac, rwork )
170 resid = ( ( resid /
REAL( N ) ) / anorm ) / eps