123 SUBROUTINE zsyt01( UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC,
132 INTEGER LDA, LDAFAC, LDC, N
133 DOUBLE PRECISION RESID
137 DOUBLE PRECISION RWORK( * )
138 COMPLEX*16 A( LDA, * ), AFAC( LDAFAC, * ), C( LDC, * )
144 DOUBLE PRECISION ZERO, ONE
145 parameter( zero = 0.0d+0, one = 1.0d+0 )
146 COMPLEX*16 CZERO, CONE
147 parameter( czero = ( 0.0d+0, 0.0d+0 ),
148 $ cone = ( 1.0d+0, 0.0d+0 ) )
152 DOUBLE PRECISION ANORM, EPS
156 DOUBLE PRECISION DLAMCH, ZLANSY
157 EXTERNAL lsame, dlamch, zlansy
176 eps = dlamch(
'Epsilon' )
177 anorm = zlansy(
'1', uplo, n, a, lda, rwork )
181 CALL zlaset(
'Full', n, n, czero, cone, c, ldc )
185 CALL zlavsy( uplo,
'Transpose',
'Non-unit', n, n, afac, ldafac,
186 $ ipiv, c, ldc, info )
190 CALL zlavsy( uplo,
'No transpose',
'Unit', n, n, afac, ldafac,
191 $ ipiv, c, ldc, info )
195 IF( lsame( uplo,
'U' ) )
THEN
198 c( i, j ) = c( i, j ) - a( i, j )
204 c( i, j ) = c( i, j ) - a( i, j )
211 resid = zlansy(
'1', uplo, n, c, ldc, rwork )
213 IF( anorm.LE.zero )
THEN
217 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.