111 SUBROUTINE dspt01( UPLO, N, A, AFAC, IPIV, C, LDC, RWORK, RESID )
121 DOUBLE PRECISION RESID
125 DOUBLE PRECISION A( * ), AFAC( * ), C( ldc, * ), RWORK( * )
131 DOUBLE PRECISION ZERO, ONE
132 parameter( zero = 0.0d+0, one = 1.0d+0 )
135 INTEGER I, INFO, J, JC
136 DOUBLE PRECISION ANORM, EPS
140 DOUBLE PRECISION DLAMCH, DLANSP, DLANSY
141 EXTERNAL lsame, dlamch, dlansp, dlansy
160 eps = dlamch(
'Epsilon' )
161 anorm = dlansp(
'1', uplo, n, a, rwork )
165 CALL dlaset(
'Full', n, n, zero, one, c, ldc )
169 CALL dlavsp( uplo,
'Transpose',
'Non-unit', n, n, afac, ipiv, c,
174 CALL dlavsp( uplo,
'No transpose',
'Unit', n, n, afac, ipiv, c,
179 IF( lsame( uplo,
'U' ) )
THEN
183 c( i, j ) = c( i, j ) - a( jc+i )
191 c( i, j ) = c( i, j ) - a( jc+i-j )
199 resid = dlansy(
'1', uplo, n, c, ldc, rwork )
201 IF( anorm.LE.zero )
THEN
205 resid = ( ( resid / dble( n ) ) / anorm ) / eps
subroutine dspt01(UPLO, N, A, AFAC, IPIV, C, LDC, RWORK, RESID)
DSPT01
subroutine dlavsp(UPLO, TRANS, DIAG, N, NRHS, A, IPIV, B, LDB, INFO)
DLAVSP
subroutine dlaset(UPLO, M, N, ALPHA, BETA, A, LDA)
DLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...