double_lin(3) double

Functions


program dchkaa
DCHKAA
program dchkab
DCHKAB
subroutine dchkeq (THRESH, NOUT)
DCHKEQ
subroutine dchkgb (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, A, LA, AFAC, LAFAC, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKGB
subroutine dchkge (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKGE
subroutine dchkgt (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKGT
subroutine dchklq (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
DCHKLQ
subroutine dchkpb (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKPB
subroutine dchkpo (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKPO
subroutine dchkpp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKPP
subroutine dchkps (DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
DCHKPS
subroutine dchkpt (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
DCHKPT
subroutine dchkq3 (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, IWORK, NOUT)
DCHKQ3
subroutine dchkql (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
DCHKQL
subroutine dchkqr (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, NOUT)
DCHKQR
subroutine dchkqrt (THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRT
subroutine dchkqrtp (THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRTP
program dchkrfp
DCHKRFP
subroutine dchkrq (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, NOUT)
DCHKRQ
subroutine dchksp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSP
subroutine dchksy (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY
subroutine dchksy_rook (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY_ROOK
subroutine dchktb (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKTB
subroutine dchktp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKTP
subroutine dchktr (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKTR
subroutine dchktz (DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, NOUT)
DCHKTZ
subroutine ddrvab (DOTYPE, NM, MVAL, NNS, NSVAL, THRESH, NMAX, A, AFAC, B, X, WORK, RWORK, SWORK, IWORK, NOUT)
DDRVAB
subroutine ddrvac (DOTYPE, NM, MVAL, NNS, NSVAL, THRESH, NMAX, A, AFAC, B, X, WORK, RWORK, SWORK, NOUT)
DDRVAC
subroutine ddrvgb (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVGB
subroutine ddrvge (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVGE
subroutine ddrvgt (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVGT
subroutine ddrvls (DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, WORK, IWORK, NOUT)
DDRVLS
subroutine ddrvpb (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVPB
subroutine ddrvpo (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVPO
subroutine ddrvpp (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVPP
subroutine ddrvpt (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
DDRVPT
subroutine ddrvrf1 (NOUT, NN, NVAL, THRESH, A, LDA, ARF, WORK)
DDRVRF1
subroutine ddrvrf2 (NOUT, NN, NVAL, A, LDA, ARF, AP, ASAV)
DDRVRF2
subroutine ddrvrf3 (NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2, D_WORK_DLANGE, D_WORK_DGEQRF, TAU)
DDRVRF3
subroutine ddrvrf4 (NOUT, NN, NVAL, THRESH, C1, C2, LDC, CRF, A, LDA, D_WORK_DLANGE)
DDRVRF4
subroutine ddrvrfp (NOUT, NN, NVAL, NNS, NSVAL, NNT, NTVAL, THRESH, A, ASAV, AFAC, AINV, B, BSAV, XACT, X, ARF, ARFINV, D_WORK_DLATMS, D_WORK_DPOT01, D_TEMP_DPOT02, D_TEMP_DPOT03, D_WORK_DLANSY, D_WORK_DPOT02, D_WORK_DPOT03)
DDRVRFP
subroutine ddrvsp (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSP
subroutine ddrvsy (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY
subroutine ddrvsy_rook (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY_ROOK
subroutine debchvxx (THRESH, PATH)
DEBCHVXX
subroutine derrab (NUNIT)
DERRAB
subroutine derrac (NUNIT)
DERRAC
subroutine derrge (PATH, NUNIT)
DERRGE
subroutine derrgt (PATH, NUNIT)
DERRGT
subroutine derrlq (PATH, NUNIT)
DERRLQ
subroutine derrls (PATH, NUNIT)
DERRLS
subroutine derrpo (PATH, NUNIT)
DERRPO
subroutine derrps (PATH, NUNIT)
DERRPS
subroutine derrql (PATH, NUNIT)
DERRQL
subroutine derrqp (PATH, NUNIT)
DERRQP
subroutine derrqr (PATH, NUNIT)
DERRQR
subroutine derrqrt (PATH, NUNIT)
DERRQRT
subroutine derrqrtp (PATH, NUNIT)
DERRQRTP
subroutine derrrfp (NUNIT)
DERRRFP
subroutine derrrq (PATH, NUNIT)
DERRRQ
subroutine derrsy (PATH, NUNIT)
DERRSY
subroutine derrtr (PATH, NUNIT)
DERRTR
subroutine derrtz (PATH, NUNIT)
DERRTZ
subroutine derrvx (PATH, NUNIT)
DERRVX
subroutine dgbt01 (M, N, KL, KU, A, LDA, AFAC, LDAFAC, IPIV, WORK, RESID)
DGBT01
subroutine dgbt02 (TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, RESID)
DGBT02
subroutine dgbt05 (TRANS, N, KL, KU, NRHS, AB, LDAB, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
DGBT05
subroutine dgelqs (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
DGELQS
logical function dgennd (M, N, A, LDA)
DGENND
subroutine dgeqls (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
DGEQLS
subroutine dgeqrs (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
DGEQRS
subroutine dgerqs (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
DGERQS
subroutine dget01 (M, N, A, LDA, AFAC, LDAFAC, IPIV, RWORK, RESID)
DGET01
subroutine dget02 (TRANS, M, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
DGET02
subroutine dget03 (N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK, RCOND, RESID)
DGET03
subroutine dget04 (N, NRHS, X, LDX, XACT, LDXACT, RCOND, RESID)
DGET04
double precision function dget06 (RCOND, RCONDC)
DGET06
subroutine dget07 (TRANS, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, CHKFERR, BERR, RESLTS)
DGET07
subroutine dget08 (TRANS, M, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
DGET08
subroutine dgtt01 (N, DL, D, DU, DLF, DF, DUF, DU2, IPIV, WORK, LDWORK, RWORK, RESID)
DGTT01
subroutine dgtt02 (TRANS, N, NRHS, DL, D, DU, X, LDX, B, LDB, RESID)
DGTT02
subroutine dgtt05 (TRANS, N, NRHS, DL, D, DU, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
DGTT05
subroutine dlahilb (N, NRHS, A, LDA, X, LDX, B, LDB, WORK, INFO)
DLAHILB
subroutine dlaord (JOB, N, X, INCX)
DLAORD
subroutine dlaptm (N, NRHS, ALPHA, D, E, X, LDX, BETA, B, LDB)
DLAPTM
subroutine dlarhs (PATH, XTYPE, UPLO, TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, ISEED, INFO)
DLARHS
subroutine dlatb4 (PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
DLATB4
subroutine dlatb5 (PATH, IMAT, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
DLATB5
subroutine dlattb (IMAT, UPLO, TRANS, DIAG, ISEED, N, KD, AB, LDAB, B, WORK, INFO)
DLATTB
subroutine dlattp (IMAT, UPLO, TRANS, DIAG, ISEED, N, A, B, WORK, INFO)
DLATTP
subroutine dlattr (IMAT, UPLO, TRANS, DIAG, ISEED, N, A, LDA, B, WORK, INFO)
DLATTR
subroutine dlavsp (UPLO, TRANS, DIAG, N, NRHS, A, IPIV, B, LDB, INFO)
DLAVSP
subroutine dlavsy (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
DLAVSY
subroutine dlavsy_rook (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
DLAVSY_ROOK
subroutine dlqt01 (M, N, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DLQT01
subroutine dlqt02 (M, N, K, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DLQT02
subroutine dlqt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DLQT03
subroutine dpbt01 (UPLO, N, KD, A, LDA, AFAC, LDAFAC, RWORK, RESID)
DPBT01
subroutine dpbt02 (UPLO, N, KD, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
DPBT02
subroutine dpbt05 (UPLO, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
DPBT05
subroutine dpot01 (UPLO, N, A, LDA, AFAC, LDAFAC, RWORK, RESID)
DPOT01
subroutine dpot02 (UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
DPOT02
subroutine dpot03 (UPLO, N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK, RCOND, RESID)
DPOT03
subroutine dpot05 (UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
DPOT05
subroutine dpot06 (UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
DPOT06
subroutine dppt01 (UPLO, N, A, AFAC, RWORK, RESID)
DPPT01
subroutine dppt02 (UPLO, N, NRHS, A, X, LDX, B, LDB, RWORK, RESID)
DPPT02
subroutine dppt03 (UPLO, N, A, AINV, WORK, LDWORK, RWORK, RCOND, RESID)
DPPT03
subroutine dppt05 (UPLO, N, NRHS, AP, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
DPPT05
subroutine dpst01 (UPLO, N, A, LDA, AFAC, LDAFAC, PERM, LDPERM, PIV, RWORK, RESID, RANK)
DPST01
subroutine dptt01 (N, D, E, DF, EF, WORK, RESID)
DPTT01
subroutine dptt02 (N, NRHS, D, E, X, LDX, B, LDB, RESID)
DPTT02
subroutine dptt05 (N, NRHS, D, E, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
DPTT05
subroutine dqlt01 (M, N, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DQLT01
subroutine dqlt02 (M, N, K, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DQLT02
subroutine dqlt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DQLT03
double precision function dqpt01 (M, N, K, A, AF, LDA, TAU, JPVT, WORK, LWORK)
DQPT01
subroutine dqrt01 (M, N, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DQRT01
subroutine dqrt01p (M, N, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DQRT01P
subroutine dqrt02 (M, N, K, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DQRT02
subroutine dqrt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DQRT03
subroutine dqrt04 (M, N, NB, RESULT)
DQRT04
subroutine dqrt05 (M, N, L, NB, RESULT)
DQRT05
double precision function dqrt11 (M, K, A, LDA, TAU, WORK, LWORK)
DQRT11
double precision function dqrt12 (M, N, A, LDA, S, WORK, LWORK)
DQRT12
subroutine dqrt13 (SCALE, M, N, A, LDA, NORMA, ISEED)
DQRT13
double precision function dqrt14 (TRANS, M, N, NRHS, A, LDA, X, LDX, WORK, LWORK)
DQRT14
subroutine dqrt15 (SCALE, RKSEL, M, N, NRHS, A, LDA, B, LDB, S, RANK, NORMA, NORMB, ISEED, WORK, LWORK)
DQRT15
subroutine dqrt16 (TRANS, M, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
DQRT16
double precision function dqrt17 (TRANS, IRESID, M, N, NRHS, A, LDA, X, LDX, B, LDB, C, WORK, LWORK)
DQRT17
subroutine drqt01 (M, N, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DRQT01
subroutine drqt02 (M, N, K, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DRQT02
subroutine drqt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
DRQT03
double precision function drzt01 (M, N, A, AF, LDA, TAU, WORK, LWORK)
DRZT01
double precision function drzt02 (M, N, AF, LDA, TAU, WORK, LWORK)
DRZT02
subroutine dspt01 (UPLO, N, A, AFAC, IPIV, C, LDC, RWORK, RESID)
DSPT01
subroutine dsyt01 (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
DSYT01
subroutine dsyt01_rook (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
DSYT01_ROOK
subroutine dtbt02 (UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, X, LDX, B, LDB, WORK, RESID)
DTBT02
subroutine dtbt03 (UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, SCALE, CNORM, TSCAL, X, LDX, B, LDB, WORK, RESID)
DTBT03
subroutine dtbt05 (UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
DTBT05
subroutine dtbt06 (RCOND, RCONDC, UPLO, DIAG, N, KD, AB, LDAB, WORK, RAT)
DTBT06
subroutine dtpt01 (UPLO, DIAG, N, AP, AINVP, RCOND, WORK, RESID)
DTPT01
subroutine dtpt02 (UPLO, TRANS, DIAG, N, NRHS, AP, X, LDX, B, LDB, WORK, RESID)
DTPT02
subroutine dtpt03 (UPLO, TRANS, DIAG, N, NRHS, AP, SCALE, CNORM, TSCAL, X, LDX, B, LDB, WORK, RESID)
DTPT03
subroutine dtpt05 (UPLO, TRANS, DIAG, N, NRHS, AP, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
DTPT05
subroutine dtpt06 (RCOND, RCONDC, UPLO, DIAG, N, AP, WORK, RAT)
DTPT06
subroutine dtrt01 (UPLO, DIAG, N, A, LDA, AINV, LDAINV, RCOND, WORK, RESID)
DTRT01
subroutine dtrt02 (UPLO, TRANS, DIAG, N, NRHS, A, LDA, X, LDX, B, LDB, WORK, RESID)
DTRT02
subroutine dtrt03 (UPLO, TRANS, DIAG, N, NRHS, A, LDA, SCALE, CNORM, TSCAL, X, LDX, B, LDB, WORK, RESID)
DTRT03
subroutine dtrt05 (UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
DTRT05
subroutine dtrt06 (RCOND, RCONDC, UPLO, DIAG, N, A, LDA, WORK, RAT)
DTRT06
subroutine sdrvsy_rook (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SDRVSY_ROOK

Detailed Description

This is the group of double LAPACK TESTING LIN routines.

Function Documentation

program dchkaa ()

DCHKAA

Purpose:

 DCHKAA is the main test program for the DOUBLE PRECISION LAPACK
 linear equation routines
 The program must be driven by a short data file. The first 15 records
 (not including the first comment  line) specify problem dimensions
 and program options using list-directed input. The remaining lines
 specify the LAPACK test paths and the number of matrix types to use
 in testing.  An annotated example of a data file can be obtained by
 deleting the first 3 characters from the following 40 lines:
 Data file for testing DOUBLE PRECISION LAPACK linear eqn. routines
 7                      Number of values of M
 0 1 2 3 5 10 16        Values of M (row dimension)
 7                      Number of values of N
 0 1 2 3 5 10 16        Values of N (column dimension)
 1                      Number of values of NRHS
 2                      Values of NRHS (number of right hand sides)
 5                      Number of values of NB
 1 3 3 3 20             Values of NB (the blocksize)
 1 0 5 9 1              Values of NX (crossover point)
 3                      Number of values of RANK
 30 50 90               Values of rank (as a % of N)
 20.0                   Threshold value of test ratio
 T                      Put T to test the LAPACK routines
 T                      Put T to test the driver routines
 T                      Put T to test the error exits
 DGE   11               List types on next line if 0 < NTYPES < 11
 DGB    8               List types on next line if 0 < NTYPES <  8
 DGT   12               List types on next line if 0 < NTYPES < 12
 DPO    9               List types on next line if 0 < NTYPES <  9
 DPS    9               List types on next line if 0 < NTYPES <  9
 DPP    9               List types on next line if 0 < NTYPES <  9
 DPB    8               List types on next line if 0 < NTYPES <  8
 DPT   12               List types on next line if 0 < NTYPES < 12
 DSY   10               List types on next line if 0 < NTYPES < 10
 DSR   10               List types on next line if 0 < NTYPES < 10
 DSP   10               List types on next line if 0 < NTYPES < 10
 DTR   18               List types on next line if 0 < NTYPES < 18
 DTP   18               List types on next line if 0 < NTYPES < 18
 DTB   17               List types on next line if 0 < NTYPES < 17
 DQR    8               List types on next line if 0 < NTYPES <  8
 DRQ    8               List types on next line if 0 < NTYPES <  8
 DLQ    8               List types on next line if 0 < NTYPES <  8
 DQL    8               List types on next line if 0 < NTYPES <  8
 DQP    6               List types on next line if 0 < NTYPES <  6
 DTZ    3               List types on next line if 0 < NTYPES <  3
 DLS    6               List types on next line if 0 < NTYPES <  6
 DEQ
 DQT
 DQX


 

  NMAX    INTEGER
          The maximum allowable value for M and N.
  MAXIN   INTEGER
          The number of different values that can be used for each of
          M, N, NRHS, NB, NX and RANK
  MAXRHS  INTEGER
          The maximum number of right hand sides
  MATMAX  INTEGER
          The maximum number of matrix types to use for testing
  NIN     INTEGER
          The unit number for input
  NOUT    INTEGER
          The unit number for output


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

April 2012

program dchkab ()

DCHKAB

Purpose:

 DCHKAB is the test program for the DOUBLE PRECISION LAPACK
 DSGESV/DSPOSV routine
 The program must be driven by a short data file. The first 5 records
 specify problem dimensions and program options using list-directed
 input. The remaining lines specify the LAPACK test paths and the
 number of matrix types to use in testing.  An annotated example of a
 data file can be obtained by deleting the first 3 characters from the
 following 10 lines:
 Data file for testing DOUBLE PRECISION LAPACK DSGESV
 7                      Number of values of M
 0 1 2 3 5 10 16        Values of M (row dimension)
 1                      Number of values of NRHS
 2                      Values of NRHS (number of right hand sides)
 20.0                   Threshold value of test ratio
 T                      Put T to test the LAPACK routines
 T                      Put T to test the error exits 
 DGE    11              List types on next line if 0 < NTYPES < 11
 DPO    9               List types on next line if 0 < NTYPES <  9


 

  NMAX    INTEGER
          The maximum allowable value for N
  MAXIN   INTEGER
          The number of different values that can be used for each of
          M, N, NRHS, NB, and NX
  MAXRHS  INTEGER
          The maximum number of right hand sides
  NIN     INTEGER
          The unit number for input
  NOUT    INTEGER
          The unit number for output


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

April 2012

subroutine dchkeq (double precision THRESH, integer NOUT)

DCHKEQ

Purpose:

 DCHKEQ tests DGEEQU, DGBEQU, DPOEQU, DPPEQU and DPBEQU


 

Parameters:

THRESH

          THRESH is DOUBLE PRECISION
          Threshold for testing routines. Should be between 2 and 10.


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkgb (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, double precision, dimension( * ) A, integer LA, double precision, dimension( * ) AFAC, integer LAFAC, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKGB

Purpose:

 DCHKGB tests DGBTRF, -TRS, -RFS, and -CON


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NNB)
          The values of the blocksize NB.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


A

          A is DOUBLE PRECISION array, dimension (LA)


LA

          LA is INTEGER
          The length of the array A.  LA >= (KLMAX+KUMAX+1)*NMAX
          where KLMAX is the largest entry in the local array KLVAL,
                KUMAX is the largest entry in the local array KUVAL and
                NMAX is the largest entry in the input array NVAL.


AFAC

          AFAC is DOUBLE PRECISION array, dimension (LAFAC)


LAFAC

          LAFAC is INTEGER
          The length of the array AFAC. LAFAC >= (2*KLMAX+KUMAX+1)*NMAX
          where KLMAX is the largest entry in the local array KLVAL,
                KUMAX is the largest entry in the local array KUVAL and
                NMAX is the largest entry in the input array NVAL.


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX,NMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NSMAX))


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkge (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKGE

Purpose:

 DCHKGE tests DGETRF, -TRI, -TRS, -RFS, and -CON.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NBVAL)
          The values of the blocksize NB.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for M or N, used in dimensioning
          the work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(2*NMAX,2*NSMAX+NWORK))


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkgt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, double precision, dimension( * ) A, double precision, dimension( * ) AF, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKGT

Purpose:

 DCHKGT tests DGTTRF, -TRS, -RFS, and -CON


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


A

          A is DOUBLE PRECISION array, dimension (NMAX*4)


AF

          AF is DOUBLE PRECISION array, dimension (NMAX*4)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NSMAX))


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchklq (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AF, double precision, dimension( * ) AQ, double precision, dimension( * ) AL, double precision, dimension( * ) AC, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) TAU, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)

DCHKLQ

Purpose:

 DCHKLQ tests DGELQF, DORGLQ and DORMLQ.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB and NX contained in the
          vectors NBVAL and NXVAL.  The blocking parameters are used
          in pairs (NB,NX).


NBVAL

          NBVAL is INTEGER array, dimension (NNB)
          The values of the blocksize NB.


NXVAL

          NXVAL is INTEGER array, dimension (NNB)
          The values of the crossover point NX.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for M or N, used in dimensioning
          the work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AF

          AF is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AQ

          AQ is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AL

          AL is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AC

          AC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


TAU

          TAU is DOUBLE PRECISION array, dimension (NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension (NMAX*NMAX)


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkpb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKPB

Purpose:

 DCHKPB tests DPBTRF, -TRS, -RFS, and -CON.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NBVAL)
          The values of the blocksize NB.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NSMAX))


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkpo (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKPO

Purpose:

 DCHKPO tests DPOTRF, -TRI, -TRS, -RFS, and -CON


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NBVAL)
          The values of the blocksize NB.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NSMAX))


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkpp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKPP

Purpose:

 DCHKPP tests DPPTRF, -TRI, -TRS, -RFS, and -CON


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


AFAC

          AFAC is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


AINV

          AINV is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NSMAX))


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkps (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NRANK, integer, dimension( * ) RANKVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) PERM, integer, dimension( * ) PIV, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)

DCHKPS

Purpose:

 DCHKPS tests DPSTRF.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NBVAL)
          The values of the block size NB.


NRANK

          NRANK is INTEGER
          The number of values of RANK contained in the vector RANKVAL.


RANKVAL

          RANKVAL is INTEGER array, dimension (NBVAL)
          The values of the block size NB.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


PERM

          PERM is DOUBLE PRECISION array, dimension (NMAX*NMAX)


PIV

          PIV is INTEGER array, dimension (NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension (NMAX*3)


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkpt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, double precision, dimension( * ) A, double precision, dimension( * ) D, double precision, dimension( * ) E, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)

DCHKPT

Purpose:

 DCHKPT tests DPTTRF, -TRS, -RFS, and -CON


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


A

          A is DOUBLE PRECISION array, dimension (NMAX*2)


D

          D is DOUBLE PRECISION array, dimension (NMAX*2)


E

          E is DOUBLE PRECISION array, dimension (NMAX*2)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NSMAX))


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkq3 (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, double precision THRESH, double precision, dimension( * ) A, double precision, dimension( * ) COPYA, double precision, dimension( * ) S, double precision, dimension( * ) TAU, double precision, dimension( * ) WORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKQ3

Purpose:

 DCHKQ3 tests DGEQP3.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB and NX contained in the
          vectors NBVAL and NXVAL.  The blocking parameters are used
          in pairs (NB,NX).


NBVAL

          NBVAL is INTEGER array, dimension (NNB)
          The values of the blocksize NB.


NXVAL

          NXVAL is INTEGER array, dimension (NNB)
          The values of the crossover point NX.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


A

          A is DOUBLE PRECISION array, dimension (MMAX*NMAX)
          where MMAX is the maximum value of M in MVAL and NMAX is the
          maximum value of N in NVAL.


COPYA

          COPYA is DOUBLE PRECISION array, dimension (MMAX*NMAX)


S

          S is DOUBLE PRECISION array, dimension
                      (min(MMAX,NMAX))


TAU

          TAU is DOUBLE PRECISION array, dimension (MMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (MMAX*NMAX + 4*NMAX + MMAX)


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkql (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AF, double precision, dimension( * ) AQ, double precision, dimension( * ) AL, double precision, dimension( * ) AC, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) TAU, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)

DCHKQL

Purpose:

 DCHKQL tests DGEQLF, DORGQL and DORMQL.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB and NX contained in the
          vectors NBVAL and NXVAL.  The blocking parameters are used
          in pairs (NB,NX).


NBVAL

          NBVAL is INTEGER array, dimension (NNB)
          The values of the blocksize NB.


NXVAL

          NXVAL is INTEGER array, dimension (NNB)
          The values of the crossover point NX.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for M or N, used in dimensioning
          the work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AF

          AF is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AQ

          AQ is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AL

          AL is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AC

          AC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


TAU

          TAU is DOUBLE PRECISION array, dimension (NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension (NMAX*NMAX)


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine dchkqr (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AF, double precision, dimension( * ) AQ, double precision, dimension( * ) AR, double precision, dimension( * ) AC, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) TAU, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKQR

Purpose:

 DCHKQR tests DGEQRF, DORGQR and DORMQR.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB and NX contained in the
          vectors NBVAL and NXVAL.  The blocking parameters are used
          in pairs (NB,NX).


NBVAL

          NBVAL is INTEGER array, dimension (NNB)
          The values of the blocksize NB.


NXVAL

          NXVAL is INTEGER array, dimension (NNB)
          The values of the crossover point NX.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for M or N, used in dimensioning
          the work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AF

          AF is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AQ

          AQ is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AR

          AR is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AC

          AC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


TAU

          TAU is DOUBLE PRECISION array, dimension (NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension (NMAX*NMAX)


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX)


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine dchkqrt (double precision THRESH, logical TSTERR, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NOUT)

DCHKQRT

Purpose:

 DCHKQRT tests DGEQRT and DGEMQRT.


 

Parameters:

THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NBVAL)
          The values of the blocksize NB.


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchkqrtp (double precision THRESH, logical TSTERR, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NOUT)

DCHKQRTP

Purpose:

 DCHKQRTP tests DTPQRT and DTPMQRT.


 

Parameters:

THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NBVAL)
          The values of the blocksize NB.


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

program dchkrfp ()

DCHKRFP

Purpose:

 DCHKRFP is the main test program for the DOUBLE PRECISION linear
 equation routines with RFP storage format


 

  MAXIN   INTEGER
          The number of different values that can be used for each of
          M, N, or NB
  MAXRHS  INTEGER
          The maximum number of right hand sides
  NTYPES  INTEGER
  NMAX    INTEGER
          The maximum allowable value for N.
  NIN     INTEGER
          The unit number for input
  NOUT    INTEGER
          The unit number for output


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

April 2012

subroutine dchkrq (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AF, double precision, dimension( * ) AQ, double precision, dimension( * ) AR, double precision, dimension( * ) AC, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) TAU, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKRQ

Purpose:

 DCHKRQ tests DGERQF, DORGRQ and DORMRQ.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB and NX contained in the
          vectors NBVAL and NXVAL.  The blocking parameters are used
          in pairs (NB,NX).


NBVAL

          NBVAL is INTEGER array, dimension (NNB)
          The values of the blocksize NB.


NXVAL

          NXVAL is INTEGER array, dimension (NNB)
          The values of the crossover point NX.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for M or N, used in dimensioning
          the work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AF

          AF is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AQ

          AQ is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AR

          AR is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AC

          AC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


TAU

          TAU is DOUBLE PRECISION array, dimension (NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension (NMAX*NMAX)


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX)


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchksp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKSP

Purpose:

 DCHKSP tests DSPTRF, -TRI, -TRS, -RFS, and -CON


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


AFAC

          AFAC is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


AINV

          AINV is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(2,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array,
                                 dimension (NMAX+2*NSMAX)


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchksy (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKSY

Purpose:

 DCHKSY tests DSYTRF, -TRI2, -TRS, -TRS2, -RFS, and -CON.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NBVAL)
          The values of the blocksize NB.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

subroutine dchksy_rook (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKSY_ROOK

Purpose:

 DCHKSY_ROOK tests DSYTRF_ROOK, -TRI_ROOK, -TRS_ROOK,
 and -CON_ROOK.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NBVAL)
          The values of the blocksize NB.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine dchktb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) AB, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKTB

Purpose:

 DCHKTB tests DTBTRS, -RFS, and -CON, and DLATBS.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The leading dimension of the work arrays.
          NMAX >= the maximum value of N in NVAL.


AB

          AB is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NSMAX))


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchktp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) AP, double precision, dimension( * ) AINVP, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKTP

Purpose:

 DCHKTP tests DTPTRI, -TRS, -RFS, and -CON, and DLATPS


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The leading dimension of the work arrays.  NMAX >= the
          maximumm value of N in NVAL.


AP

          AP is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


AINVP

          AINVP is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


IWORK

          IWORK is INTEGER array, dimension (NMAX)


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NSMAX))


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchktr (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DCHKTR

Purpose:

 DCHKTR tests DTRTRI, -TRS, -RFS, and -CON, and DLATRS


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNB

          NNB is INTEGER
          The number of values of NB contained in the vector NBVAL.


NBVAL

          NBVAL is INTEGER array, dimension (NNB)
          The values of the blocksize NB.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The leading dimension of the work arrays.
          NMAX >= the maximum value of N in NVAL.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NSMAX))


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dchktz (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, double precision THRESH, logical TSTERR, double precision, dimension( * ) A, double precision, dimension( * ) COPYA, double precision, dimension( * ) S, double precision, dimension( * ) TAU, double precision, dimension( * ) WORK, integer NOUT)

DCHKTZ

Purpose:

 DCHKTZ tests DTZRZF.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


A

          A is DOUBLE PRECISION array, dimension (MMAX*NMAX)
          where MMAX is the maximum value of M in MVAL and NMAX is the
          maximum value of N in NVAL.


COPYA

          COPYA is DOUBLE PRECISION array, dimension (MMAX*NMAX)


S

          S is DOUBLE PRECISION array, dimension
                      (min(MMAX,NMAX))


TAU

          TAU is DOUBLE PRECISION array, dimension (MMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (MMAX*NMAX + 4*NMAX + MMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine ddrvab (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, real, dimension(*) SWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVAB

Purpose:

 DDRVAB tests DSGESV


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


NMAX

          NMAX is INTEGER
          The maximum value permitted for M or N, used in dimensioning
          the work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
          where NSMAX is the largest entry in NSVAL.


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(2*NMAX,2*NSMAX+NWORK))


SWORK

          SWORK is REAL array, dimension
                      (NMAX*(NSMAX+NMAX))


IWORK

          IWORK is INTEGER array, dimension
                      NMAX


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvac (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, real, dimension(*) SWORK, integer NOUT)

DDRVAC

Purpose:

 DDRVAC tests DSPOSV.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NM

          NM is INTEGER
          The number of values of N contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix dimension N.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NSMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NSMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(2*NMAX,2*NSMAX+NWORK))


SWORK

          SWORK is REAL array, dimension
                      (NMAX*(NSMAX+NMAX))


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvgb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, double precision, dimension( * ) A, integer LA, double precision, dimension( * ) AFB, integer LAFB, double precision, dimension( * ) ASAV, double precision, dimension( * ) B, double precision, dimension( * ) BSAV, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) S, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVGB DDRVGBX

Purpose:

 DDRVGB tests the driver routines DGBSV and -SVX.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


A

          A is DOUBLE PRECISION array, dimension (LA)


LA

          LA is INTEGER
          The length of the array A.  LA >= (2*NMAX-1)*NMAX
          where NMAX is the largest entry in NVAL.


AFB

          AFB is DOUBLE PRECISION array, dimension (LAFB)


LAFB

          LAFB is INTEGER
          The length of the array AFB.  LAFB >= (3*NMAX-2)*NMAX
          where NMAX is the largest entry in NVAL.


ASAV

          ASAV is DOUBLE PRECISION array, dimension (LA)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


BSAV

          BSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


S

          S is DOUBLE PRECISION array, dimension (2*NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS,NMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NRHS))


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

Purpose:

 DDRVGB tests the driver routines DGBSV, -SVX, and -SVXX.
 Note that this file is used only when the XBLAS are available,
 otherwise ddrvgb.f defines this subroutine.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


A

          A is DOUBLE PRECISION array, dimension (LA)


LA

          LA is INTEGER
          The length of the array A.  LA >= (2*NMAX-1)*NMAX
          where NMAX is the largest entry in NVAL.


AFB

          AFB is DOUBLE PRECISION array, dimension (LAFB)


LAFB

          LAFB is INTEGER
          The length of the array AFB.  LAFB >= (3*NMAX-2)*NMAX
          where NMAX is the largest entry in NVAL.


ASAV

          ASAV is DOUBLE PRECISION array, dimension (LA)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


BSAV

          BSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


S

          S is DOUBLE PRECISION array, dimension (2*NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS,NMAX))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NRHS))


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvge (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) ASAV, double precision, dimension( * ) B, double precision, dimension( * ) BSAV, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) S, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVGE DDRVGEX

Purpose:

 DDRVGE tests the driver routines DGESV and -SVX.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


ASAV

          ASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


BSAV

          BSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


S

          S is DOUBLE PRECISION array, dimension (2*NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (2*NRHS+NMAX)


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

Purpose:

 DDRVGE tests the driver routines DGESV, -SVX, and -SVXX.
 Note that this file is used only when the XBLAS are available,
 otherwise ddrvge.f defines this subroutine.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


ASAV

          ASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


BSAV

          BSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


S

          S is DOUBLE PRECISION array, dimension (2*NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (2*NRHS+NMAX)


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

April 2012

subroutine ddrvgt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, double precision, dimension( * ) A, double precision, dimension( * ) AF, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVGT

Purpose:

 DDRVGT tests DGTSV and -SVX.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand sides, NRHS >= 0.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


A

          A is DOUBLE PRECISION array, dimension (NMAX*4)


AF

          AF is DOUBLE PRECISION array, dimension (NMAX*4)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NRHS))


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvls (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, double precision THRESH, logical TSTERR, double precision, dimension( * ) A, double precision, dimension( * ) COPYA, double precision, dimension( * ) B, double precision, dimension( * ) COPYB, double precision, dimension( * ) C, double precision, dimension( * ) S, double precision, dimension( * ) COPYS, double precision, dimension( * ) WORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVLS

Purpose:

 DDRVLS tests the least squares driver routines DGELS, DGELSS, DGELSY,
 and DGELSD.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.
          The matrix of type j is generated as follows:
          j=1: A = U*D*V where U and V are random orthogonal matrices
               and D has random entries (> 0.1) taken from a uniform 
               distribution (0,1). A is full rank.
          j=2: The same of 1, but A is scaled up.
          j=3: The same of 1, but A is scaled down.
          j=4: A = U*D*V where U and V are random orthogonal matrices
               and D has 3*min(M,N)/4 random entries (> 0.1) taken
               from a uniform distribution (0,1) and the remaining
               entries set to 0. A is rank-deficient. 
          j=5: The same of 4, but A is scaled up.
          j=6: The same of 5, but A is scaled down.


NM

          NM is INTEGER
          The number of values of M contained in the vector MVAL.


MVAL

          MVAL is INTEGER array, dimension (NM)
          The values of the matrix row dimension M.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix column dimension N.


NNS

          NNS is INTEGER
          The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
          The values of the number of right hand sides NRHS.


NNB

          NNB is INTEGER
          The number of values of NB and NX contained in the
          vectors NBVAL and NXVAL.  The blocking parameters are used
          in pairs (NB,NX).


NBVAL

          NBVAL is INTEGER array, dimension (NNB)
          The values of the blocksize NB.


NXVAL

          NXVAL is INTEGER array, dimension (NNB)
          The values of the crossover point NX.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


A

          A is DOUBLE PRECISION array, dimension (MMAX*NMAX)
          where MMAX is the maximum value of M in MVAL and NMAX is the
          maximum value of N in NVAL.


COPYA

          COPYA is DOUBLE PRECISION array, dimension (MMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (MMAX*NSMAX)
          where MMAX is the maximum value of M in MVAL and NSMAX is the
          maximum value of NRHS in NSVAL.


COPYB

          COPYB is DOUBLE PRECISION array, dimension (MMAX*NSMAX)


C

          C is DOUBLE PRECISION array, dimension (MMAX*NSMAX)


S

          S is DOUBLE PRECISION array, dimension
                      (min(MMAX,NMAX))


COPYS

          COPYS is DOUBLE PRECISION array, dimension
                      (min(MMAX,NMAX))


WORK

          WORK is DOUBLE PRECISION array,
                      dimension (MMAX*NMAX + 4*NMAX + MMAX).


IWORK

          IWORK is INTEGER array, dimension (15*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine ddrvpb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) ASAV, double precision, dimension( * ) B, double precision, dimension( * ) BSAV, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) S, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVPB

Purpose:

 DDRVPB tests the driver routines DPBSV and -SVX.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


ASAV

          ASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


BSAV

          BSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


S

          S is DOUBLE PRECISION array, dimension (NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvpo (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) ASAV, double precision, dimension( * ) B, double precision, dimension( * ) BSAV, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) S, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVPO DDRVPOX

Purpose:

 DDRVPO tests the driver routines DPOSV and -SVX.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


ASAV

          ASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


BSAV

          BSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


S

          S is DOUBLE PRECISION array, dimension (NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

Purpose:

 DDRVPO tests the driver routines DPOSV, -SVX, and -SVXX.
 Note that this file is used only when the XBLAS are available,
 otherwise ddrvpo.f defines this subroutine.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


ASAV

          ASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


BSAV

          BSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


S

          S is DOUBLE PRECISION array, dimension (NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

subroutine ddrvpp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) ASAV, double precision, dimension( * ) B, double precision, dimension( * ) BSAV, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) S, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVPP

Purpose:

 DDRVPP tests the driver routines DPPSV and -SVX.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


AFAC

          AFAC is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


ASAV

          ASAV is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


BSAV

          BSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


S

          S is DOUBLE PRECISION array, dimension (NMAX)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)


IWORK

          IWORK is INTEGER array, dimension (NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvpt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, double precision, dimension( * ) A, double precision, dimension( * ) D, double precision, dimension( * ) E, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)

DDRVPT

Purpose:

 DDRVPT tests DPTSV and -SVX.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


A

          A is DOUBLE PRECISION array, dimension (NMAX*2)


D

          D is DOUBLE PRECISION array, dimension (NMAX*2)


E

          E is DOUBLE PRECISION array, dimension (NMAX*2)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(3,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension
                      (max(NMAX,2*NRHS))


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvrf1 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, double precision THRESH, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) ARF, double precision, dimension( * ) WORK)

DDRVRF1

Purpose:

 DDRVRF1 tests the LAPACK RFP routines:
     DLANSF


 

Parameters:

NOUT

          NOUT is INTEGER
                The unit number for output.


NN

          NN is INTEGER
                The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
                The values of the matrix dimension N.


THRESH

          THRESH is DOUBLE PRECISION
                The threshold value for the test ratios.  A result is
                included in the output file if RESULT >= THRESH.  To have
                every test ratio printed, use THRESH = 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,NMAX)


LDA

          LDA is INTEGER
                The leading dimension of the array A.  LDA >= max(1,NMAX).


ARF

          ARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).


WORK

          WORK is DOUBLE PRECISION array, dimension ( NMAX )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvrf2 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) ARF, double precision, dimension(*) AP, double precision, dimension( lda, * ) ASAV)

DDRVRF2

Purpose:

 DDRVRF2 tests the LAPACK RFP conversion routines.


 

Parameters:

NOUT

          NOUT is INTEGER
                The unit number for output.


NN

          NN is INTEGER
                The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
                The values of the matrix dimension N.


A

          A is DOUBLE PRECISION array, dimension (LDA,NMAX)


LDA

          LDA is INTEGER
                The leading dimension of the array A.  LDA >= max(1,NMAX).


ARF

          ARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).


AP

          AP is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).


ASAV

          ASAV is DOUBLE PRECISION array, dimension (LDA,NMAX)


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvrf3 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, double precision THRESH, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) ARF, double precision, dimension( lda, * ) B1, double precision, dimension( lda, * ) B2, double precision, dimension( * ) D_WORK_DLANGE, double precision, dimension( * ) D_WORK_DGEQRF, double precision, dimension( * ) TAU)

DDRVRF3

Purpose:

 DDRVRF3 tests the LAPACK RFP routines:
     DTFSM


 

Parameters:

NOUT

          NOUT is INTEGER
                The unit number for output.


NN

          NN is INTEGER
                The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
                The values of the matrix dimension N.


THRESH

          THRESH is DOUBLE PRECISION
                The threshold value for the test ratios.  A result is
                included in the output file if RESULT >= THRESH.  To have
                every test ratio printed, use THRESH = 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,NMAX)


LDA

          LDA is INTEGER
                The leading dimension of the array A.  LDA >= max(1,NMAX).


ARF

          ARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).


B1

          B1 is DOUBLE PRECISION array, dimension (LDA,NMAX)


B2

          B2 is DOUBLE PRECISION array, dimension (LDA,NMAX)


D_WORK_DLANGE

          D_WORK_DLANGE is DOUBLE PRECISION array, dimension (NMAX)


D_WORK_DGEQRF

          D_WORK_DGEQRF is DOUBLE PRECISION array, dimension (NMAX)


TAU

          TAU is DOUBLE PRECISION array, dimension (NMAX)


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvrf4 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, double precision THRESH, double precision, dimension( ldc, * ) C1, double precision, dimension( ldc, *) C2, integer LDC, double precision, dimension( * ) CRF, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) D_WORK_DLANGE)

DDRVRF4

Purpose:

 DDRVRF4 tests the LAPACK RFP routines:
     DSFRK


 

Parameters:

NOUT

          NOUT is INTEGER
                The unit number for output.


NN

          NN is INTEGER
                The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
                The values of the matrix dimension N.


THRESH

          THRESH is DOUBLE PRECISION
                The threshold value for the test ratios.  A result is
                included in the output file if RESULT >= THRESH.  To
                have every test ratio printed, use THRESH = 0.


C1

          C1 is DOUBLE PRECISION array,
                dimension (LDC,NMAX)


C2

          C2 is DOUBLE PRECISION array,
                dimension (LDC,NMAX)


LDC

          LDC is INTEGER
                The leading dimension of the array A.
                LDA >= max(1,NMAX).


CRF

          CRF is DOUBLE PRECISION array,
                dimension ((NMAX*(NMAX+1))/2).


A

          A is DOUBLE PRECISION array,
                dimension (LDA,NMAX)


LDA

          LDA is INTEGER
                The leading dimension of the array A.  LDA >= max(1,NMAX).


D_WORK_DLANGE

          D_WORK_DLANGE is DOUBLE PRECISION array, dimension (NMAX)


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvrfp (integer NOUT, integer NN, integer, dimension( nn ) NVAL, integer NNS, integer, dimension( nns ) NSVAL, integer NNT, integer, dimension( nnt ) NTVAL, double precision THRESH, double precision, dimension( * ) A, double precision, dimension( * ) ASAV, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) BSAV, double precision, dimension( * ) XACT, double precision, dimension( * ) X, double precision, dimension( * ) ARF, double precision, dimension( * ) ARFINV, double precision, dimension( * ) D_WORK_DLATMS, double precision, dimension( * ) D_WORK_DPOT01, double precision, dimension( * ) D_TEMP_DPOT02, double precision, dimension( * ) D_TEMP_DPOT03, double precision, dimension( * ) D_WORK_DLANSY, double precision, dimension( * ) D_WORK_DPOT02, double precision, dimension( * ) D_WORK_DPOT03)

DDRVRFP

Purpose:

 DDRVRFP tests the LAPACK RFP routines:
     DPFTRF, DPFTRS, and DPFTRI.
 This testing routine follow the same tests as DDRVPO (test for the full
 format Symmetric Positive Definite solver).
 The tests are performed in Full Format, conversion back and forth from
 full format to RFP format are performed using the routines DTRTTF and
 DTFTTR.
 First, a specific matrix A of size N is created. There is nine types of 
 different matrixes possible.
  1. Diagonal                        6. Random, CNDNUM = sqrt(0.1/EPS)
  2. Random, CNDNUM = 2              7. Random, CNDNUM = 0.1/EPS
 *3. First row and column zero       8. Scaled near underflow
 *4. Last row and column zero        9. Scaled near overflow
 *5. Middle row and column zero
 (* - tests error exits from DPFTRF, no test ratios are computed)
 A solution XACT of size N-by-NRHS is created and the associated right
 hand side B as well. Then DPFTRF is called to compute L (or U), the
 Cholesky factor of A. Then L (or U) is used to solve the linear system
 of equations AX = B. This gives X. Then L (or U) is used to compute the
 inverse of A, AINV. The following four tests are then performed:
 (1) norm( L*L' - A ) / ( N * norm(A) * EPS ) or
     norm( U'*U - A ) / ( N * norm(A) * EPS ),
 (2) norm(B - A*X) / ( norm(A) * norm(X) * EPS ),
 (3) norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ),
 (4) ( norm(X-XACT) * RCOND ) / ( norm(XACT) * EPS ),
 where EPS is the machine precision, RCOND the condition number of A, and
 norm( . ) the 1-norm for (1,2,3) and the inf-norm for (4).
 Errors occur when INFO parameter is not as expected. Failures occur when
 a test ratios is greater than THRES.


 

Parameters:

NOUT

          NOUT is INTEGER
                The unit number for output.


NN

          NN is INTEGER
                The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
                The values of the matrix dimension N.


NNS

          NNS is INTEGER
                The number of values of NRHS contained in the vector NSVAL.


NSVAL

          NSVAL is INTEGER array, dimension (NNS)
                The values of the number of right-hand sides NRHS.


NNT

          NNT is INTEGER
                The number of values of MATRIX TYPE contained in the vector NTVAL.


NTVAL

          NTVAL is INTEGER array, dimension (NNT)
                The values of matrix type (between 0 and 9 for PO/PP/PF matrices).


THRESH

          THRESH is DOUBLE PRECISION
                The threshold value for the test ratios.  A result is
                included in the output file if RESULT >= THRESH.  To have
                every test ratio printed, use THRESH = 0.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


ASAV

          ASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)


BSAV

          BSAV is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)


ARF

          ARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2)


ARFINV

          ARFINV is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2)


D_WORK_DLATMS

          D_WORK_DLATMS is DOUBLE PRECISION array, dimension ( 3*NMAX )


D_WORK_DPOT01

          D_WORK_DPOT01 is DOUBLE PRECISION array, dimension ( NMAX )


D_TEMP_DPOT02

          D_TEMP_DPOT02 is DOUBLE PRECISION array, dimension ( NMAX*MAXRHS )


D_TEMP_DPOT03

          D_TEMP_DPOT03 is DOUBLE PRECISION array, dimension ( NMAX*NMAX )


D_WORK_DLATMS

          D_WORK_DLATMS is DOUBLE PRECISION array, dimension ( NMAX )


D_WORK_DLANSY

          D_WORK_DLANSY is DOUBLE PRECISION array, dimension ( NMAX )


D_WORK_DPOT02

          D_WORK_DPOT02 is DOUBLE PRECISION array, dimension ( NMAX )


D_WORK_DPOT03

          D_WORK_DPOT03 is DOUBLE PRECISION array, dimension ( NMAX )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

subroutine ddrvsp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVSP

Purpose:

 DDRVSP tests the driver routines DSPSV and -SVX.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


AFAC

          AFAC is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


AINV

          AINV is DOUBLE PRECISION array, dimension
                      (NMAX*(NMAX+1)/2)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(2,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvsy (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVSY DDRVSYX

Purpose:

 DDRVSY tests the driver routines DSYSV and -SVX.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


WORK

          WORK is DOUBLE PRECISION array, dimension (NMAX*max(2,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

Purpose:

 DDRVSY tests the driver routines DSYSV, -SVX, and -SVXX.
 Note that this file is used only when the XBLAS are available,
 otherwise ddrvsy.f defines this subroutine.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


WORK

          WORK is DOUBLE PRECISION array, dimension
                      (NMAX*max(2,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine ddrvsy_rook (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) AINV, double precision, dimension( * ) B, double precision, dimension( * ) X, double precision, dimension( * ) XACT, double precision, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

DDRVSY_ROOK

Purpose:

 DDRVSY_ROOK tests the driver routines DSYSV_ROOK.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)


AINV

          AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)


B

          B is DOUBLE PRECISION array, dimension (NMAX*NRHS)


X

          X is DOUBLE PRECISION array, dimension (NMAX*NRHS)


XACT

          XACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)


WORK

          WORK is DOUBLE PRECISION array, dimension (NMAX*max(2,NRHS))


RWORK

          RWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

subroutine debchvxx (double precision THRESH, character*3 PATH)

DEBCHVXX

Purpose:

  DEBCHVXX will run D**SVXX on a series of Hilbert matrices and then
  compare the error bounds returned by D**SVXX to see if the returned
  answer indeed falls within those bounds.
  Eight test ratios will be computed.  The tests will pass if they are .LT.
  THRESH.  There are two cases that are determined by 1 / (SQRT( N ) * EPS).
  If that value is .LE. to the component wise reciprocal condition number,
  it uses the guaranteed case, other wise it uses the unguaranteed case.
  Test ratios:
     Let Xc be X_computed and Xt be X_truth.
     The norm used is the infinity norm.
     Let A be the guaranteed case and B be the unguaranteed case.
       1. Normwise guaranteed forward error bound.
       A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and
          ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS.
          If these conditions are met, the test ratio is set to be
          ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
       B: For this case, CGESVXX should just return 1.  If it is less than
          one, treat it the same as in 1A.  Otherwise it fails. (Set test
          ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
       2. Componentwise guaranteed forward error bound.
       A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i )
          for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS.
          If these conditions are met, the test ratio is set to be
          ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
       B: Same as normwise test ratio.
       3. Backwards error.
       A: The test ratio is set to BERR/EPS.
       B: Same test ratio.
       4. Reciprocal condition number.
       A: A condition number is computed with Xt and compared with the one
          returned from CGESVXX.  Let RCONDc be the RCOND returned by D**SVXX
          and RCONDt be the RCOND from the truth value.  Test ratio is set to
          MAX(RCONDc/RCONDt, RCONDt/RCONDc).
       B: Test ratio is set to 1 / (EPS * RCONDc).
       5. Reciprocal normwise condition number.
       A: The test ratio is set to
          MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
       B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
       6. Reciprocal componentwise condition number.
       A: Test ratio is set to
          MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
       B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).
     .. Parameters ..
     NMAX is determined by the largest number in the inverse of the hilbert
     matrix.  Precision is exhausted when the largest entry in it is greater
     than 2 to the power of the number of bits in the fraction of the data
     type used plus one, which is 24 for single precision.
     NMAX should be 6 for single and 11 for double.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrab (integer NUNIT)

DERRAB

Purpose:

 DERRAB tests the error exits for DSGESV.


 

Parameters:

NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrac (integer NUNIT)

DERRAC

Purpose:

 DERRAC tests the error exits for DSPOSV.


 

Parameters:

NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrge (character*3 PATH, integer NUNIT)

DERRGE DERRGEX

Purpose:

 DERRGE tests the error exits for the DOUBLE PRECISION routines
 for general matrices.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

Purpose:

 DERRGE tests the error exits for the DOUBLE PRECISION routines
 for general matrices.
 Note that this file is used only when the XBLAS are available,
 otherwise derrge.f defines this subroutine.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrgt (character*3 PATH, integer NUNIT)

DERRGT

Purpose:

 DERRGT tests the error exits for the DOUBLE PRECISION tridiagonal
 routines.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrlq (character*3 PATH, integer NUNIT)

DERRLQ

Purpose:

 DERRLQ tests the error exits for the DOUBLE PRECISION routines
 that use the LQ decomposition of a general matrix.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrls (character*3 PATH, integer NUNIT)

DERRLS

Purpose:

 DERRLS tests the error exits for the DOUBLE PRECISION least squares
 driver routines (DGELS, SGELSS, SGELSY, SGELSD).


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine derrpo (character*3 PATH, integer NUNIT)

DERRPO DERRPOX

Purpose:

 DERRPO tests the error exits for the DOUBLE PRECISION routines
 for symmetric positive definite matrices.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

Purpose:

 DERRPO tests the error exits for the DOUBLE PRECISION routines
 for symmetric positive definite matrices.
 Note that this file is used only when the XBLAS are available,
 otherwise derrpo.f defines this subroutine.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine derrps (character*3 PATH, integer NUNIT)

DERRPS

Purpose:

 DERRPS tests the error exits for the DOUBLE PRECISION routines
 for DPSTRF.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrql (character*3 PATH, integer NUNIT)

DERRQL

Purpose:

 DERRQL tests the error exits for the DOUBLE PRECISION routines
 that use the QL decomposition of a general matrix.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrqp (character*3 PATH, integer NUNIT)

DERRQP

Purpose:

 DERRQP tests the error exits for DGEQP3.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine derrqr (character*3 PATH, integer NUNIT)

DERRQR

Purpose:

 DERRQR tests the error exits for the DOUBLE PRECISION routines
 that use the QR decomposition of a general matrix.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrqrt (character*3 PATH, integer NUNIT)

DERRQRT

Purpose:

 DERRQRT tests the error exits for the DOUBLE PRECISION routines
 that use the QRT decomposition of a general matrix.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrqrtp (character*3 PATH, integer NUNIT)

DERRQRTP

Purpose:

 DERRQRTP tests the error exits for the REAL routines
 that use the QRT decomposition of a triangular-pentagonal matrix.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrrfp (integer NUNIT)

DERRRFP

Purpose:

 DERRRFP tests the error exits for the DOUBLE PRECISION driver routines
 for solving linear systems of equations.
 DDRVRFP tests the DOUBLE PRECISION LAPACK RFP routines:
     DTFSM, DTFTRI, DSFRK, DTFTTP, DTFTTR, DPFTRF, DPFTRS, DTPTTF,
     DTPTTR, DTRTTF, and DTRTTP


 

Parameters:

NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrrq (character*3 PATH, integer NUNIT)

DERRRQ

Purpose:

 DERRRQ tests the error exits for the DOUBLE PRECISION routines
 that use the RQ decomposition of a general matrix.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrsy (character*3 PATH, integer NUNIT)

DERRSY DERRSYX

Purpose:

 DERRSY tests the error exits for the DOUBLE PRECISION routines
 for symmetric indefinite matrices.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

Purpose:

 DERRSY tests the error exits for the DOUBLE PRECISION routines
 for symmetric indefinite matrices.
 Note that this file is used only when the XBLAS are available,
 otherwise derrsy.f defines this subroutine.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine derrtr (character*3 PATH, integer NUNIT)

DERRTR

Purpose:

 DERRTR tests the error exits for the DOUBLE PRECISION triangular
 routines.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine derrtz (character*3 PATH, integer NUNIT)

DERRTZ

Purpose:

 DERRTZ tests the error exits for STZRZF.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine derrvx (character*3 PATH, integer NUNIT)

DERRVX DERRVXX

Purpose:

 DERRVX tests the error exits for the DOUBLE PRECISION driver routines
 for solving linear systems of equations.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

April 2012

Purpose:

 DERRVX tests the error exits for the DOUBLE PRECISION driver routines
 for solving linear systems of equations.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.


NUNIT

          NUNIT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine dgbt01 (integer M, integer N, integer KL, integer KU, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, double precision, dimension( * ) WORK, double precision RESID)

DGBT01

Purpose:

 DGBT01 reconstructs a band matrix  A  from its L*U factorization and
 computes the residual:
    norm(L*U - A) / ( N * norm(A) * EPS ),
 where EPS is the machine epsilon.
 The expression L*U - A is computed one column at a time, so A and
 AFAC are not modified.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


KL

          KL is INTEGER
          The number of subdiagonals within the band of A.  KL >= 0.


KU

          KU is INTEGER
          The number of superdiagonals within the band of A.  KU >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original matrix A in band storage, stored in rows 1 to
          KL+KU+1.


LDA

          LDA is INTEGER.
          The leading dimension of the array A.  LDA >= max(1,KL+KU+1).


AFAC

          AFAC is DOUBLE PRECISION array, dimension (LDAFAC,N)
          The factored form of the matrix A.  AFAC contains the banded
          factors L and U from the L*U factorization, as computed by
          DGBTRF.  U is stored as an upper triangular band matrix with
          KL+KU superdiagonals in rows 1 to KL+KU+1, and the
          multipliers used during the factorization are stored in rows
          KL+KU+2 to 2*KL+KU+1.  See DGBTRF for further details.


LDAFAC

          LDAFAC is INTEGER
          The leading dimension of the array AFAC.
          LDAFAC >= max(1,2*KL*KU+1).


IPIV

          IPIV is INTEGER array, dimension (min(M,N))
          The pivot indices from DGBTRF.


WORK

          WORK is DOUBLE PRECISION array, dimension (2*KL+KU+1)


RESID

          RESID is DOUBLE PRECISION
          norm(L*U - A) / ( N * norm(A) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dgbt02 (character TRANS, integer M, integer N, integer KL, integer KU, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision RESID)

DGBT02

Purpose:

 DGBT02 computes the residual for a solution of a banded system of
 equations  A*x = b  or  A'*x = b:
    RESID = norm( B - A*X ) / ( norm(A) * norm(X) * EPS).
 where EPS is the machine precision.


 

Parameters:

TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations:
          = 'N':  A *x = b
          = 'T':  A'*x = b, where A' is the transpose of A
          = 'C':  A'*x = b, where A' is the transpose of A


M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


KL

          KL is INTEGER
          The number of subdiagonals within the band of A.  KL >= 0.


KU

          KU is INTEGER
          The number of superdiagonals within the band of A.  KU >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original matrix A in band storage, stored in rows 1 to
          KL+KU+1.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,KL+KU+1).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  If TRANS = 'N',
          LDX >= max(1,N); if TRANS = 'T' or 'C', LDX >= max(1,M).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the system of
          linear equations.
          On exit, B is overwritten with the difference B - A*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  IF TRANS = 'N',
          LDB >= max(1,M); if TRANS = 'T' or 'C', LDB >= max(1,N).


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(B - A*X) / ( norm(A) * norm(X) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dgbt05 (character TRANS, integer N, integer KL, integer KU, integer NRHS, double precision, dimension( ldab, * ) AB, integer LDAB, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DGBT05

Purpose:

 DGBT05 tests the error bounds from iterative refinement for the
 computed solution to a system of equations op(A)*X = B, where A is a
 general band matrix of order n with kl subdiagonals and ku
 superdiagonals and op(A) = A or A**T, depending on TRANS.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( NZ*EPS + (*) ), where
             (*) = NZ*UNFL / (min_i (abs(op(A))*abs(X) +abs(b))_i )
             and NZ = max. number of nonzeros in any row of A, plus 1


 

Parameters:

TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations.
          = 'N':  A * X = B     (No transpose)
          = 'T':  A**T * X = B  (Transpose)
          = 'C':  A**H * X = B  (Conjugate transpose = Transpose)


N

          N is INTEGER
          The number of rows of the matrices X, B, and XACT, and the
          order of the matrix A.  N >= 0.


KL

          KL is INTEGER
          The number of subdiagonals within the band of A.  KL >= 0.


KU

          KU is INTEGER
          The number of superdiagonals within the band of A.  KU >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X, B, and XACT.
          NRHS >= 0.


AB

          AB is DOUBLE PRECISION array, dimension (LDAB,N)
          The original band matrix A, stored in rows 1 to KL+KU+1.
          The j-th column of A is stored in the j-th column of the
          array AB as follows:
          AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(n,j+kl).


LDAB

          LDAB is INTEGER
          The leading dimension of the array AB.  LDAB >= KL+KU+1.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( NZ*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dgelqs (integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( lwork ) WORK, integer LWORK, integer INFO)

DGELQS

Purpose:

 Compute a minimum-norm solution
     min || A*X - B ||
 using the LQ factorization
     A = L*Q
 computed by DGELQF.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= M >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the LQ factorization of the original matrix A as
          returned by DGELQF.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= M.


TAU

          TAU is DOUBLE PRECISION array, dimension (M)
          Details of the orthogonal matrix Q.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the m-by-nrhs right hand side matrix B.
          On exit, the n-by-nrhs solution matrix X.


LDB

          LDB is INTEGER
          The leading dimension of the array B. LDB >= N.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of the array WORK.  LWORK must be at least NRHS,
          and should be at least NRHS*NB, where NB is the block size
          for this environment.


INFO

          INFO is INTEGER
          = 0: successful exit
          < 0: if INFO = -i, the i-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

logical function dgennd (integer M, integer N, double precision, dimension( lda, * ) A, integer LDA)

DGENND

Purpose:

    DGENND tests that its argument has a non-negative diagonal.


 

Parameters:

M

          M is INTEGER
          The number of rows in A.


N

          N is INTEGER
          The number of columns in A.


A

          A is DOUBLE PRECISION array, dimension (LDA, N)
          The matrix.


LDA

          LDA is INTEGER
          Leading dimension of A.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dgeqls (integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( lwork ) WORK, integer LWORK, integer INFO)

DGEQLS

Purpose:

 Solve the least squares problem
     min || A*X - B ||
 using the QL factorization
     A = Q*L
 computed by DGEQLF.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  M >= N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the QL factorization of the original matrix A as
          returned by DGEQLF.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= M.


TAU

          TAU is DOUBLE PRECISION array, dimension (N)
          Details of the orthogonal matrix Q.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the m-by-nrhs right hand side matrix B.
          On exit, the n-by-nrhs solution matrix X, stored in rows
          m-n+1:m.


LDB

          LDB is INTEGER
          The leading dimension of the array B. LDB >= M.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of the array WORK.  LWORK must be at least NRHS,
          and should be at least NRHS*NB, where NB is the block size
          for this environment.


INFO

          INFO is INTEGER
          = 0: successful exit
          < 0: if INFO = -i, the i-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dgeqrs (integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( lwork ) WORK, integer LWORK, integer INFO)

DGEQRS

Purpose:

 Solve the least squares problem
     min || A*X - B ||
 using the QR factorization
     A = Q*R
 computed by DGEQRF.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  M >= N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the QR factorization of the original matrix A as
          returned by DGEQRF.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= M.


TAU

          TAU is DOUBLE PRECISION array, dimension (N)
          Details of the orthogonal matrix Q.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the m-by-nrhs right hand side matrix B.
          On exit, the n-by-nrhs solution matrix X.


LDB

          LDB is INTEGER
          The leading dimension of the array B. LDB >= M.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of the array WORK.  LWORK must be at least NRHS,
          and should be at least NRHS*NB, where NB is the block size
          for this environment.


INFO

          INFO is INTEGER
          = 0: successful exit
          < 0: if INFO = -i, the i-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dgerqs (integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( lwork ) WORK, integer LWORK, integer INFO)

DGERQS

Purpose:

 Compute a minimum-norm solution
     min || A*X - B ||
 using the RQ factorization
     A = R*Q
 computed by DGERQF.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= M >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the RQ factorization of the original matrix A as
          returned by DGERQF.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= M.


TAU

          TAU is DOUBLE PRECISION array, dimension (M)
          Details of the orthogonal matrix Q.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the linear system.
          On exit, the solution vectors X.  Each solution vector
          is contained in rows 1:N of a column of B.


LDB

          LDB is INTEGER
          The leading dimension of the array B. LDB >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of the array WORK.  LWORK must be at least NRHS,
          and should be at least NRHS*NB, where NB is the block size
          for this environment.


INFO

          INFO is INTEGER
          = 0: successful exit
          < 0: if INFO = -i, the i-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dget01 (integer M, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, double precision, dimension( * ) RWORK, double precision RESID)

DGET01

Purpose:

 DGET01 reconstructs a matrix A from its L*U factorization and
 computes the residual
    norm(L*U - A) / ( N * norm(A) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original M x N matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,M).


AFAC

          AFAC is DOUBLE PRECISION array, dimension (LDAFAC,N)
          The factored form of the matrix A.  AFAC contains the factors
          L and U from the L*U factorization as computed by DGETRF.
          Overwritten with the reconstructed matrix, and then with the
          difference L*U - A.


LDAFAC

          LDAFAC is INTEGER
          The leading dimension of the array AFAC.  LDAFAC >= max(1,M).


IPIV

          IPIV is INTEGER array, dimension (N)
          The pivot indices from DGETRF.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESID

          RESID is DOUBLE PRECISION
          norm(L*U - A) / ( N * norm(A) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dget02 (character TRANS, integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)

DGET02

Purpose:

 DGET02 computes the residual for a solution of a system of linear
 equations  A*x = b  or  A'*x = b:
    RESID = norm(B - A*X) / ( norm(A) * norm(X) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations:
          = 'N':  A *x = b
          = 'T':  A'*x = b, where A' is the transpose of A
          = 'C':  A'*x = b, where A' is the transpose of A


M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B, the matrix of right hand sides.
          NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original M x N matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,M).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  If TRANS = 'N',
          LDX >= max(1,N); if TRANS = 'T' or 'C', LDX >= max(1,M).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the system of
          linear equations.
          On exit, B is overwritten with the difference B - A*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  IF TRANS = 'N',
          LDB >= max(1,M); if TRANS = 'T' or 'C', LDB >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(B - A*X) / ( norm(A) * norm(X) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine dget03 (integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldainv, * ) AINV, integer LDAINV, double precision, dimension( ldwork, * ) WORK, integer LDWORK, double precision, dimension( * ) RWORK, double precision RCOND, double precision RESID)

DGET03

Purpose:

 DGET03 computes the residual for a general matrix times its inverse:
    norm( I - AINV*A ) / ( N * norm(A) * norm(AINV) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original N x N matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


AINV

          AINV is DOUBLE PRECISION array, dimension (LDAINV,N)
          The inverse of the matrix A.


LDAINV

          LDAINV is INTEGER
          The leading dimension of the array AINV.  LDAINV >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (LDWORK,N)


LDWORK

          LDWORK is INTEGER
          The leading dimension of the array WORK.  LDWORK >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RCOND

          RCOND is DOUBLE PRECISION
          The reciprocal of the condition number of A, computed as
          ( 1/norm(A) ) / norm(AINV).


RESID

          RESID is DOUBLE PRECISION
          norm(I - AINV*A) / ( N * norm(A) * norm(AINV) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dget04 (integer N, integer NRHS, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision RCOND, double precision RESID)

DGET04

Purpose:

 DGET04 computes the difference between a computed solution and the
 true solution to a system of linear equations.
 RESID =  ( norm(X-XACT) * RCOND ) / ( norm(XACT) * EPS ),
 where RCOND is the reciprocal of the condition number and EPS is the
 machine epsilon.


 

Parameters:

N

          N is INTEGER
          The number of rows of the matrices X and XACT.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X and XACT.  NRHS >= 0.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension( LDX, NRHS )
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


RCOND

          RCOND is DOUBLE PRECISION
          The reciprocal of the condition number of the coefficient
          matrix in the system of equations.


RESID

          RESID is DOUBLE PRECISION
          The maximum over the NRHS solution vectors of
          ( norm(X-XACT) * RCOND ) / ( norm(XACT) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

double precision function dget06 (double precision RCOND, double precision RCONDC)

DGET06

Purpose:

 DGET06 computes a test ratio to compare two values for RCOND.


 

Parameters:

RCOND

          RCOND is DOUBLE PRECISION
          The estimate of the reciprocal of the condition number of A,
          as computed by DGECON.


RCONDC

          RCONDC is DOUBLE PRECISION
          The reciprocal of the condition number of A, computed as
          ( 1/norm(A) ) / norm(inv(A)).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dget07 (character TRANS, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, logical CHKFERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DGET07

Purpose:

 DGET07 tests the error bounds from iterative refinement for the
 computed solution to a system of equations op(A)*X = B, where A is a
 general n by n matrix and op(A) = A or A**T, depending on TRANS.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( (n+1)*EPS + (*) ), where
             (*) = (n+1)*UNFL / (min_i (abs(op(A))*abs(X) +abs(b))_i )


 

Parameters:

TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations.
          = 'N':  A * X = B     (No transpose)
          = 'T':  A**T * X = B  (Transpose)
          = 'C':  A**H * X = B  (Conjugate transpose = Transpose)


N

          N is INTEGER
          The number of rows of the matrices X and XACT.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X and XACT.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original n by n matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


CHKFERR

          CHKFERR is LOGICAL
          Set to .TRUE. to check FERR, .FALSE. not to check FERR.
          When the test system is ill-conditioned, the "true"
          solution in XACT may be incorrect.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( (n+1)*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dget08 (character TRANS, integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)

DGET08

Purpose:

 DGET08 computes the residual for a solution of a system of linear
 equations  A*x = b  or  A'*x = b:
    RESID = norm(B - A*X,inf) / ( norm(A,inf) * norm(X,inf) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations:
          = 'N':  A *x = b
          = 'T':  A'*x = b, where A' is the transpose of A
          = 'C':  A'*x = b, where A' is the transpose of A


M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B, the matrix of right hand sides.
          NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original M x N matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,M).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  If TRANS = 'N',
          LDX >= max(1,N); if TRANS = 'T' or 'C', LDX >= max(1,M).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the system of
          linear equations.
          On exit, B is overwritten with the difference B - A*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  IF TRANS = 'N',
          LDB >= max(1,M); if TRANS = 'T' or 'C', LDB >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(B - A*X) / ( norm(A) * norm(X) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dgtt01 (integer N, double precision, dimension( * ) DL, double precision, dimension( * ) D, double precision, dimension( * ) DU, double precision, dimension( * ) DLF, double precision, dimension( * ) DF, double precision, dimension( * ) DUF, double precision, dimension( * ) DU2, integer, dimension( * ) IPIV, double precision, dimension( ldwork, * ) WORK, integer LDWORK, double precision, dimension( * ) RWORK, double precision RESID)

DGTT01

Purpose:

 DGTT01 reconstructs a tridiagonal matrix A from its LU factorization
 and computes the residual
    norm(L*U - A) / ( norm(A) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

N

          N is INTEGTER
          The order of the matrix A.  N >= 0.


DL

          DL is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) sub-diagonal elements of A.


D

          D is DOUBLE PRECISION array, dimension (N)
          The diagonal elements of A.


DU

          DU is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) super-diagonal elements of A.


DLF

          DLF is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) multipliers that define the matrix L from the
          LU factorization of A.


DF

          DF is DOUBLE PRECISION array, dimension (N)
          The n diagonal elements of the upper triangular matrix U from
          the LU factorization of A.


DUF

          DUF is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) elements of the first super-diagonal of U.


DU2

          DU2 is DOUBLE PRECISION array, dimension (N-2)
          The (n-2) elements of the second super-diagonal of U.


IPIV

          IPIV is INTEGER array, dimension (N)
          The pivot indices; for 1 <= i <= n, row i of the matrix was
          interchanged with row IPIV(i).  IPIV(i) will always be either
          i or i+1; IPIV(i) = i indicates a row interchange was not
          required.


WORK

          WORK is DOUBLE PRECISION array, dimension (LDWORK,N)


LDWORK

          LDWORK is INTEGER
          The leading dimension of the array WORK.  LDWORK >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The scaled residual:  norm(L*U - A) / (norm(A) * EPS)


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dgtt02 (character TRANS, integer N, integer NRHS, double precision, dimension( * ) DL, double precision, dimension( * ) D, double precision, dimension( * ) DU, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision RESID)

DGTT02

Purpose:

 DGTT02 computes the residual for the solution to a tridiagonal
 system of equations:
    RESID = norm(B - op(A)*X) / (norm(A) * norm(X) * EPS),
 where EPS is the machine epsilon.


 

Parameters:

TRANS

          TRANS is CHARACTER
          Specifies the form of the residual.
          = 'N':  B - A * X  (No transpose)
          = 'T':  B - A'* X  (Transpose)
          = 'C':  B - A'* X  (Conjugate transpose = Transpose)


N

          N is INTEGTER
          The order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrices B and X.  NRHS >= 0.


DL

          DL is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) sub-diagonal elements of A.


D

          D is DOUBLE PRECISION array, dimension (N)
          The diagonal elements of A.


DU

          DU is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) super-diagonal elements of A.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the system of
          linear equations.
          On exit, B is overwritten with the difference B - op(A)*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


RESID

          RESID is DOUBLE PRECISION
          norm(B - op(A)*X) / (norm(A) * norm(X) * EPS)


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dgtt05 (character TRANS, integer N, integer NRHS, double precision, dimension( * ) DL, double precision, dimension( * ) D, double precision, dimension( * ) DU, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DGTT05

Purpose:

 DGTT05 tests the error bounds from iterative refinement for the
 computed solution to a system of equations A*X = B, where A is a
 general tridiagonal matrix of order n and op(A) = A or A**T,
 depending on TRANS.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( NZ*EPS + (*) ), where
             (*) = NZ*UNFL / (min_i (abs(op(A))*abs(X) +abs(b))_i )
             and NZ = max. number of nonzeros in any row of A, plus 1


 

Parameters:

TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations.
          = 'N':  A * X = B     (No transpose)
          = 'T':  A**T * X = B  (Transpose)
          = 'C':  A**H * X = B  (Conjugate transpose = Transpose)


N

          N is INTEGER
          The number of rows of the matrices X and XACT.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X and XACT.  NRHS >= 0.


DL

          DL is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) sub-diagonal elements of A.


D

          D is DOUBLE PRECISION array, dimension (N)
          The diagonal elements of A.


DU

          DU is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) super-diagonal elements of A.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( NZ*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlahilb (integer N, integer NRHS, double precision, dimension(lda, n) A, integer LDA, double precision, dimension(ldx, nrhs) X, integer LDX, double precision, dimension(ldb, nrhs) B, integer LDB, double precision, dimension(n) WORK, integer INFO)

DLAHILB

Purpose:

 DLAHILB generates an N by N scaled Hilbert matrix in A along with
 NRHS right-hand sides in B and solutions in X such that A*X=B.
 The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
 entries are integers.  The right-hand sides are the first NRHS 
 columns of M * the identity matrix, and the solutions are the 
 first NRHS columns of the inverse Hilbert matrix.
 The condition number of the Hilbert matrix grows exponentially with
 its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
 Hilbert matrices beyond a relatively small dimension cannot be
 generated exactly without extra precision.  Precision is exhausted
 when the largest entry in the inverse Hilbert matrix is greater than
 2 to the power of the number of bits in the fraction of the data type
 used plus one, which is 24 for single precision.  
 In single, the generated solution is exact for N <= 6 and has
 small componentwise error for 7 <= N <= 11.


 

Parameters:

N

          N is INTEGER
          The dimension of the matrix A.


NRHS

          NRHS is NRHS
          The requested number of right-hand sides.


A

          A is DOUBLE PRECISION array, dimension (LDA, N)
          The generated scaled Hilbert matrix.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= N.


X

          X is DOUBLE PRECISION array, dimension (LDX, NRHS)
          The generated exact solutions.  Currently, the first NRHS
          columns of the inverse Hilbert matrix.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= N.


B

          B is DOUBLE PRECISION array, dimension (LDB, NRHS)
          The generated right-hand sides.  Currently, the first NRHS
          columns of LCM(1, 2, ..., 2*N-1) * the identity matrix.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= N.


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


INFO

          INFO is INTEGER
          = 0: successful exit
          = 1: N is too large; the data is still generated but may not
               be not exact.
          < 0: if INFO = -i, the i-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlaord (character JOB, integer N, double precision, dimension( * ) X, integer INCX)

DLAORD

Purpose:

 DLAORD sorts the elements of a vector x in increasing or decreasing
 order.


 

Parameters:

JOB

          JOB is CHARACTER
          = 'I':  Sort in increasing order
          = 'D':  Sort in decreasing order


N

          N is INTEGER
          The length of the vector X.


X

          X is DOUBLE PRECISION array, dimension
                         (1+(N-1)*INCX)
          On entry, the vector of length n to be sorted.
          On exit, the vector x is sorted in the prescribed order.


INCX

          INCX is INTEGER
          The spacing between successive elements of X.  INCX >= 0.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlaptm (integer N, integer NRHS, double precision ALPHA, double precision, dimension( * ) D, double precision, dimension( * ) E, double precision, dimension( ldx, * ) X, integer LDX, double precision BETA, double precision, dimension( ldb, * ) B, integer LDB)

DLAPTM

Purpose:

 DLAPTM multiplies an N by NRHS matrix X by a symmetric tridiagonal
 matrix A and stores the result in a matrix B.  The operation has the
 form
    B := alpha * A * X + beta * B
 where alpha may be either 1. or -1. and beta may be 0., 1., or -1.


 

Parameters:

N

          N is INTEGER
          The order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrices X and B.


ALPHA

          ALPHA is DOUBLE PRECISION
          The scalar alpha.  ALPHA must be 1. or -1.; otherwise,
          it is assumed to be 0.


D

          D is DOUBLE PRECISION array, dimension (N)
          The n diagonal elements of the tridiagonal matrix A.


E

          E is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) subdiagonal or superdiagonal elements of A.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The N by NRHS matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(N,1).


BETA

          BETA is DOUBLE PRECISION
          The scalar beta.  BETA must be 0., 1., or -1.; otherwise,
          it is assumed to be 1.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the N by NRHS matrix B.
          On exit, B is overwritten by the matrix expression
          B := alpha * A * X + beta * B.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(N,1).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlarhs (character*3 PATH, character XTYPE, character UPLO, character TRANS, integer M, integer N, integer KL, integer KU, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, integer, dimension( 4 ) ISEED, integer INFO)

DLARHS

Purpose:

 DLARHS chooses a set of NRHS random solution vectors and sets
 up the right hand sides for the linear system
    op( A ) * X = B,
 where op( A ) may be A or A' (transpose of A).


 

Parameters:

PATH

          PATH is CHARACTER*3
          The type of the real matrix A.  PATH may be given in any
          combination of upper and lower case.  Valid types include
             xGE:  General m x n matrix
             xGB:  General banded matrix
             xPO:  Symmetric positive definite, 2-D storage
             xPP:  Symmetric positive definite packed
             xPB:  Symmetric positive definite banded
             xSY:  Symmetric indefinite, 2-D storage
             xSP:  Symmetric indefinite packed
             xSB:  Symmetric indefinite banded
             xTR:  Triangular
             xTP:  Triangular packed
             xTB:  Triangular banded
             xQR:  General m x n matrix
             xLQ:  General m x n matrix
             xQL:  General m x n matrix
             xRQ:  General m x n matrix
          where the leading character indicates the precision.


XTYPE

          XTYPE is CHARACTER*1
          Specifies how the exact solution X will be determined:
          = 'N':  New solution; generate a random X.
          = 'C':  Computed; use value of X on entry.


UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          matrix A is stored, if A is symmetric.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation applied to the matrix A.
          = 'N':  System is  A * x = b
          = 'T':  System is  A'* x = b
          = 'C':  System is  A'* x = b


M

          M is INTEGER
          The number or rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


KL

          KL is INTEGER
          Used only if A is a band matrix; specifies the number of
          subdiagonals of A if A is a general band matrix or if A is
          symmetric or triangular and UPLO = 'L'; specifies the number
          of superdiagonals of A if A is symmetric or triangular and
          UPLO = 'U'.  0 <= KL <= M-1.


KU

          KU is INTEGER
          Used only if A is a general band matrix or if A is
          triangular.
          If PATH = xGB, specifies the number of superdiagonals of A,
          and 0 <= KU <= N-1.
          If PATH = xTR, xTP, or xTB, specifies whether or not the
          matrix has unit diagonal:
          = 1:  matrix has non-unit diagonal (default)
          = 2:  matrix has unit diagonal


NRHS

          NRHS is INTEGER
          The number of right hand side vectors in the system A*X = B.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The test matrix whose type is given by PATH.


LDA

          LDA is INTEGER
          The leading dimension of the array A.
          If PATH = xGB, LDA >= KL+KU+1.
          If PATH = xPB, xSB, xHB, or xTB, LDA >= KL+1.
          Otherwise, LDA >= max(1,M).


X

          X is or output) DOUBLE PRECISION array, dimension(LDX,NRHS)
          On entry, if XTYPE = 'C' (for 'Computed'), then X contains
          the exact solution to the system of linear equations.
          On exit, if XTYPE = 'N' (for 'New'), then X is initialized
          with random values.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  If TRANS = 'N',
          LDX >= max(1,N); if TRANS = 'T', LDX >= max(1,M).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vector(s) for the system of equations,
          computed from B = op(A) * X, where op(A) is determined by
          TRANS.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  If TRANS = 'N',
          LDB >= max(1,M); if TRANS = 'T', LDB >= max(1,N).


ISEED

          ISEED is INTEGER array, dimension (4)
          The seed vector for the random number generator (used in
          DLATMS).  Modified on exit.


INFO

          INFO is INTEGER
          = 0: successful exit
          < 0: if INFO = -i, the i-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlatb4 (character*3 PATH, integer IMAT, integer M, integer N, character TYPE, integer KL, integer KU, double precision ANORM, integer MODE, double precision CNDNUM, character DIST)

DLATB4

Purpose:

 DLATB4 sets parameters for the matrix generator based on the type of
 matrix to be generated.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name.


IMAT

          IMAT is INTEGER
          An integer key describing which matrix to generate for this
          path.


M

          M is INTEGER
          The number of rows in the matrix to be generated.


N

          N is INTEGER
          The number of columns in the matrix to be generated.


TYPE

          TYPE is CHARACTER*1
          The type of the matrix to be generated:
          = 'S':  symmetric matrix
          = 'P':  symmetric positive (semi)definite matrix
          = 'N':  nonsymmetric matrix


KL

          KL is INTEGER
          The lower band width of the matrix to be generated.


KU

          KU is INTEGER
          The upper band width of the matrix to be generated.


ANORM

          ANORM is DOUBLE PRECISION
          The desired norm of the matrix to be generated.  The diagonal
          matrix of singular values or eigenvalues is scaled by this
          value.


MODE

          MODE is INTEGER
          A key indicating how to choose the vector of eigenvalues.


CNDNUM

          CNDNUM is DOUBLE PRECISION
          The desired condition number.


DIST

          DIST is CHARACTER*1
          The type of distribution to be used by the random number
          generator.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlatb5 (character*3 PATH, integer IMAT, integer N, character TYPE, integer KL, integer KU, double precision ANORM, integer MODE, double precision CNDNUM, character DIST)

DLATB5

Purpose:

 DLATB5 sets parameters for the matrix generator based on the type
 of matrix to be generated.


 

Parameters:

PATH

          PATH is CHARACTER*3
          The LAPACK path name.


IMAT

          IMAT is INTEGER
          An integer key describing which matrix to generate for this
          path.


N

          N is INTEGER
          The number of rows and columns in the matrix to be generated.


TYPE

          TYPE is CHARACTER*1
          The type of the matrix to be generated:
          = 'S':  symmetric matrix
          = 'P':  symmetric positive (semi)definite matrix
          = 'N':  nonsymmetric matrix


KL

          KL is INTEGER
          The lower band width of the matrix to be generated.


KU

          KU is INTEGER
          The upper band width of the matrix to be generated.


ANORM

          ANORM is DOUBLE PRECISION
          The desired norm of the matrix to be generated.  The diagonal
          matrix of singular values or eigenvalues is scaled by this
          value.


MODE

          MODE is INTEGER
          A key indicating how to choose the vector of eigenvalues.


CNDNUM

          CNDNUM is DOUBLE PRECISION
          The desired condition number.


DIST

          DIST is CHARACTER*1
          The type of distribution to be used by the random number
          generator.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlattb (integer IMAT, character UPLO, character TRANS, character DIAG, integer, dimension( 4 ) ISEED, integer N, integer KD, double precision, dimension( ldab, * ) AB, integer LDAB, double precision, dimension( * ) B, double precision, dimension( * ) WORK, integer INFO)

DLATTB

Purpose:

 DLATTB generates a triangular test matrix in 2-dimensional storage.
 IMAT and UPLO uniquely specify the properties of the test matrix,
 which is returned in the array A.


 

Parameters:

IMAT

          IMAT is INTEGER
          An integer key describing which matrix to generate for this
          path.


UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A will be upper or lower
          triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies whether the matrix or its transpose will be used.
          = 'N':  No transpose
          = 'T':  Transpose
          = 'C':  Conjugate transpose (= transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


ISEED

          ISEED is INTEGER array, dimension (4)
          The seed vector for the random number generator (used in
          DLATMS).  Modified on exit.


N

          N is INTEGER
          The order of the matrix to be generated.


KD

          KD is INTEGER
          The number of superdiagonals or subdiagonals of the banded
          triangular matrix A.  KD >= 0.


AB

          AB is DOUBLE PRECISION array, dimension (LDAB,N)
          The upper or lower triangular banded matrix A, stored in the
          first KD+1 rows of AB.  Let j be a column of A, 1<=j<=n.
          If UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j.
          If UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).


LDAB

          LDAB is INTEGER
          The leading dimension of the array AB.  LDAB >= KD+1.


B

          B is DOUBLE PRECISION array, dimension (N)


WORK

          WORK is DOUBLE PRECISION array, dimension (2*N)


INFO

          INFO is INTEGER
          = 0:  successful exit
          < 0: if INFO = -k, the k-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlattp (integer IMAT, character UPLO, character TRANS, character DIAG, integer, dimension( 4 ) ISEED, integer N, double precision, dimension( * ) A, double precision, dimension( * ) B, double precision, dimension( * ) WORK, integer INFO)

DLATTP

Purpose:

 DLATTP generates a triangular test matrix in packed storage.
 IMAT and UPLO uniquely specify the properties of the test
 matrix, which is returned in the array AP.


 

Parameters:

IMAT

          IMAT is INTEGER
          An integer key describing which matrix to generate for this
          path.


UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A will be upper or lower
          triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies whether the matrix or its transpose will be used.
          = 'N':  No transpose
          = 'T':  Transpose
          = 'C':  Conjugate transpose (= Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


ISEED

          ISEED is INTEGER array, dimension (4)
          The seed vector for the random number generator (used in
          DLATMS).  Modified on exit.


N

          N is INTEGER
          The order of the matrix to be generated.


A

          A is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The upper or lower triangular matrix A, packed columnwise in
          a linear array.  The j-th column of A is stored in the array
          AP as follows:
          if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j;
          if UPLO = 'L',
             AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n.


B

          B is DOUBLE PRECISION array, dimension (N)
          The right hand side vector, if IMAT > 10.


WORK

          WORK is DOUBLE PRECISION array, dimension (3*N)


INFO

          INFO is INTEGER
          = 0:  successful exit
          < 0: if INFO = -k, the k-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlattr (integer IMAT, character UPLO, character TRANS, character DIAG, integer, dimension( 4 ) ISEED, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) B, double precision, dimension( * ) WORK, integer INFO)

DLATTR

Purpose:

 DLATTR generates a triangular test matrix.
 IMAT and UPLO uniquely specify the properties of the test
 matrix, which is returned in the array A.


 

Parameters:

IMAT

          IMAT is INTEGER
          An integer key describing which matrix to generate for this
          path.


UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A will be upper or lower
          triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies whether the matrix or its transpose will be used.
          = 'N':  No transpose
          = 'T':  Transpose
          = 'C':  Conjugate transpose (= Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


ISEED

          ISEED is INTEGER array, dimension (4)
          The seed vector for the random number generator (used in
          DLATMS).  Modified on exit.


N

          N is INTEGER
          The order of the matrix to be generated.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The triangular matrix A.  If UPLO = 'U', the leading n by n
          upper triangular part of the array A contains the upper
          triangular matrix, and the strictly lower triangular part of
          A is not referenced.  If UPLO = 'L', the leading n by n lower
          triangular part of the array A contains the lower triangular
          matrix, and the strictly upper triangular part of A is not
          referenced.  If DIAG = 'U', the diagonal elements of A are
          set so that A(k,k) = k for 1 <= k <= n.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (N)
          The right hand side vector, if IMAT > 10.


WORK

          WORK is DOUBLE PRECISION array, dimension (3*N)


INFO

          INFO is INTEGER
          = 0:  successful exit
          < 0: if INFO = -k, the k-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlavsp (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, double precision, dimension( * ) A, integer, dimension( * ) IPIV, double precision, dimension( ldb, * ) B, integer LDB, integer INFO)

DLAVSP

Purpose:

 DLAVSP  performs one of the matrix-vector operations
    x := A*x  or  x := A'*x,
 where x is an N element vector and  A is one of the factors
 from the block U*D*U' or L*D*L' factorization computed by DSPTRF.
 If TRANS = 'N', multiplies by U  or U * D  (or L  or L * D)
 If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L' )
 If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L' )


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the factor stored in A is upper or lower
          triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation to be performed:
          = 'N':  x := A*x
          = 'T':  x := A'*x
          = 'C':  x := A'*x


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the diagonal blocks are unit
          matrices.  If the diagonal blocks are assumed to be unit,
          then A = U or A = L, otherwise A = U*D or A = L*D.
          = 'U':  Diagonal blocks are assumed to be unit matrices.
          = 'N':  Diagonal blocks are assumed to be non-unit matrices.


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of vectors
          x to be multiplied by A.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The block diagonal matrix D and the multipliers used to
          obtain the factor U or L, stored as a packed triangular
          matrix as computed by DSPTRF.


IPIV

          IPIV is INTEGER array, dimension (N)
          The pivot indices from DSPTRF.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, B contains NRHS vectors of length N.
          On exit, B is overwritten with the product A * B.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


INFO

          INFO is INTEGER
          = 0: successful exit
          < 0: if INFO = -k, the k-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlavsy (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, integer, dimension( * ) IPIV, double precision, dimension( ldb, * ) B, integer LDB, integer INFO)

DLAVSY

Purpose:

 DLAVSY  performs one of the matrix-vector operations
    x := A*x  or  x := A'*x,
 where x is an N element vector and A is one of the factors
 from the block U*D*U' or L*D*L' factorization computed by DSYTRF.
 If TRANS = 'N', multiplies by U  or U * D  (or L  or L * D)
 If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L')
 If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L')


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the factor stored in A is upper or lower
          triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation to be performed:
          = 'N':  x := A*x
          = 'T':  x := A'*x
          = 'C':  x := A'*x


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the diagonal blocks are unit
          matrices.  If the diagonal blocks are assumed to be unit,
          then A = U or A = L, otherwise A = U*D or A = L*D.
          = 'U':  Diagonal blocks are assumed to be unit matrices.
          = 'N':  Diagonal blocks are assumed to be non-unit matrices.


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of vectors
          x to be multiplied by A.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The block diagonal matrix D and the multipliers used to
          obtain the factor U or L as computed by DSYTRF.
          Stored as a 2-D triangular matrix.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


IPIV

          IPIV is INTEGER array, dimension (N)
          Details of the interchanges and the block structure of D,
          as determined by DSYTRF.
          If UPLO = 'U':
               If IPIV(k) > 0, then rows and columns k and IPIV(k)
               were interchanged and D(k,k) is a 1-by-1 diagonal block.
               (If IPIV( k ) = k, no interchange was done).
               If IPIV(k) = IPIV(k-1) < 0, then rows and
               columns k-1 and -IPIV(k) were interchanged,
               D(k-1:k,k-1:k) is a 2-by-2 diagonal block.
          If UPLO = 'L':
               If IPIV(k) > 0, then rows and columns k and IPIV(k)
               were interchanged and D(k,k) is a 1-by-1 diagonal block.
               (If IPIV( k ) = k, no interchange was done).
               If IPIV(k) = IPIV(k+1) < 0, then rows and
               columns k+1 and -IPIV(k) were interchanged,
               D(k:k+1,k:k+1) is a 2-by-2 diagonal block.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, B contains NRHS vectors of length N.
          On exit, B is overwritten with the product A * B.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


INFO

          INFO is INTEGER
          = 0: successful exit
          < 0: if INFO = -k, the k-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

subroutine dlavsy_rook (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, integer, dimension( * ) IPIV, double precision, dimension( ldb, * ) B, integer LDB, integer INFO)

DLAVSY_ROOK

Purpose:

 DLAVSY_ROOK  performs one of the matrix-vector operations
    x := A*x  or  x := A'*x,
 where x is an N element vector and A is one of the factors
 from the block U*D*U' or L*D*L' factorization computed by DSYTRF_ROOK.
 If TRANS = 'N', multiplies by U  or U * D  (or L  or L * D)
 If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L')
 If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L')


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the factor stored in A is upper or lower
          triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation to be performed:
          = 'N':  x := A*x
          = 'T':  x := A'*x
          = 'C':  x := A'*x


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the diagonal blocks are unit
          matrices.  If the diagonal blocks are assumed to be unit,
          then A = U or A = L, otherwise A = U*D or A = L*D.
          = 'U':  Diagonal blocks are assumed to be unit matrices.
          = 'N':  Diagonal blocks are assumed to be non-unit matrices.


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of vectors
          x to be multiplied by A.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The block diagonal matrix D and the multipliers used to
          obtain the factor U or L as computed by DSYTRF_ROOK.
          Stored as a 2-D triangular matrix.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


IPIV

          IPIV is INTEGER array, dimension (N)
          Details of the interchanges and the block structure of D,
          as determined by DSYTRF_ROOK.
          If UPLO = 'U':
               If IPIV(k) > 0, then rows and columns k and IPIV(k)
               were interchanged and D(k,k) is a 1-by-1 diagonal block.
               (If IPIV( k ) = k, no interchange was done).
               If IPIV(k) < 0 and IPIV(k-1) < 0, then rows and
               columns k and -IPIV(k) were interchanged and rows and
               columns k-1 and -IPIV(k-1) were inerchaged,
               D(k-1:k,k-1:k) is a 2-by-2 diagonal block.
          If UPLO = 'L':
               If IPIV(k) > 0, then rows and columns k and IPIV(k)
               were interchanged and D(k,k) is a 1-by-1 diagonal block.
               (If IPIV( k ) = k, no interchange was done).
               If IPIV(k) < 0 and IPIV(k+1) < 0, then rows and
               columns k and -IPIV(k) were interchanged and rows and
               columns k+1 and -IPIV(k+1) were inerchaged,
               D(k:k+1,k:k+1) is a 2-by-2 diagonal block.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, B contains NRHS vectors of length N.
          On exit, B is overwritten with the product A * B.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


INFO

          INFO is INTEGER
          = 0: successful exit
          < 0: if INFO = -k, the k-th argument had an illegal value


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

subroutine dlqt01 (integer M, integer N, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) Q, double precision, dimension( lda, * ) L, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DLQT01

Purpose:

 DLQT01 tests DGELQF, which computes the LQ factorization of an m-by-n
 matrix A, and partially tests DORGLQ which forms the n-by-n
 orthogonal matrix Q.
 DLQT01 compares L with A*Q', and checks that Q is orthogonal.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the LQ factorization of A, as returned by DGELQF.
          See DGELQF for further details.


Q

          Q is DOUBLE PRECISION array, dimension (LDA,N)
          The n-by-n orthogonal matrix Q.


L

          L is DOUBLE PRECISION array, dimension (LDA,max(M,N))


LDA

          LDA is INTEGER
          The leading dimension of the arrays A, AF, Q and L.
          LDA >= max(M,N).


TAU

          TAU is DOUBLE PRECISION array, dimension (min(M,N))
          The scalar factors of the elementary reflectors, as returned
          by DGELQF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The dimension of the array WORK.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (max(M,N))


RESULT

          RESULT is DOUBLE PRECISION array, dimension (2)
          The test ratios:
          RESULT(1) = norm( L - A*Q' ) / ( N * norm(A) * EPS )
          RESULT(2) = norm( I - Q*Q' ) / ( N * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlqt02 (integer M, integer N, integer K, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) Q, double precision, dimension( lda, * ) L, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DLQT02

Purpose:

 DLQT02 tests DORGLQ, which generates an m-by-n matrix Q with
 orthonornmal rows that is defined as the product of k elementary
 reflectors.
 Given the LQ factorization of an m-by-n matrix A, DLQT02 generates
 the orthogonal matrix Q defined by the factorization of the first k
 rows of A; it compares L(1:k,1:m) with A(1:k,1:n)*Q(1:m,1:n)', and
 checks that the rows of Q are orthonormal.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix Q to be generated.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix Q to be generated.
          N >= M >= 0.


K

          K is INTEGER
          The number of elementary reflectors whose product defines the
          matrix Q. M >= K >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A which was factorized by DLQT01.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the LQ factorization of A, as returned by DGELQF.
          See DGELQF for further details.


Q

          Q is DOUBLE PRECISION array, dimension (LDA,N)


L

          L is DOUBLE PRECISION array, dimension (LDA,M)


LDA

          LDA is INTEGER
          The leading dimension of the arrays A, AF, Q and L. LDA >= N.


TAU

          TAU is DOUBLE PRECISION array, dimension (M)
          The scalar factors of the elementary reflectors corresponding
          to the LQ factorization in AF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The dimension of the array WORK.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (2)
          The test ratios:
          RESULT(1) = norm( L - A*Q' ) / ( N * norm(A) * EPS )
          RESULT(2) = norm( I - Q*Q' ) / ( N * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dlqt03 (integer M, integer N, integer K, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) C, double precision, dimension( lda, * ) CC, double precision, dimension( lda, * ) Q, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DLQT03

Purpose:

 DLQT03 tests DORMLQ, which computes Q*C, Q'*C, C*Q or C*Q'.
 DLQT03 compares the results of a call to DORMLQ with the results of
 forming Q explicitly by a call to DORGLQ and then performing matrix
 multiplication by a call to DGEMM.


 

Parameters:

M

          M is INTEGER
          The number of rows or columns of the matrix C; C is n-by-m if
          Q is applied from the left, or m-by-n if Q is applied from
          the right.  M >= 0.


N

          N is INTEGER
          The order of the orthogonal matrix Q.  N >= 0.


K

          K is INTEGER
          The number of elementary reflectors whose product defines the
          orthogonal matrix Q.  N >= K >= 0.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the LQ factorization of an m-by-n matrix, as
          returned by DGELQF. See SGELQF for further details.


C

          C is DOUBLE PRECISION array, dimension (LDA,N)


CC

          CC is DOUBLE PRECISION array, dimension (LDA,N)


Q

          Q is DOUBLE PRECISION array, dimension (LDA,N)


LDA

          LDA is INTEGER
          The leading dimension of the arrays AF, C, CC, and Q.


TAU

          TAU is DOUBLE PRECISION array, dimension (min(M,N))
          The scalar factors of the elementary reflectors corresponding
          to the LQ factorization in AF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of WORK.  LWORK must be at least M, and should be
          M*NB, where NB is the blocksize for this environment.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (4)
          The test ratios compare two techniques for multiplying a
          random matrix C by an n-by-n orthogonal matrix Q.
          RESULT(1) = norm( Q*C - Q*C )  / ( N * norm(C) * EPS )
          RESULT(2) = norm( C*Q - C*Q )  / ( N * norm(C) * EPS )
          RESULT(3) = norm( Q'*C - Q'*C )/ ( N * norm(C) * EPS )
          RESULT(4) = norm( C*Q' - C*Q' )/ ( N * norm(C) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dpbt01 (character UPLO, integer N, integer KD, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldafac, * ) AFAC, integer LDAFAC, double precision, dimension( * ) RWORK, double precision RESID)

DPBT01

Purpose:

 DPBT01 reconstructs a symmetric positive definite band matrix A from
 its L*L' or U'*U factorization and computes the residual
    norm( L*L' - A ) / ( N * norm(A) * EPS ) or
    norm( U'*U - A ) / ( N * norm(A) * EPS ),
 where EPS is the machine epsilon, L' is the conjugate transpose of
 L, and U' is the conjugate transpose of U.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


KD

          KD is INTEGER
          The number of super-diagonals of the matrix A if UPLO = 'U',
          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original symmetric band matrix A.  If UPLO = 'U', the
          upper triangular part of A is stored as a band matrix; if
          UPLO = 'L', the lower triangular part of A is stored.  The
          columns of the appropriate triangle are stored in the columns
          of A and the diagonals of the triangle are stored in the rows
          of A.  See DPBTRF for further details.


LDA

          LDA is INTEGER.
          The leading dimension of the array A.  LDA >= max(1,KD+1).


AFAC

          AFAC is DOUBLE PRECISION array, dimension (LDAFAC,N)
          The factored form of the matrix A.  AFAC contains the factor
          L or U from the L*L' or U'*U factorization in band storage
          format, as computed by DPBTRF.


LDAFAC

          LDAFAC is INTEGER
          The leading dimension of the array AFAC.
          LDAFAC >= max(1,KD+1).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS )
          If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dpbt02 (character UPLO, integer N, integer KD, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)

DPBT02

Purpose:

 DPBT02 computes the residual for a solution of a symmetric banded
 system of equations  A*x = b:
    RESID = norm( B - A*X ) / ( norm(A) * norm(X) * EPS)
 where EPS is the machine precision.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


KD

          KD is INTEGER
          The number of super-diagonals of the matrix A if UPLO = 'U',
          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides. NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original symmetric band matrix A.  If UPLO = 'U', the
          upper triangular part of A is stored as a band matrix; if
          UPLO = 'L', the lower triangular part of A is stored.  The
          columns of the appropriate triangle are stored in the columns
          of A and the diagonals of the triangle are stored in the rows
          of A.  See DPBTRF for further details.


LDA

          LDA is INTEGER.
          The leading dimension of the array A.  LDA >= max(1,KD+1).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.   LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the system of
          linear equations.
          On exit, B is overwritten with the difference B - A*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(B - A*X) / ( norm(A) * norm(X) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dpbt05 (character UPLO, integer N, integer KD, integer NRHS, double precision, dimension( ldab, * ) AB, integer LDAB, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DPBT05

Purpose:

 DPBT05 tests the error bounds from iterative refinement for the
 computed solution to a system of equations A*X = B, where A is a
 symmetric band matrix.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( NZ*EPS + (*) ), where
             (*) = NZ*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )
             and NZ = max. number of nonzeros in any row of A, plus 1


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows of the matrices X, B, and XACT, and the
          order of the matrix A.  N >= 0.


KD

          KD is INTEGER
          The number of super-diagonals of the matrix A if UPLO = 'U',
          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X, B, and XACT.
          NRHS >= 0.


AB

          AB is DOUBLE PRECISION array, dimension (LDAB,N)
          The upper or lower triangle of the symmetric band matrix A,
          stored in the first KD+1 rows of the array.  The j-th column
          of A is stored in the j-th column of the array AB as follows:
          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).


LDAB

          LDAB is INTEGER
          The leading dimension of the array AB.  LDAB >= KD+1.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( NZ*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dpot01 (character UPLO, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldafac, * ) AFAC, integer LDAFAC, double precision, dimension( * ) RWORK, double precision RESID)

DPOT01

Purpose:

 DPOT01 reconstructs a symmetric positive definite matrix  A  from
 its L*L' or U'*U factorization and computes the residual
    norm( L*L' - A ) / ( N * norm(A) * EPS ) or
    norm( U'*U - A ) / ( N * norm(A) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original symmetric matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (LDAFAC,N)
          On entry, the factor L or U from the L*L' or U'*U
          factorization of A.
          Overwritten with the reconstructed matrix, and then with the
          difference L*L' - A (or U'*U - A).


LDAFAC

          LDAFAC is INTEGER
          The leading dimension of the array AFAC.  LDAFAC >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS )
          If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dpot02 (character UPLO, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)

DPOT02

Purpose:

 DPOT02 computes the residual for the solution of a symmetric system
 of linear equations  A*x = b:
    RESID = norm(B - A*X) / ( norm(A) * norm(X) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B, the matrix of right hand sides.
          NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original symmetric matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N)


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.   LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the system of
          linear equations.
          On exit, B is overwritten with the difference B - A*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(B - A*X) / ( norm(A) * norm(X) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dpot03 (character UPLO, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldainv, * ) AINV, integer LDAINV, double precision, dimension( ldwork, * ) WORK, integer LDWORK, double precision, dimension( * ) RWORK, double precision RCOND, double precision RESID)

DPOT03

Purpose:

 DPOT03 computes the residual for a symmetric matrix times its
 inverse:
    norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original symmetric matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N)


AINV

          AINV is DOUBLE PRECISION array, dimension (LDAINV,N)
          On entry, the inverse of the matrix A, stored as a symmetric
          matrix in the same format as A.
          In this version, AINV is expanded into a full matrix and
          multiplied by A, so the opposing triangle of AINV will be
          changed; i.e., if the upper triangular part of AINV is
          stored, the lower triangular part will be used as work space.


LDAINV

          LDAINV is INTEGER
          The leading dimension of the array AINV.  LDAINV >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (LDWORK,N)


LDWORK

          LDWORK is INTEGER
          The leading dimension of the array WORK.  LDWORK >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RCOND

          RCOND is DOUBLE PRECISION
          The reciprocal of the condition number of A, computed as
          ( 1/norm(A) ) / norm(AINV).


RESID

          RESID is DOUBLE PRECISION
          norm(I - A*AINV) / ( N * norm(A) * norm(AINV) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dpot05 (character UPLO, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DPOT05

Purpose:

 DPOT05 tests the error bounds from iterative refinement for the
 computed solution to a system of equations A*X = B, where A is a
 symmetric n by n matrix.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( (n+1)*EPS + (*) ), where
             (*) = (n+1)*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows of the matrices X, B, and XACT, and the
          order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X, B, and XACT.
          NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The symmetric matrix A.  If UPLO = 'U', the leading n by n
          upper triangular part of A contains the upper triangular part
          of the matrix A, and the strictly lower triangular part of A
          is not referenced.  If UPLO = 'L', the leading n by n lower
          triangular part of A contains the lower triangular part of
          the matrix A, and the strictly upper triangular part of A is
          not referenced.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( (n+1)*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dpot06 (character UPLO, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)

DPOT06

Purpose:

 DPOT06 computes the residual for a solution of a system of linear
 equations  A*x = b :
    RESID = norm(B - A*X,inf) / ( norm(A,inf) * norm(X,inf) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B, the matrix of right hand sides.
          NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original M x N matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  If TRANS = 'N',
          LDX >= max(1,N); if TRANS = 'T' or 'C', LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the system of
          linear equations.
          On exit, B is overwritten with the difference B - A*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  IF TRANS = 'N',
          LDB >= max(1,M); if TRANS = 'T' or 'C', LDB >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(B - A*X) / ( norm(A) * norm(X) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dppt01 (character UPLO, integer N, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, double precision, dimension( * ) RWORK, double precision RESID)

DPPT01

Purpose:

 DPPT01 reconstructs a symmetric positive definite packed matrix A
 from its L*L' or U'*U factorization and computes the residual
    norm( L*L' - A ) / ( N * norm(A) * EPS ) or
    norm( U'*U - A ) / ( N * norm(A) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The original symmetric matrix A, stored as a packed
          triangular matrix.


AFAC

          AFAC is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          On entry, the factor L or U from the L*L' or U'*U
          factorization of A, stored as a packed triangular matrix.
          Overwritten with the reconstructed matrix, and then with the
          difference L*L' - A (or U'*U - A).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS )
          If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dppt02 (character UPLO, integer N, integer NRHS, double precision, dimension( * ) A, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)

DPPT02

Purpose:

 DPPT02 computes the residual in the solution of a symmetric system
 of linear equations  A*x = b  when packed storage is used for the
 coefficient matrix.  The ratio computed is
    RESID = norm(B - A*X) / ( norm(A) * norm(X) * EPS),
 where EPS is the machine precision.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B, the matrix of right hand sides.
          NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The original symmetric matrix A, stored as a packed
          triangular matrix.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.   LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the system of
          linear equations.
          On exit, B is overwritten with the difference B - A*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(B - A*X) / ( norm(A) * norm(X) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dppt03 (character UPLO, integer N, double precision, dimension( * ) A, double precision, dimension( * ) AINV, double precision, dimension( ldwork, * ) WORK, integer LDWORK, double precision, dimension( * ) RWORK, double precision RCOND, double precision RESID)

DPPT03

Purpose:

 DPPT03 computes the residual for a symmetric packed matrix times its
 inverse:
    norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The original symmetric matrix A, stored as a packed
          triangular matrix.


AINV

          AINV is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The (symmetric) inverse of the matrix A, stored as a packed
          triangular matrix.


WORK

          WORK is DOUBLE PRECISION array, dimension (LDWORK,N)


LDWORK

          LDWORK is INTEGER
          The leading dimension of the array WORK.  LDWORK >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RCOND

          RCOND is DOUBLE PRECISION
          The reciprocal of the condition number of A, computed as
          ( 1/norm(A) ) / norm(AINV).


RESID

          RESID is DOUBLE PRECISION
          norm(I - A*AINV) / ( N * norm(A) * norm(AINV) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dppt05 (character UPLO, integer N, integer NRHS, double precision, dimension( * ) AP, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DPPT05

Purpose:

 DPPT05 tests the error bounds from iterative refinement for the
 computed solution to a system of equations A*X = B, where A is a
 symmetric matrix in packed storage format.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( (n+1)*EPS + (*) ), where
             (*) = (n+1)*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows of the matrices X, B, and XACT, and the
          order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X, B, and XACT.
          NRHS >= 0.


AP

          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The upper or lower triangle of the symmetric matrix A, packed
          columnwise in a linear array.  The j-th column of A is stored
          in the array AP as follows:
          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( (n+1)*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dpst01 (character UPLO, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldafac, * ) AFAC, integer LDAFAC, double precision, dimension( ldperm, * ) PERM, integer LDPERM, integer, dimension( * ) PIV, double precision, dimension( * ) RWORK, double precision RESID, integer RANK)

DPST01

Purpose:

 DPST01 reconstructs a symmetric positive semidefinite matrix A
 from its L or U factors and the permutation matrix P and computes
 the residual
    norm( P*L*L'*P' - A ) / ( N * norm(A) * EPS ) or
    norm( P*U'*U*P' - A ) / ( N * norm(A) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original symmetric matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (LDAFAC,N)
          The factor L or U from the L*L' or U'*U
          factorization of A.


LDAFAC

          LDAFAC is INTEGER
          The leading dimension of the array AFAC.  LDAFAC >= max(1,N).


PERM

          PERM is DOUBLE PRECISION array, dimension (LDPERM,N)
          Overwritten with the reconstructed matrix, and then with the
          difference P*L*L'*P' - A (or P*U'*U*P' - A)


LDPERM

          LDPERM is INTEGER
          The leading dimension of the array PERM.
          LDAPERM >= max(1,N).


PIV

          PIV is INTEGER array, dimension (N)
          PIV is such that the nonzero entries are
          P( PIV( K ), K ) = 1.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS )
          If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS )


RANK

          RANK is INTEGER
          number of nonzero singular values of A.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dptt01 (integer N, double precision, dimension( * ) D, double precision, dimension( * ) E, double precision, dimension( * ) DF, double precision, dimension( * ) EF, double precision, dimension( * ) WORK, double precision RESID)

DPTT01

Purpose:

 DPTT01 reconstructs a tridiagonal matrix A from its L*D*L'
 factorization and computes the residual
    norm(L*D*L' - A) / ( n * norm(A) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

N

          N is INTEGTER
          The order of the matrix A.


D

          D is DOUBLE PRECISION array, dimension (N)
          The n diagonal elements of the tridiagonal matrix A.


E

          E is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) subdiagonal elements of the tridiagonal matrix A.


DF

          DF is DOUBLE PRECISION array, dimension (N)
          The n diagonal elements of the factor L from the L*D*L'
          factorization of A.


EF

          EF is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) subdiagonal elements of the factor L from the
          L*D*L' factorization of A.


WORK

          WORK is DOUBLE PRECISION array, dimension (2*N)


RESID

          RESID is DOUBLE PRECISION
          norm(L*D*L' - A) / (n * norm(A) * EPS)


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dptt02 (integer N, integer NRHS, double precision, dimension( * ) D, double precision, dimension( * ) E, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision RESID)

DPTT02

Purpose:

 DPTT02 computes the residual for the solution to a symmetric
 tridiagonal system of equations:
    RESID = norm(B - A*X) / (norm(A) * norm(X) * EPS),
 where EPS is the machine epsilon.


 

Parameters:

N

          N is INTEGTER
          The order of the matrix A.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrices B and X.  NRHS >= 0.


D

          D is DOUBLE PRECISION array, dimension (N)
          The n diagonal elements of the tridiagonal matrix A.


E

          E is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) subdiagonal elements of the tridiagonal matrix A.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The n by nrhs matrix of solution vectors X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the n by nrhs matrix of right hand side vectors B.
          On exit, B is overwritten with the difference B - A*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


RESID

          RESID is DOUBLE PRECISION
          norm(B - A*X) / (norm(A) * norm(X) * EPS)


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dptt05 (integer N, integer NRHS, double precision, dimension( * ) D, double precision, dimension( * ) E, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DPTT05

Purpose:

 DPTT05 tests the error bounds from iterative refinement for the
 computed solution to a system of equations A*X = B, where A is a
 symmetric tridiagonal matrix of order n.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( NZ*EPS + (*) ), where
             (*) = NZ*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )
             and NZ = max. number of nonzeros in any row of A, plus 1


 

Parameters:

N

          N is INTEGER
          The number of rows of the matrices X, B, and XACT, and the
          order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X, B, and XACT.
          NRHS >= 0.


D

          D is DOUBLE PRECISION array, dimension (N)
          The n diagonal elements of the tridiagonal matrix A.


E

          E is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) subdiagonal elements of the tridiagonal matrix A.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( NZ*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqlt01 (integer M, integer N, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) Q, double precision, dimension( lda, * ) L, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DQLT01

Purpose:

 DQLT01 tests DGEQLF, which computes the QL factorization of an m-by-n
 matrix A, and partially tests DORGQL which forms the m-by-m
 orthogonal matrix Q.
 DQLT01 compares L with Q'*A, and checks that Q is orthogonal.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the QL factorization of A, as returned by DGEQLF.
          See DGEQLF for further details.


Q

          Q is DOUBLE PRECISION array, dimension (LDA,M)
          The m-by-m orthogonal matrix Q.


L

          L is DOUBLE PRECISION array, dimension (LDA,max(M,N))


LDA

          LDA is INTEGER
          The leading dimension of the arrays A, AF, Q and R.
          LDA >= max(M,N).


TAU

          TAU is DOUBLE PRECISION array, dimension (min(M,N))
          The scalar factors of the elementary reflectors, as returned
          by DGEQLF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The dimension of the array WORK.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (2)
          The test ratios:
          RESULT(1) = norm( L - Q'*A ) / ( M * norm(A) * EPS )
          RESULT(2) = norm( I - Q'*Q ) / ( M * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqlt02 (integer M, integer N, integer K, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) Q, double precision, dimension( lda, * ) L, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DQLT02

Purpose:

 DQLT02 tests DORGQL, which generates an m-by-n matrix Q with
 orthonornmal columns that is defined as the product of k elementary
 reflectors.
 Given the QL factorization of an m-by-n matrix A, DQLT02 generates
 the orthogonal matrix Q defined by the factorization of the last k
 columns of A; it compares L(m-n+1:m,n-k+1:n) with
 Q(1:m,m-n+1:m)'*A(1:m,n-k+1:n), and checks that the columns of Q are
 orthonormal.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix Q to be generated.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix Q to be generated.
          M >= N >= 0.


K

          K is INTEGER
          The number of elementary reflectors whose product defines the
          matrix Q. N >= K >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A which was factorized by DQLT01.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the QL factorization of A, as returned by DGEQLF.
          See DGEQLF for further details.


Q

          Q is DOUBLE PRECISION array, dimension (LDA,N)


L

          L is DOUBLE PRECISION array, dimension (LDA,N)


LDA

          LDA is INTEGER
          The leading dimension of the arrays A, AF, Q and L. LDA >= M.


TAU

          TAU is DOUBLE PRECISION array, dimension (N)
          The scalar factors of the elementary reflectors corresponding
          to the QL factorization in AF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The dimension of the array WORK.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (2)
          The test ratios:
          RESULT(1) = norm( L - Q'*A ) / ( M * norm(A) * EPS )
          RESULT(2) = norm( I - Q'*Q ) / ( M * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqlt03 (integer M, integer N, integer K, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) C, double precision, dimension( lda, * ) CC, double precision, dimension( lda, * ) Q, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DQLT03

Purpose:

 DQLT03 tests DORMQL, which computes Q*C, Q'*C, C*Q or C*Q'.
 DQLT03 compares the results of a call to DORMQL with the results of
 forming Q explicitly by a call to DORGQL and then performing matrix
 multiplication by a call to DGEMM.


 

Parameters:

M

          M is INTEGER
          The order of the orthogonal matrix Q.  M >= 0.


N

          N is INTEGER
          The number of rows or columns of the matrix C; C is m-by-n if
          Q is applied from the left, or n-by-m if Q is applied from
          the right.  N >= 0.


K

          K is INTEGER
          The number of elementary reflectors whose product defines the
          orthogonal matrix Q.  M >= K >= 0.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the QL factorization of an m-by-n matrix, as
          returned by DGEQLF. See SGEQLF for further details.


C

          C is DOUBLE PRECISION array, dimension (LDA,N)


CC

          CC is DOUBLE PRECISION array, dimension (LDA,N)


Q

          Q is DOUBLE PRECISION array, dimension (LDA,M)


LDA

          LDA is INTEGER
          The leading dimension of the arrays AF, C, CC, and Q.


TAU

          TAU is DOUBLE PRECISION array, dimension (min(M,N))
          The scalar factors of the elementary reflectors corresponding
          to the QL factorization in AF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of WORK.  LWORK must be at least M, and should be
          M*NB, where NB is the blocksize for this environment.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (4)
          The test ratios compare two techniques for multiplying a
          random matrix C by an m-by-m orthogonal matrix Q.
          RESULT(1) = norm( Q*C - Q*C )  / ( M * norm(C) * EPS )
          RESULT(2) = norm( C*Q - C*Q )  / ( M * norm(C) * EPS )
          RESULT(3) = norm( Q'*C - Q'*C )/ ( M * norm(C) * EPS )
          RESULT(4) = norm( C*Q' - C*Q' )/ ( M * norm(C) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

double precision function dqpt01 (integer M, integer N, integer K, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, integer LDA, double precision, dimension( * ) TAU, integer, dimension( * ) JPVT, double precision, dimension( lwork ) WORK, integer LWORK)

DQPT01

Purpose:

 DQPT01 tests the QR-factorization with pivoting of a matrix A.  The
 array AF contains the (possibly partial) QR-factorization of A, where
 the upper triangle of AF(1:k,1:k) is a partial triangular factor,
 the entries below the diagonal in the first k columns are the
 Householder vectors, and the rest of AF contains a partially updated
 matrix.
 This function returns ||A*P - Q*R||/(||norm(A)||*eps*M)


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrices A and AF.


N

          N is INTEGER
          The number of columns of the matrices A and AF.


K

          K is INTEGER
          The number of columns of AF that have been reduced
          to upper triangular form.


A

          A is DOUBLE PRECISION array, dimension (LDA, N)
          The original matrix A.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          The (possibly partial) output of DGEQPF.  The upper triangle
          of AF(1:k,1:k) is a partial triangular factor, the entries
          below the diagonal in the first k columns are the Householder
          vectors, and the rest of AF contains a partially updated
          matrix.


LDA

          LDA is INTEGER
          The leading dimension of the arrays A and AF.


TAU

          TAU is DOUBLE PRECISION array, dimension (K)
          Details of the Householder transformations as returned by
          DGEQPF.


JPVT

          JPVT is INTEGER array, dimension (N)
          Pivot information as returned by DGEQPF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of the array WORK.  LWORK >= M*N+N.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqrt01 (integer M, integer N, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) Q, double precision, dimension( lda, * ) R, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DQRT01

Purpose:

 DQRT01 tests DGEQRF, which computes the QR factorization of an m-by-n
 matrix A, and partially tests DORGQR which forms the m-by-m
 orthogonal matrix Q.
 DQRT01 compares R with Q'*A, and checks that Q is orthogonal.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the QR factorization of A, as returned by DGEQRF.
          See DGEQRF for further details.


Q

          Q is DOUBLE PRECISION array, dimension (LDA,M)
          The m-by-m orthogonal matrix Q.


R

          R is DOUBLE PRECISION array, dimension (LDA,max(M,N))


LDA

          LDA is INTEGER
          The leading dimension of the arrays A, AF, Q and R.
          LDA >= max(M,N).


TAU

          TAU is DOUBLE PRECISION array, dimension (min(M,N))
          The scalar factors of the elementary reflectors, as returned
          by DGEQRF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The dimension of the array WORK.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (2)
          The test ratios:
          RESULT(1) = norm( R - Q'*A ) / ( M * norm(A) * EPS )
          RESULT(2) = norm( I - Q'*Q ) / ( M * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqrt01p (integer M, integer N, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) Q, double precision, dimension( lda, * ) R, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DQRT01P

Purpose:

 DQRT01P tests DGEQRFP, which computes the QR factorization of an m-by-n
 matrix A, and partially tests DORGQR which forms the m-by-m
 orthogonal matrix Q.
 DQRT01P compares R with Q'*A, and checks that Q is orthogonal.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the QR factorization of A, as returned by DGEQRFP.
          See DGEQRFP for further details.


Q

          Q is DOUBLE PRECISION array, dimension (LDA,M)
          The m-by-m orthogonal matrix Q.


R

          R is DOUBLE PRECISION array, dimension (LDA,max(M,N))


LDA

          LDA is INTEGER
          The leading dimension of the arrays A, AF, Q and R.
          LDA >= max(M,N).


TAU

          TAU is DOUBLE PRECISION array, dimension (min(M,N))
          The scalar factors of the elementary reflectors, as returned
          by DGEQRFP.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The dimension of the array WORK.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (2)
          The test ratios:
          RESULT(1) = norm( R - Q'*A ) / ( M * norm(A) * EPS )
          RESULT(2) = norm( I - Q'*Q ) / ( M * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqrt02 (integer M, integer N, integer K, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) Q, double precision, dimension( lda, * ) R, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DQRT02

Purpose:

 DQRT02 tests DORGQR, which generates an m-by-n matrix Q with
 orthonornmal columns that is defined as the product of k elementary
 reflectors.
 Given the QR factorization of an m-by-n matrix A, DQRT02 generates
 the orthogonal matrix Q defined by the factorization of the first k
 columns of A; it compares R(1:n,1:k) with Q(1:m,1:n)'*A(1:m,1:k),
 and checks that the columns of Q are orthonormal.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix Q to be generated.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix Q to be generated.
          M >= N >= 0.


K

          K is INTEGER
          The number of elementary reflectors whose product defines the
          matrix Q. N >= K >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A which was factorized by DQRT01.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the QR factorization of A, as returned by DGEQRF.
          See DGEQRF for further details.


Q

          Q is DOUBLE PRECISION array, dimension (LDA,N)


R

          R is DOUBLE PRECISION array, dimension (LDA,N)


LDA

          LDA is INTEGER
          The leading dimension of the arrays A, AF, Q and R. LDA >= M.


TAU

          TAU is DOUBLE PRECISION array, dimension (N)
          The scalar factors of the elementary reflectors corresponding
          to the QR factorization in AF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The dimension of the array WORK.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (2)
          The test ratios:
          RESULT(1) = norm( R - Q'*A ) / ( M * norm(A) * EPS )
          RESULT(2) = norm( I - Q'*Q ) / ( M * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqrt03 (integer M, integer N, integer K, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) C, double precision, dimension( lda, * ) CC, double precision, dimension( lda, * ) Q, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DQRT03

Purpose:

 DQRT03 tests DORMQR, which computes Q*C, Q'*C, C*Q or C*Q'.
 DQRT03 compares the results of a call to DORMQR with the results of
 forming Q explicitly by a call to DORGQR and then performing matrix
 multiplication by a call to DGEMM.


 

Parameters:

M

          M is INTEGER
          The order of the orthogonal matrix Q.  M >= 0.


N

          N is INTEGER
          The number of rows or columns of the matrix C; C is m-by-n if
          Q is applied from the left, or n-by-m if Q is applied from
          the right.  N >= 0.


K

          K is INTEGER
          The number of elementary reflectors whose product defines the
          orthogonal matrix Q.  M >= K >= 0.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the QR factorization of an m-by-n matrix, as
          returned by DGEQRF. See DGEQRF for further details.


C

          C is DOUBLE PRECISION array, dimension (LDA,N)


CC

          CC is DOUBLE PRECISION array, dimension (LDA,N)


Q

          Q is DOUBLE PRECISION array, dimension (LDA,M)


LDA

          LDA is INTEGER
          The leading dimension of the arrays AF, C, CC, and Q.


TAU

          TAU is DOUBLE PRECISION array, dimension (min(M,N))
          The scalar factors of the elementary reflectors corresponding
          to the QR factorization in AF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of WORK.  LWORK must be at least M, and should be
          M*NB, where NB is the blocksize for this environment.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (4)
          The test ratios compare two techniques for multiplying a
          random matrix C by an m-by-m orthogonal matrix Q.
          RESULT(1) = norm( Q*C - Q*C )  / ( M * norm(C) * EPS )
          RESULT(2) = norm( C*Q - C*Q )  / ( M * norm(C) * EPS )
          RESULT(3) = norm( Q'*C - Q'*C )/ ( M * norm(C) * EPS )
          RESULT(4) = norm( C*Q' - C*Q' )/ ( M * norm(C) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine dqrt04 (integer M, integer N, integer NB, double precision, dimension(6) RESULT)

DQRT04

Purpose:

 DQRT04 tests DGEQRT and DGEMQRT.


 

Parameters:

M

          M is INTEGER
          Number of rows in test matrix.


N

          N is INTEGER
          Number of columns in test matrix.


NB

          NB is INTEGER
          Block size of test matrix.  NB <= Min(M,N).


RESULT

          RESULT is DOUBLE PRECISION array, dimension (6)
          Results of each of the six tests below.
          RESULT(1) = | A - Q R |
          RESULT(2) = | I - Q^H Q |
          RESULT(3) = | Q C - Q C |
          RESULT(4) = | Q^H C - Q^H C |
          RESULT(5) = | C Q - C Q | 
          RESULT(6) = | C Q^H - C Q^H |


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

April 2012

subroutine dqrt05 (integer M, integer N, integer L, integer NB, double precision, dimension(6) RESULT)

DQRT05

Purpose:

 DQRT05 tests DTPQRT and DTPMQRT.


 

Parameters:

M

          M is INTEGER
          Number of rows in lower part of the test matrix.


N

          N is INTEGER
          Number of columns in test matrix.


L

          L is INTEGER
          The number of rows of the upper trapezoidal part the
          lower test matrix.  0 <= L <= M.


NB

          NB is INTEGER
          Block size of test matrix.  NB <= N.


RESULT

          RESULT is DOUBLE PRECISION array, dimension (6)
          Results of each of the six tests below.
          RESULT(1) = | A - Q R |
          RESULT(2) = | I - Q^H Q |
          RESULT(3) = | Q C - Q C |
          RESULT(4) = | Q^H C - Q^H C |
          RESULT(5) = | C Q - C Q | 
          RESULT(6) = | C Q^H - C Q^H |


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

April 2012

double precision function dqrt11 (integer M, integer K, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK)

DQRT11

Purpose:

 DQRT11 computes the test ratio
       || Q'*Q - I || / (eps * m)
 where the orthogonal matrix Q is represented as a product of
 elementary transformations.  Each transformation has the form
    H(k) = I - tau(k) v(k) v(k)'
 where tau(k) is stored in TAU(k) and v(k) is an m-vector of the form
 [ 0 ... 0 1 x(k) ]', where x(k) is a vector of length m-k stored
 in A(k+1:m,k).


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.


K

          K is INTEGER
          The number of columns of A whose subdiagonal entries
          contain information about orthogonal transformations.


A

          A is DOUBLE PRECISION array, dimension (LDA,K)
          The (possibly partial) output of a QR reduction routine.


LDA

          LDA is INTEGER
          The leading dimension of the array A.


TAU

          TAU is DOUBLE PRECISION array, dimension (K)
          The scaling factors tau for the elementary transformations as
          computed by the QR factorization routine.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of the array WORK.  LWORK >= M*M + M.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

double precision function dqrt12 (integer M, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) S, double precision, dimension( lwork ) WORK, integer LWORK)

DQRT12

Purpose:

 DQRT12 computes the singular values `svlues' of the upper trapezoid
 of A(1:M,1:N) and returns the ratio
      || s - svlues||/(||svlues||*eps*max(M,N))


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.


N

          N is INTEGER
          The number of columns of the matrix A.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The M-by-N matrix A. Only the upper trapezoid is referenced.


LDA

          LDA is INTEGER
          The leading dimension of the array A.


S

          S is DOUBLE PRECISION array, dimension (min(M,N))
          The singular values of the matrix A.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of the array WORK. LWORK >= max(M*N + 4*min(M,N) +
          max(M,N), M*N+2*MIN( M, N )+4*N).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqrt13 (integer SCALE, integer M, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision NORMA, integer, dimension( 4 ) ISEED)

DQRT13

Purpose:

 DQRT13 generates a full-rank matrix that may be scaled to have large
 or small norm.


 

Parameters:

SCALE

          SCALE is INTEGER
          SCALE = 1: normally scaled matrix
          SCALE = 2: matrix scaled up
          SCALE = 3: matrix scaled down


M

          M is INTEGER
          The number of rows of the matrix A.


N

          N is INTEGER
          The number of columns of A.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The M-by-N matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.


NORMA

          NORMA is DOUBLE PRECISION
          The one-norm of A.


ISEED

          ISEED is integer array, dimension (4)
          Seed for random number generator


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

double precision function dqrt14 (character TRANS, integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( lwork ) WORK, integer LWORK)

DQRT14

Purpose:

 DQRT14 checks whether X is in the row space of A or A'.  It does so
 by scaling both X and A such that their norms are in the range
 [sqrt(eps), 1/sqrt(eps)], then computing a QR factorization of [A,X]
 (if TRANS = 'T') or an LQ factorization of [A',X]' (if TRANS = 'N'),
 and returning the norm of the trailing triangle, scaled by
 MAX(M,N,NRHS)*eps.


 

Parameters:

TRANS

          TRANS is CHARACTER*1
          = 'N':  No transpose, check for X in the row space of A
          = 'T':  Transpose, check for X in the row space of A'.


M

          M is INTEGER
          The number of rows of the matrix A.


N

          N is INTEGER
          The number of columns of the matrix A.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of X.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The M-by-N matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          If TRANS = 'N', the N-by-NRHS matrix X.
          IF TRANS = 'T', the M-by-NRHS matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.


WORK

          WORK is DOUBLE PRECISION array dimension (LWORK)


LWORK

          LWORK is INTEGER
          length of workspace array required
          If TRANS = 'N', LWORK >= (M+NRHS)*(N+2);
          if TRANS = 'T', LWORK >= (N+NRHS)*(M+2).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqrt15 (integer SCALE, integer RKSEL, integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) S, integer RANK, double precision NORMA, double precision NORMB, integer, dimension( 4 ) ISEED, double precision, dimension( lwork ) WORK, integer LWORK)

DQRT15

Purpose:

 DQRT15 generates a matrix with full or deficient rank and of various
 norms.


 

Parameters:

SCALE

          SCALE is INTEGER
          SCALE = 1: normally scaled matrix
          SCALE = 2: matrix scaled up
          SCALE = 3: matrix scaled down


RKSEL

          RKSEL is INTEGER
          RKSEL = 1: full rank matrix
          RKSEL = 2: rank-deficient matrix


M

          M is INTEGER
          The number of rows of the matrix A.


N

          N is INTEGER
          The number of columns of A.


NRHS

          NRHS is INTEGER
          The number of columns of B.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The M-by-N matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.


B

          B is DOUBLE PRECISION array, dimension (LDB, NRHS)
          A matrix that is in the range space of matrix A.


LDB

          LDB is INTEGER
          The leading dimension of the array B.


S

          S is DOUBLE PRECISION array, dimension MIN(M,N)
          Singular values of A.


RANK

          RANK is INTEGER
          number of nonzero singular values of A.


NORMA

          NORMA is DOUBLE PRECISION
          one-norm of A.


NORMB

          NORMB is DOUBLE PRECISION
          one-norm of B.


ISEED

          ISEED is integer array, dimension (4)
          seed for random number generator.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          length of work space required.
          LWORK >= MAX(M+MIN(M,N),NRHS*MIN(M,N),2*N+M)


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dqrt16 (character TRANS, integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)

DQRT16

Purpose:

 DQRT16 computes the residual for a solution of a system of linear
 equations  A*x = b  or  A'*x = b:
    RESID = norm(B - A*X) / ( max(m,n) * norm(A) * norm(X) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations:
          = 'N':  A *x = b
          = 'T':  A'*x = b, where A' is the transpose of A
          = 'C':  A'*x = b, where A' is the transpose of A


M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of B, the matrix of right hand sides.
          NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original M x N matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,M).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  If TRANS = 'N',
          LDX >= max(1,N); if TRANS = 'T' or 'C', LDX >= max(1,M).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the right hand side vectors for the system of
          linear equations.
          On exit, B is overwritten with the difference B - A*X.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  IF TRANS = 'N',
          LDB >= max(1,M); if TRANS = 'T' or 'C', LDB >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(B - A*X) / ( max(m,n) * norm(A) * norm(X) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

double precision function dqrt17 (character TRANS, integer IRESID, integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldb, * ) C, double precision, dimension( lwork ) WORK, integer LWORK)

DQRT17

Purpose:

 DQRT17 computes the ratio
    || R'*op(A) ||/(||A||*alpha*max(M,N,NRHS)*eps)
 where R = op(A)*X - B, op(A) is A or A', and
    alpha = ||B|| if IRESID = 1 (zero-residual problem)
    alpha = ||R|| if IRESID = 2 (otherwise).


 

Parameters:

TRANS

          TRANS is CHARACTER*1
          Specifies whether or not the transpose of A is used.
          = 'N':  No transpose, op(A) = A.
          = 'T':  Transpose, op(A) = A'.


IRESID

          IRESID is INTEGER
          IRESID = 1 indicates zero-residual problem.
          IRESID = 2 indicates non-zero residual.


M

          M is INTEGER
          The number of rows of the matrix A.
          If TRANS = 'N', the number of rows of the matrix B.
          If TRANS = 'T', the number of rows of the matrix X.


N

          N is INTEGER
          The number of columns of the matrix  A.
          If TRANS = 'N', the number of rows of the matrix X.
          If TRANS = 'T', the number of rows of the matrix B.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X and B.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A. LDA >= M.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          If TRANS = 'N', the n-by-nrhs matrix X.
          If TRANS = 'T', the m-by-nrhs matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.
          If TRANS = 'N', LDX >= N.
          If TRANS = 'T', LDX >= M.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          If TRANS = 'N', the m-by-nrhs matrix B.
          If TRANS = 'T', the n-by-nrhs matrix B.


LDB

          LDB is INTEGER
          The leading dimension of the array B.
          If TRANS = 'N', LDB >= M.
          If TRANS = 'T', LDB >= N.


C

          C is DOUBLE PRECISION array, dimension (LDB,NRHS)


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of the array WORK.  LWORK >= NRHS*(M+N).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2015

subroutine drqt01 (integer M, integer N, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) Q, double precision, dimension( lda, * ) R, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DRQT01

Purpose:

 DRQT01 tests DGERQF, which computes the RQ factorization of an m-by-n
 matrix A, and partially tests DORGRQ which forms the n-by-n
 orthogonal matrix Q.
 DRQT01 compares R with A*Q', and checks that Q is orthogonal.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix A.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the RQ factorization of A, as returned by DGERQF.
          See DGERQF for further details.


Q

          Q is DOUBLE PRECISION array, dimension (LDA,N)
          The n-by-n orthogonal matrix Q.


R

          R is DOUBLE PRECISION array, dimension (LDA,max(M,N))


LDA

          LDA is INTEGER
          The leading dimension of the arrays A, AF, Q and L.
          LDA >= max(M,N).


TAU

          TAU is DOUBLE PRECISION array, dimension (min(M,N))
          The scalar factors of the elementary reflectors, as returned
          by DGERQF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The dimension of the array WORK.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (max(M,N))


RESULT

          RESULT is DOUBLE PRECISION array, dimension (2)
          The test ratios:
          RESULT(1) = norm( R - A*Q' ) / ( N * norm(A) * EPS )
          RESULT(2) = norm( I - Q*Q' ) / ( N * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine drqt02 (integer M, integer N, integer K, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) Q, double precision, dimension( lda, * ) R, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DRQT02

Purpose:

 DRQT02 tests DORGRQ, which generates an m-by-n matrix Q with
 orthonornmal rows that is defined as the product of k elementary
 reflectors.
 Given the RQ factorization of an m-by-n matrix A, DRQT02 generates
 the orthogonal matrix Q defined by the factorization of the last k
 rows of A; it compares R(m-k+1:m,n-m+1:n) with
 A(m-k+1:m,1:n)*Q(n-m+1:n,1:n)', and checks that the rows of Q are
 orthonormal.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix Q to be generated.  M >= 0.


N

          N is INTEGER
          The number of columns of the matrix Q to be generated.
          N >= M >= 0.


K

          K is INTEGER
          The number of elementary reflectors whose product defines the
          matrix Q. M >= K >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The m-by-n matrix A which was factorized by DRQT01.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the RQ factorization of A, as returned by DGERQF.
          See DGERQF for further details.


Q

          Q is DOUBLE PRECISION array, dimension (LDA,N)


R

          R is DOUBLE PRECISION array, dimension (LDA,M)


LDA

          LDA is INTEGER
          The leading dimension of the arrays A, AF, Q and L. LDA >= N.


TAU

          TAU is DOUBLE PRECISION array, dimension (M)
          The scalar factors of the elementary reflectors corresponding
          to the RQ factorization in AF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The dimension of the array WORK.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (2)
          The test ratios:
          RESULT(1) = norm( R - A*Q' ) / ( N * norm(A) * EPS )
          RESULT(2) = norm( I - Q*Q' ) / ( N * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine drqt03 (integer M, integer N, integer K, double precision, dimension( lda, * ) AF, double precision, dimension( lda, * ) C, double precision, dimension( lda, * ) CC, double precision, dimension( lda, * ) Q, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)

DRQT03

Purpose:

 DRQT03 tests DORMRQ, which computes Q*C, Q'*C, C*Q or C*Q'.
 DRQT03 compares the results of a call to DORMRQ with the results of
 forming Q explicitly by a call to DORGRQ and then performing matrix
 multiplication by a call to DGEMM.


 

Parameters:

M

          M is INTEGER
          The number of rows or columns of the matrix C; C is n-by-m if
          Q is applied from the left, or m-by-n if Q is applied from
          the right.  M >= 0.


N

          N is INTEGER
          The order of the orthogonal matrix Q.  N >= 0.


K

          K is INTEGER
          The number of elementary reflectors whose product defines the
          orthogonal matrix Q.  N >= K >= 0.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          Details of the RQ factorization of an m-by-n matrix, as
          returned by DGERQF. See SGERQF for further details.


C

          C is DOUBLE PRECISION array, dimension (LDA,N)


CC

          CC is DOUBLE PRECISION array, dimension (LDA,N)


Q

          Q is DOUBLE PRECISION array, dimension (LDA,N)


LDA

          LDA is INTEGER
          The leading dimension of the arrays AF, C, CC, and Q.


TAU

          TAU is DOUBLE PRECISION array, dimension (min(M,N))
          The scalar factors of the elementary reflectors corresponding
          to the RQ factorization in AF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of WORK.  LWORK must be at least M, and should be
          M*NB, where NB is the blocksize for this environment.


RWORK

          RWORK is DOUBLE PRECISION array, dimension (M)


RESULT

          RESULT is DOUBLE PRECISION array, dimension (4)
          The test ratios compare two techniques for multiplying a
          random matrix C by an n-by-n orthogonal matrix Q.
          RESULT(1) = norm( Q*C - Q*C )  / ( N * norm(C) * EPS )
          RESULT(2) = norm( C*Q - C*Q )  / ( N * norm(C) * EPS )
          RESULT(3) = norm( Q'*C - Q'*C )/ ( N * norm(C) * EPS )
          RESULT(4) = norm( C*Q' - C*Q' )/ ( N * norm(C) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

double precision function drzt01 (integer M, integer N, double precision, dimension( lda, * ) A, double precision, dimension( lda, * ) AF, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK)

DRZT01

Purpose:

 DRZT01 returns
      || A - R*Q || / ( M * eps * ||A|| )
 for an upper trapezoidal A that was factored with DTZRZF.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrices A and AF.


N

          N is INTEGER
          The number of columns of the matrices A and AF.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original upper trapezoidal M by N matrix A.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          The output of DTZRZF for input matrix A.
          The lower triangle is not referenced.


LDA

          LDA is INTEGER
          The leading dimension of the arrays A and AF.


TAU

          TAU is DOUBLE PRECISION array, dimension (M)
          Details of the Householder transformations as returned by
          DTZRZF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          The length of the array WORK.  LWORK >= m*n + m*nb.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

double precision function drzt02 (integer M, integer N, double precision, dimension( lda, * ) AF, integer LDA, double precision, dimension( * ) TAU, double precision, dimension( lwork ) WORK, integer LWORK)

DRZT02

Purpose:

 DRZT02 returns
      || I - Q'*Q || / ( M * eps)
 where the matrix Q is defined by the Householder transformations
 generated by DTZRZF.


 

Parameters:

M

          M is INTEGER
          The number of rows of the matrix AF.


N

          N is INTEGER
          The number of columns of the matrix AF.


AF

          AF is DOUBLE PRECISION array, dimension (LDA,N)
          The output of DTZRZF.


LDA

          LDA is INTEGER
          The leading dimension of the array AF.


TAU

          TAU is DOUBLE PRECISION array, dimension (M)
          Details of the Householder transformations as returned by
          DTZRZF.


WORK

          WORK is DOUBLE PRECISION array, dimension (LWORK)


LWORK

          LWORK is INTEGER
          length of WORK array. LWORK >= N*N+N*NB.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dspt01 (character UPLO, integer N, double precision, dimension( * ) A, double precision, dimension( * ) AFAC, integer, dimension( * ) IPIV, double precision, dimension( ldc, * ) C, integer LDC, double precision, dimension( * ) RWORK, double precision RESID)

DSPT01

Purpose:

 DSPT01 reconstructs a symmetric indefinite packed matrix A from its
 block L*D*L' or U*D*U' factorization and computes the residual
      norm( C - A ) / ( N * norm(A) * EPS ),
 where C is the reconstructed matrix and EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The original symmetric matrix A, stored as a packed
          triangular matrix.


AFAC

          AFAC is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The factored form of the matrix A, stored as a packed
          triangular matrix.  AFAC contains the block diagonal matrix D
          and the multipliers used to obtain the factor L or U from the
          block L*D*L' or U*D*U' factorization as computed by DSPTRF.


IPIV

          IPIV is INTEGER array, dimension (N)
          The pivot indices from DSPTRF.


C

          C is DOUBLE PRECISION array, dimension (LDC,N)


LDC

          LDC is INTEGER
          The leading dimension of the array C.  LDC >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          If UPLO = 'L', norm(L*D*L' - A) / ( N * norm(A) * EPS )
          If UPLO = 'U', norm(U*D*U' - A) / ( N * norm(A) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dsyt01 (character UPLO, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, double precision, dimension( ldc, * ) C, integer LDC, double precision, dimension( * ) RWORK, double precision RESID)

DSYT01

Purpose:

 DSYT01 reconstructs a symmetric indefinite matrix A from its
 block L*D*L' or U*D*U' factorization and computes the residual
    norm( C - A ) / ( N * norm(A) * EPS ),
 where C is the reconstructed matrix and EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original symmetric matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (LDAFAC,N)
          The factored form of the matrix A.  AFAC contains the block
          diagonal matrix D and the multipliers used to obtain the
          factor L or U from the block L*D*L' or U*D*U' factorization
          as computed by DSYTRF.


LDAFAC

          LDAFAC is INTEGER
          The leading dimension of the array AFAC.  LDAFAC >= max(1,N).


IPIV

          IPIV is INTEGER array, dimension (N)
          The pivot indices from DSYTRF.


C

          C is DOUBLE PRECISION array, dimension (LDC,N)


LDC

          LDC is INTEGER
          The leading dimension of the array C.  LDC >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          If UPLO = 'L', norm(L*D*L' - A) / ( N * norm(A) * EPS )
          If UPLO = 'U', norm(U*D*U' - A) / ( N * norm(A) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

subroutine dsyt01_rook (character UPLO, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, double precision, dimension( ldc, * ) C, integer LDC, double precision, dimension( * ) RWORK, double precision RESID)

DSYT01_ROOK

Purpose:

 DSYT01_ROOK reconstructs a symmetric indefinite matrix A from its
 block L*D*L' or U*D*U' factorization and computes the residual
    norm( C - A ) / ( N * norm(A) * EPS ),
 where C is the reconstructed matrix and EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          symmetric matrix A is stored:
          = 'U':  Upper triangular
          = 'L':  Lower triangular


N

          N is INTEGER
          The number of rows and columns of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The original symmetric matrix A.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N)


AFAC

          AFAC is DOUBLE PRECISION array, dimension (LDAFAC,N)
          The factored form of the matrix A.  AFAC contains the block
          diagonal matrix D and the multipliers used to obtain the
          factor L or U from the block L*D*L' or U*D*U' factorization
          as computed by DSYTRF_ROOK.


LDAFAC

          LDAFAC is INTEGER
          The leading dimension of the array AFAC.  LDAFAC >= max(1,N).


IPIV

          IPIV is INTEGER array, dimension (N)
          The pivot indices from DSYTRF_ROOK.


C

          C is DOUBLE PRECISION array, dimension (LDC,N)


LDC

          LDC is INTEGER
          The leading dimension of the array C.  LDC >= max(1,N).


RWORK

          RWORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          If UPLO = 'L', norm(L*D*L' - A) / ( N * norm(A) * EPS )
          If UPLO = 'U', norm(U*D*U' - A) / ( N * norm(A) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

subroutine dtbt02 (character UPLO, character TRANS, character DIAG, integer N, integer KD, integer NRHS, double precision, dimension( ldab, * ) AB, integer LDAB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) WORK, double precision RESID)

DTBT02

Purpose:

 DTBT02 computes the residual for the computed solution to a
 triangular system of linear equations  A*x = b  or  A' *x = b when
 A is a triangular band matrix.  Here A' is the transpose of A and
 x and b are N by NRHS matrices.  The test ratio is the maximum over
 the number of right hand sides of
    norm(b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS ),
 where op(A) denotes A or A' and EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation applied to A.
          = 'N':  A *x = b  (No transpose)
          = 'T':  A'*x = b  (Transpose)
          = 'C':  A'*x = b  (Conjugate transpose = Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


KD

          KD is INTEGER
          The number of superdiagonals or subdiagonals of the
          triangular band matrix A.  KD >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrices X and B.  NRHS >= 0.


AB

          AB is DOUBLE PRECISION array, dimension (LDAB,N)
          The upper or lower triangular band matrix A, stored in the
          first kd+1 rows of the array. The j-th column of A is stored
          in the j-th column of the array AB as follows:
          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).


LDAB

          LDAB is INTEGER
          The leading dimension of the array AB.  LDAB >= KD+1.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(op(A)*x - b) / ( norm(op(A)) * norm(x) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtbt03 (character UPLO, character TRANS, character DIAG, integer N, integer KD, integer NRHS, double precision, dimension( ldab, * ) AB, integer LDAB, double precision SCALE, double precision, dimension( * ) CNORM, double precision TSCAL, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) WORK, double precision RESID)

DTBT03

Purpose:

 DTBT03 computes the residual for the solution to a scaled triangular
 system of equations  A*x = s*b  or  A'*x = s*b  when A is a
 triangular band matrix. Here A' is the transpose of A, s is a scalar,
 and x and b are N by NRHS matrices.  The test ratio is the maximum
 over the number of right hand sides of
    norm(s*b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS ),
 where op(A) denotes A or A' and EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation applied to A.
          = 'N':  A *x = b  (No transpose)
          = 'T':  A'*x = b  (Transpose)
          = 'C':  A'*x = b  (Conjugate transpose = Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


KD

          KD is INTEGER
          The number of superdiagonals or subdiagonals of the
          triangular band matrix A.  KD >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrices X and B.  NRHS >= 0.


AB

          AB is DOUBLE PRECISION array, dimension (LDAB,N)
          The upper or lower triangular band matrix A, stored in the
          first kd+1 rows of the array. The j-th column of A is stored
          in the j-th column of the array AB as follows:
          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).


LDAB

          LDAB is INTEGER
          The leading dimension of the array AB.  LDAB >= KD+1.


SCALE

          SCALE is DOUBLE PRECISION
          The scaling factor s used in solving the triangular system.


CNORM

          CNORM is DOUBLE PRECISION array, dimension (N)
          The 1-norms of the columns of A, not counting the diagonal.


TSCAL

          TSCAL is DOUBLE PRECISION
          The scaling factor used in computing the 1-norms in CNORM.
          CNORM actually contains the column norms of TSCAL*A.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(op(A)*x - s*b) / ( norm(op(A)) * norm(x) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtbt05 (character UPLO, character TRANS, character DIAG, integer N, integer KD, integer NRHS, double precision, dimension( ldab, * ) AB, integer LDAB, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DTBT05

Purpose:

 DTBT05 tests the error bounds from iterative refinement for the
 computed solution to a system of equations A*X = B, where A is a
 triangular band matrix.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( NZ*EPS + (*) ), where
             (*) = NZ*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )
             and NZ = max. number of nonzeros in any row of A, plus 1


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations.
          = 'N':  A * X = B  (No transpose)
          = 'T':  A'* X = B  (Transpose)
          = 'C':  A'* X = B  (Conjugate transpose = Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The number of rows of the matrices X, B, and XACT, and the
          order of the matrix A.  N >= 0.


KD

          KD is INTEGER
          The number of super-diagonals of the matrix A if UPLO = 'U',
          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X, B, and XACT.
          NRHS >= 0.


AB

          AB is DOUBLE PRECISION array, dimension (LDAB,N)
          The upper or lower triangular band matrix A, stored in the
          first kd+1 rows of the array. The j-th column of A is stored
          in the j-th column of the array AB as follows:
          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
          If DIAG = 'U', the diagonal elements of A are not referenced
          and are assumed to be 1.


LDAB

          LDAB is INTEGER
          The leading dimension of the array AB.  LDAB >= KD+1.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( NZ*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtbt06 (double precision RCOND, double precision RCONDC, character UPLO, character DIAG, integer N, integer KD, double precision, dimension( ldab, * ) AB, integer LDAB, double precision, dimension( * ) WORK, double precision RAT)

DTBT06

Purpose:

 DTBT06 computes a test ratio comparing RCOND (the reciprocal
 condition number of a triangular matrix A) and RCONDC, the estimate
 computed by DTBCON.  Information about the triangular matrix A is
 used if one estimate is zero and the other is non-zero to decide if
 underflow in the estimate is justified.


 

Parameters:

RCOND

          RCOND is DOUBLE PRECISION
          The estimate of the reciprocal condition number obtained by
          forming the explicit inverse of the matrix A and computing
          RCOND = 1/( norm(A) * norm(inv(A)) ).


RCONDC

          RCONDC is DOUBLE PRECISION
          The estimate of the reciprocal condition number computed by
          DTBCON.


UPLO

          UPLO is CHARACTER
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


DIAG

          DIAG is CHARACTER
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


KD

          KD is INTEGER
          The number of superdiagonals or subdiagonals of the
          triangular band matrix A.  KD >= 0.


AB

          AB is DOUBLE PRECISION array, dimension (LDAB,N)
          The upper or lower triangular band matrix A, stored in the
          first kd+1 rows of the array. The j-th column of A is stored
          in the j-th column of the array AB as follows:
          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).


LDAB

          LDAB is INTEGER
          The leading dimension of the array AB.  LDAB >= KD+1.


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RAT

          RAT is DOUBLE PRECISION
          The test ratio.  If both RCOND and RCONDC are nonzero,
             RAT = MAX( RCOND, RCONDC )/MIN( RCOND, RCONDC ) - 1.
          If RAT = 0, the two estimates are exactly the same.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtpt01 (character UPLO, character DIAG, integer N, double precision, dimension( * ) AP, double precision, dimension( * ) AINVP, double precision RCOND, double precision, dimension( * ) WORK, double precision RESID)

DTPT01

Purpose:

 DTPT01 computes the residual for a triangular matrix A times its
 inverse when A is stored in packed format:
    RESID = norm(A*AINV - I) / ( N * norm(A) * norm(AINV) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


AP

          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The original upper or lower triangular matrix A, packed
          columnwise in a linear array.  The j-th column of A is stored
          in the array AP as follows:
          if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j;
          if UPLO = 'L',
             AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n.


AINVP

          AINVP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          On entry, the (triangular) inverse of the matrix A, packed
          columnwise in a linear array as in AP.
          On exit, the contents of AINVP are destroyed.


RCOND

          RCOND is DOUBLE PRECISION
          The reciprocal condition number of A, computed as
          1/(norm(A) * norm(AINV)).


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          norm(A*AINV - I) / ( N * norm(A) * norm(AINV) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtpt02 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, double precision, dimension( * ) AP, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) WORK, double precision RESID)

DTPT02

Purpose:

 DTPT02 computes the residual for the computed solution to a
 triangular system of linear equations  A*x = b  or  A'*x = b  when
 the triangular matrix A is stored in packed format.  Here A' is the
 transpose of A and x and b are N by NRHS matrices.  The test ratio is
 the maximum over the number of right hand sides of
    norm(b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS ),
 where op(A) denotes A or A' and EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation applied to A.
          = 'N':  A *x = b  (No transpose)
          = 'T':  A'*x = b  (Transpose)
          = 'C':  A'*x = b  (Conjugate transpose = Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrices X and B.  NRHS >= 0.


AP

          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The upper or lower triangular matrix A, packed columnwise in
          a linear array.  The j-th column of A is stored in the array
          AP as follows:
          if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j;
          if UPLO = 'L',
             AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(op(A)*x - b) / ( norm(op(A)) * norm(x) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtpt03 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, double precision, dimension( * ) AP, double precision SCALE, double precision, dimension( * ) CNORM, double precision TSCAL, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) WORK, double precision RESID)

DTPT03

Purpose:

 DTPT03 computes the residual for the solution to a scaled triangular
 system of equations A*x = s*b  or  A'*x = s*b  when the triangular
 matrix A is stored in packed format.  Here A' is the transpose of A,
 s is a scalar, and x and b are N by NRHS matrices.  The test ratio is
 the maximum over the number of right hand sides of
    norm(s*b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS ),
 where op(A) denotes A or A' and EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation applied to A.
          = 'N':  A *x = s*b  (No transpose)
          = 'T':  A'*x = s*b  (Transpose)
          = 'C':  A'*x = s*b  (Conjugate transpose = Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrices X and B.  NRHS >= 0.


AP

          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The upper or lower triangular matrix A, packed columnwise in
          a linear array.  The j-th column of A is stored in the array
          AP as follows:
          if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j;
          if UPLO = 'L',
             AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n.


SCALE

          SCALE is DOUBLE PRECISION
          The scaling factor s used in solving the triangular system.


CNORM

          CNORM is DOUBLE PRECISION array, dimension (N)
          The 1-norms of the columns of A, not counting the diagonal.


TSCAL

          TSCAL is DOUBLE PRECISION
          The scaling factor used in computing the 1-norms in CNORM.
          CNORM actually contains the column norms of TSCAL*A.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(op(A)*x - s*b) / ( norm(op(A)) * norm(x) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtpt05 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, double precision, dimension( * ) AP, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DTPT05

Purpose:

 DTPT05 tests the error bounds from iterative refinement for the
 computed solution to a system of equations A*X = B, where A is a
 triangular matrix in packed storage format.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( (n+1)*EPS + (*) ), where
             (*) = (n+1)*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations.
          = 'N':  A * X = B  (No transpose)
          = 'T':  A'* X = B  (Transpose)
          = 'C':  A'* X = B  (Conjugate transpose = Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The number of rows of the matrices X, B, and XACT, and the
          order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X, B, and XACT.
          NRHS >= 0.


AP

          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The upper or lower triangular matrix A, packed columnwise in
          a linear array.  The j-th column of A is stored in the array
          AP as follows:
          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
          If DIAG = 'U', the diagonal elements of A are not referenced
          and are assumed to be 1.


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( (n+1)*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtpt06 (double precision RCOND, double precision RCONDC, character UPLO, character DIAG, integer N, double precision, dimension( * ) AP, double precision, dimension( * ) WORK, double precision RAT)

DTPT06

Purpose:

 DTPT06 computes a test ratio comparing RCOND (the reciprocal
 condition number of a triangular matrix A) and RCONDC, the estimate
 computed by DTPCON.  Information about the triangular matrix A is
 used if one estimate is zero and the other is non-zero to decide if
 underflow in the estimate is justified.


 

Parameters:

RCOND

          RCOND is DOUBLE PRECISION
          The estimate of the reciprocal condition number obtained by
          forming the explicit inverse of the matrix A and computing
          RCOND = 1/( norm(A) * norm(inv(A)) ).


RCONDC

          RCONDC is DOUBLE PRECISION
          The estimate of the reciprocal condition number computed by
          DTPCON.


UPLO

          UPLO is CHARACTER
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


DIAG

          DIAG is CHARACTER
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


AP

          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
          The upper or lower triangular matrix A, packed columnwise in
          a linear array.  The j-th column of A is stored in the array
          AP as follows:
          if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j;
          if UPLO = 'L',
             AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n.


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RAT

          RAT is DOUBLE PRECISION
          The test ratio.  If both RCOND and RCONDC are nonzero,
             RAT = MAX( RCOND, RCONDC )/MIN( RCOND, RCONDC ) - 1.
          If RAT = 0, the two estimates are exactly the same.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtrt01 (character UPLO, character DIAG, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldainv, * ) AINV, integer LDAINV, double precision RCOND, double precision, dimension( * ) WORK, double precision RESID)

DTRT01

Purpose:

 DTRT01 computes the residual for a triangular matrix A times its
 inverse:
    RESID = norm( A*AINV - I ) / ( N * norm(A) * norm(AINV) * EPS ),
 where EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The triangular matrix A.  If UPLO = 'U', the leading n by n
          upper triangular part of the array A contains the upper
          triangular matrix, and the strictly lower triangular part of
          A is not referenced.  If UPLO = 'L', the leading n by n lower
          triangular part of the array A contains the lower triangular
          matrix, and the strictly upper triangular part of A is not
          referenced.  If DIAG = 'U', the diagonal elements of A are
          also not referenced and are assumed to be 1.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


AINV

          AINV is DOUBLE PRECISION array, dimension (LDAINV,N)
          On entry, the (triangular) inverse of the matrix A, in the
          same storage format as A.
          On exit, the contents of AINV are destroyed.


LDAINV

          LDAINV is INTEGER
          The leading dimension of the array AINV.  LDAINV >= max(1,N).


RCOND

          RCOND is DOUBLE PRECISION
          The reciprocal condition number of A, computed as
          1/(norm(A) * norm(AINV)).


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          norm(A*AINV - I) / ( N * norm(A) * norm(AINV) * EPS )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtrt02 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) WORK, double precision RESID)

DTRT02

Purpose:

 DTRT02 computes the residual for the computed solution to a
 triangular system of linear equations  A*x = b  or  A'*x = b.
 Here A is a triangular matrix, A' is the transpose of A, and x and b
 are N by NRHS matrices.  The test ratio is the maximum over the
 number of right hand sides of
    norm(b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS ),
 where op(A) denotes A or A' and EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation applied to A.
          = 'N':  A *x = b  (No transpose)
          = 'T':  A'*x = b  (Transpose)
          = 'C':  A'*x = b  (Conjugate transpose = Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrices X and B.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The triangular matrix A.  If UPLO = 'U', the leading n by n
          upper triangular part of the array A contains the upper
          triangular matrix, and the strictly lower triangular part of
          A is not referenced.  If UPLO = 'L', the leading n by n lower
          triangular part of the array A contains the lower triangular
          matrix, and the strictly upper triangular part of A is not
          referenced.  If DIAG = 'U', the diagonal elements of A are
          also not referenced and are assumed to be 1.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(op(A)*x - b) / ( norm(op(A)) * norm(x) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtrt03 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision SCALE, double precision, dimension( * ) CNORM, double precision TSCAL, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) WORK, double precision RESID)

DTRT03

Purpose:

 DTRT03 computes the residual for the solution to a scaled triangular
 system of equations A*x = s*b  or  A'*x = s*b.
 Here A is a triangular matrix, A' is the transpose of A, s is a
 scalar, and x and b are N by NRHS matrices.  The test ratio is the
 maximum over the number of right hand sides of
    norm(s*b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS ),
 where op(A) denotes A or A' and EPS is the machine epsilon.


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the operation applied to A.
          = 'N':  A *x = s*b  (No transpose)
          = 'T':  A'*x = s*b  (Transpose)
          = 'C':  A'*x = s*b  (Conjugate transpose = Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrices X and B.  NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The triangular matrix A.  If UPLO = 'U', the leading n by n
          upper triangular part of the array A contains the upper
          triangular matrix, and the strictly lower triangular part of
          A is not referenced.  If UPLO = 'L', the leading n by n lower
          triangular part of the array A contains the lower triangular
          matrix, and the strictly upper triangular part of A is not
          referenced.  If DIAG = 'U', the diagonal elements of A are
          also not referenced and are assumed to be 1.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


SCALE

          SCALE is DOUBLE PRECISION
          The scaling factor s used in solving the triangular system.


CNORM

          CNORM is DOUBLE PRECISION array, dimension (N)
          The 1-norms of the columns of A, not counting the diagonal.


TSCAL

          TSCAL is DOUBLE PRECISION
          The scaling factor used in computing the 1-norms in CNORM.
          CNORM actually contains the column norms of TSCAL*A.


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors for the system of linear
          equations.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RESID

          RESID is DOUBLE PRECISION
          The maximum over the number of right hand sides of
          norm(op(A)*x - s*b) / ( norm(op(A)) * norm(x) * EPS ).


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtrt05 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( ldx, * ) X, integer LDX, double precision, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)

DTRT05

Purpose:

 DTRT05 tests the error bounds from iterative refinement for the
 computed solution to a system of equations A*X = B, where A is a
 triangular n by n matrix.
 RESLTS(1) = test of the error bound
           = norm(X - XACT) / ( norm(X) * FERR )
 A large value is returned if this ratio is not less than one.
 RESLTS(2) = residual from the iterative refinement routine
           = the maximum of BERR / ( (n+1)*EPS + (*) ), where
             (*) = (n+1)*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )


 

Parameters:

UPLO

          UPLO is CHARACTER*1
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


TRANS

          TRANS is CHARACTER*1
          Specifies the form of the system of equations.
          = 'N':  A * X = B  (No transpose)
          = 'T':  A'* X = B  (Transpose)
          = 'C':  A'* X = B  (Conjugate transpose = Transpose)


DIAG

          DIAG is CHARACTER*1
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The number of rows of the matrices X, B, and XACT, and the
          order of the matrix A.  N >= 0.


NRHS

          NRHS is INTEGER
          The number of columns of the matrices X, B, and XACT.
          NRHS >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The triangular matrix A.  If UPLO = 'U', the leading n by n
          upper triangular part of the array A contains the upper
          triangular matrix, and the strictly lower triangular part of
          A is not referenced.  If UPLO = 'L', the leading n by n lower
          triangular part of the array A contains the lower triangular
          matrix, and the strictly upper triangular part of A is not
          referenced.  If DIAG = 'U', the diagonal elements of A are
          also not referenced and are assumed to be 1.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


B

          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The right hand side vectors for the system of linear
          equations.


LDB

          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).


X

          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The computed solution vectors.  Each vector is stored as a
          column of the matrix X.


LDX

          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).


XACT

          XACT is DOUBLE PRECISION array, dimension (LDX,NRHS)
          The exact solution vectors.  Each vector is stored as a
          column of the matrix XACT.


LDXACT

          LDXACT is INTEGER
          The leading dimension of the array XACT.  LDXACT >= max(1,N).


FERR

          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bounds for each solution vector
          X.  If XTRUE is the true solution, FERR bounds the magnitude
          of the largest entry in (X - XTRUE) divided by the magnitude
          of the largest entry in X.


BERR

          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector (i.e., the smallest relative change in any entry of A
          or B that makes X an exact solution).


RESLTS

          RESLTS is DOUBLE PRECISION array, dimension (2)
          The maximum over the NRHS solution vectors of the ratios:
          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
          RESLTS(2) = BERR / ( (n+1)*EPS + (*) )


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine dtrt06 (double precision RCOND, double precision RCONDC, character UPLO, character DIAG, integer N, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) WORK, double precision RAT)

DTRT06

Purpose:

 DTRT06 computes a test ratio comparing RCOND (the reciprocal
 condition number of a triangular matrix A) and RCONDC, the estimate
 computed by DTRCON.  Information about the triangular matrix A is
 used if one estimate is zero and the other is non-zero to decide if
 underflow in the estimate is justified.


 

Parameters:

RCOND

          RCOND is DOUBLE PRECISION
          The estimate of the reciprocal condition number obtained by
          forming the explicit inverse of the matrix A and computing
          RCOND = 1/( norm(A) * norm(inv(A)) ).


RCONDC

          RCONDC is DOUBLE PRECISION
          The estimate of the reciprocal condition number computed by
          DTRCON.


UPLO

          UPLO is CHARACTER
          Specifies whether the matrix A is upper or lower triangular.
          = 'U':  Upper triangular
          = 'L':  Lower triangular


DIAG

          DIAG is CHARACTER
          Specifies whether or not the matrix A is unit triangular.
          = 'N':  Non-unit triangular
          = 'U':  Unit triangular


N

          N is INTEGER
          The order of the matrix A.  N >= 0.


A

          A is DOUBLE PRECISION array, dimension (LDA,N)
          The triangular matrix A.  If UPLO = 'U', the leading n by n
          upper triangular part of the array A contains the upper
          triangular matrix, and the strictly lower triangular part of
          A is not referenced.  If UPLO = 'L', the leading n by n lower
          triangular part of the array A contains the lower triangular
          matrix, and the strictly upper triangular part of A is not
          referenced.  If DIAG = 'U', the diagonal elements of A are
          also not referenced and are assumed to be 1.


LDA

          LDA is INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).


WORK

          WORK is DOUBLE PRECISION array, dimension (N)


RAT

          RAT is DOUBLE PRECISION
          The test ratio.  If both RCOND and RCONDC are nonzero,
             RAT = MAX( RCOND, RCONDC )/MIN( RCOND, RCONDC ) - 1.
          If RAT = 0, the two estimates are exactly the same.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2011

subroutine sdrvsy_rook (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, real, dimension( * ) A, real, dimension( * ) AFAC, real, dimension( * ) AINV, real, dimension( * ) B, real, dimension( * ) X, real, dimension( * ) XACT, real, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)

SDRVSY_ROOK

Purpose:

 SDRVSY_ROOK tests the driver routines SSYSV_ROOK.


 

Parameters:

DOTYPE

          DOTYPE is LOGICAL array, dimension (NTYPES)
          The matrix types to be used for testing.  Matrices of type j
          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.


NN

          NN is INTEGER
          The number of values of N contained in the vector NVAL.


NVAL

          NVAL is INTEGER array, dimension (NN)
          The values of the matrix dimension N.


NRHS

          NRHS is INTEGER
          The number of right hand side vectors to be generated for
          each linear system.


THRESH

          THRESH is DOUBLE PRECISION
          The threshold value for the test ratios.  A result is
          included in the output file if RESULT >= THRESH.  To have
          every test ratio printed, use THRESH = 0.


TSTERR

          TSTERR is LOGICAL
          Flag that indicates whether error exits are to be tested.


NMAX

          NMAX is INTEGER
          The maximum value permitted for N, used in dimensioning the
          work arrays.


A

          A is REAL array, dimension (NMAX*NMAX)


AFAC

          AFAC is REAL array, dimension (NMAX*NMAX)


AINV

          AINV is REAL array, dimension (NMAX*NMAX)


B

          B is REAL array, dimension (NMAX*NRHS)


X

          X is REAL array, dimension (NMAX*NRHS)


XACT

          XACT is REAL array, dimension (NMAX*NRHS)


WORK

          WORK is REAL array, dimension
                      (NMAX*max(2,NRHS))


RWORK

          RWORK is REAL array, dimension (NMAX+2*NRHS)


IWORK

          IWORK is INTEGER array, dimension (2*NMAX)


NOUT

          NOUT is INTEGER
          The unit number for output.


 

Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

November 2013

Author

Generated automatically by Doxygen for LAPACK from the source code.