110 SUBROUTINE cget03( N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK,
119 INTEGER lda, ldainv, ldwork, n
124 COMPLEX a( lda, * ), ainv( ldainv, * ),
132 parameter( zero = 0.0e+0, one = 1.0e+0 )
134 parameter( czero = ( 0.0e+0, 0.0e+0 ),
135 $ cone = ( 1.0e+0, 0.0e+0 ) )
139 REAL ainvnm, anorm, eps
164 anorm =
clange(
'1', n, n, a, lda, rwork )
165 ainvnm =
clange(
'1', n, n, ainv, ldainv, rwork )
166 IF( anorm.LE.zero .OR. ainvnm.LE.zero )
THEN
171 rcond = ( one/anorm ) / ainvnm
175 CALL
cgemm(
'No transpose',
'No transpose', n, n, n, -cone,
176 $ ainv, ldainv, a, lda, czero, work, ldwork )
178 work( i, i ) = cone + work( i, i )
183 resid =
clange(
'1', n, n, work, ldwork, rwork )
185 resid = ( ( resid*rcond )/eps ) /
REAL( n )
real function clange(NORM, M, N, A, LDA, WORK)
CLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
real function slamch(CMACH)
SLAMCH
subroutine cgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
CGEMM
subroutine cget03(N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK, RCOND, RESID)
CGET03