125 SUBROUTINE zsyt01( UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC,
135 INTEGER LDA, LDAFAC, LDC, N
136 DOUBLE PRECISION RESID
140 DOUBLE PRECISION RWORK( * )
141 COMPLEX*16 A( lda, * ), AFAC( ldafac, * ), C( ldc, * )
147 DOUBLE PRECISION ZERO, ONE
148 parameter ( zero = 0.0d+0, one = 1.0d+0 )
149 COMPLEX*16 CZERO, CONE
150 parameter ( czero = ( 0.0d+0, 0.0d+0 ),
151 $ cone = ( 1.0d+0, 0.0d+0 ) )
155 DOUBLE PRECISION ANORM, EPS
159 DOUBLE PRECISION DLAMCH, ZLANSY
160 EXTERNAL lsame, dlamch, zlansy
179 eps = dlamch(
'Epsilon' )
180 anorm = zlansy(
'1', uplo, n, a, lda, rwork )
184 CALL zlaset(
'Full', n, n, czero, cone, c, ldc )
188 CALL zlavsy( uplo,
'Transpose',
'Non-unit', n, n, afac, ldafac,
189 $ ipiv, c, ldc, info )
193 CALL zlavsy( uplo,
'No transpose',
'Unit', n, n, afac, ldafac,
194 $ ipiv, c, ldc, info )
198 IF( lsame( uplo,
'U' ) )
THEN
201 c( i, j ) = c( i, j ) - a( i, j )
207 c( i, j ) = c( i, j ) - a( i, j )
214 resid = zlansy(
'1', uplo, n, c, ldc, rwork )
216 IF( anorm.LE.zero )
THEN
220 resid = ( ( resid / dble( n ) ) / anorm ) / eps
subroutine zlavsy(UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZLAVSY
subroutine zsyt01(UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
ZSYT01
subroutine zlaset(UPLO, M, N, ALPHA, BETA, A, LDA)
ZLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...