234 SUBROUTINE cptsvx( FACT, N, NRHS, D, E, DF, EF, B, LDB, X, LDX,
235 $ rcond, ferr, berr, work, rwork, info )
244 INTEGER info, ldb, ldx, n, nrhs
248 REAL berr( * ), d( * ), df( * ), ferr( * ),
250 COMPLEX b( ldb, * ), e( * ), ef( * ), work( * ),
258 parameter( zero = 0.0e+0 )
281 nofact =
lsame( fact,
'N' )
282 IF( .NOT.nofact .AND. .NOT.
lsame( fact,
'F' ) )
THEN
284 ELSE IF( n.LT.0 )
THEN
286 ELSE IF( nrhs.LT.0 )
THEN
288 ELSE IF( ldb.LT.max( 1, n ) )
THEN
290 ELSE IF( ldx.LT.max( 1, n ) )
THEN
294 CALL
xerbla(
'CPTSVX', -info )
302 CALL
scopy( n, d, 1, df, 1 )
304 $ CALL
ccopy( n-1, e, 1, ef, 1 )
305 CALL
cpttrf( n, df, ef, info )
317 anorm =
clanht(
'1', n, d, e )
321 CALL
cptcon( n, df, ef, anorm, rcond, rwork, info )
325 CALL
clacpy(
'Full', n, nrhs,
b, ldb,
x, ldx )
326 CALL
cpttrs(
'Lower', n, nrhs, df, ef,
x, ldx, info )
331 CALL
cptrfs(
'Lower', n, nrhs, d, e, df, ef,
b, ldb,
x, ldx, ferr,
332 $ berr, work, rwork, info )
336 IF( rcond.LT.
slamch(
'Epsilon' ) )
LOGICAL function lsame(CA, CB)
LSAME
subroutine cpttrs(UPLO, N, NRHS, D, E, B, LDB, INFO)
CPTTRS
REAL function slamch(CMACH)
SLAMCH
subroutine cptcon(N, D, E, ANORM, RCOND, RWORK, INFO)
CPTCON
subroutine xerbla(SRNAME, INFO)
XERBLA
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real b(3) integer i
subroutine cpttrf(N, D, E, INFO)
CPTTRF
subroutine scopy(N, SX, INCX, SY, INCY)
SCOPY
subroutine clacpy(UPLO, M, N, A, LDA, B, LDB)
CLACPY copies all or part of one two-dimensional array to another.
REAL function clanht(NORM, N, D, E)
CLANHT returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a complex Hermitian tridiagonal matrix.
subroutine cptsvx(FACT, N, NRHS, D, E, DF, EF, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CPTSVX computes the solution to system of linear equations A * X = B for PT matrices ...
subroutine cptrfs(UPLO, N, NRHS, D, E, DF, EF, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
CPTRFS
subroutine ccopy(N, CX, INCX, CY, INCY)
CCOPY