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 listdirected 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 listdirected 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.
NOUTNOUT 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.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NNB) The values of the blocksize NB.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
AA is DOUBLE PRECISION array, dimension (LA)
LALA 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.
AFACAFAC is DOUBLE PRECISION array, dimension (LAFAC)
LAFACLAFAC 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.
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX,NMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NBVAL) The values of the blocksize NB.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for M or N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(2*NMAX,2*NSMAX+NWORK))
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
AA is DOUBLE PRECISION array, dimension (NMAX*4)
AFAF is DOUBLE PRECISION array, dimension (NMAX*4)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB 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).
NBVALNBVAL is INTEGER array, dimension (NNB) The values of the blocksize NB.
NXVALNXVAL is INTEGER array, dimension (NNB) The values of the crossover point NX.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for M or N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFAF is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AQAQ is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ALAL is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ACAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
TAUTAU is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*NMAX)
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NBVAL) The values of the blocksize NB.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NBVAL) The values of the blocksize NB.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NBVAL) The values of the block size NB.
NRANKNRANK is INTEGER The number of values of RANK contained in the vector RANKVAL.
RANKVALRANKVAL is INTEGER array, dimension (NBVAL) The values of the block size NB.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
PERMPERM is DOUBLE PRECISION array, dimension (NMAX*NMAX)
PIVPIV is INTEGER array, dimension (NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*3)
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
AA is DOUBLE PRECISION array, dimension (NMAX*2)
DD is DOUBLE PRECISION array, dimension (NMAX*2)
EE is DOUBLE PRECISION array, dimension (NMAX*2)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
NOUTNOUT 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.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB 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).
NBVALNBVAL is INTEGER array, dimension (NNB) The values of the blocksize NB.
NXVALNXVAL is INTEGER array, dimension (NNB) The values of the crossover point NX.
THRESHTHRESH 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.
AA 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.
COPYACOPYA is DOUBLE PRECISION array, dimension (MMAX*NMAX)
SS is DOUBLE PRECISION array, dimension (min(MMAX,NMAX))
TAUTAU is DOUBLE PRECISION array, dimension (MMAX)
WORKWORK is DOUBLE PRECISION array, dimension (MMAX*NMAX + 4*NMAX + MMAX)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB 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).
NBVALNBVAL is INTEGER array, dimension (NNB) The values of the blocksize NB.
NXVALNXVAL is INTEGER array, dimension (NNB) The values of the crossover point NX.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for M or N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFAF is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AQAQ is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ALAL is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ACAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
TAUTAU is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*NMAX)
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX)
NOUTNOUT 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.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB 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).
NBVALNBVAL is INTEGER array, dimension (NNB) The values of the blocksize NB.
NXVALNXVAL is INTEGER array, dimension (NNB) The values of the crossover point NX.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for M or N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFAF is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AQAQ is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ARAR is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ACAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
TAUTAU is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*NMAX)
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX)
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NBVAL) The values of the blocksize NB.
NOUTNOUT 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NBVAL) The values of the blocksize NB.
NOUTNOUT 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.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB 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).
NBVALNBVAL is INTEGER array, dimension (NNB) The values of the blocksize NB.
NXVALNXVAL is INTEGER array, dimension (NNB) The values of the crossover point NX.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for M or N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFAF is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AQAQ is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ARAR is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ACAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
TAUTAU is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*NMAX)
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX)
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(2,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX+2*NSMAX)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NBVAL) The values of the blocksize NB.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NBVAL) The values of the blocksize NB.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The leading dimension of the work arrays. NMAX >= the maximum value of N in NVAL.
ABAB is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The leading dimension of the work arrays. NMAX >= the maximumm value of N in NVAL.
APAP is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
AINVPAINVP is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
IWORKIWORK is INTEGER array, dimension (NMAX)
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NNB) The values of the blocksize NB.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The leading dimension of the work arrays. NMAX >= the maximum value of N in NVAL.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
AA 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.
COPYACOPYA is DOUBLE PRECISION array, dimension (MMAX*NMAX)
SS is DOUBLE PRECISION array, dimension (min(MMAX,NMAX))
TAUTAU is DOUBLE PRECISION array, dimension (MMAX)
WORKWORK is DOUBLE PRECISION array, dimension (MMAX*NMAX + 4*NMAX + MMAX)
NOUTNOUT 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.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
NMAXNMAX is INTEGER The maximum value permitted for M or N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(2*NMAX,2*NSMAX+NWORK))
SWORKSWORK is REAL array, dimension (NMAX*(NSMAX+NMAX))
IWORKIWORK is INTEGER array, dimension NMAX
NOUTNOUT 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.
NMNM is INTEGER The number of values of N contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix dimension N.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH 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.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
XX is DOUBLE PRECISION array, dimension (NMAX*NSMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(2*NMAX,2*NSMAX+NWORK))
SWORKSWORK is REAL array, dimension (NMAX*(NSMAX+NMAX))
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
AA is DOUBLE PRECISION array, dimension (LA)
LALA is INTEGER The length of the array A. LA >= (2*NMAX1)*NMAX where NMAX is the largest entry in NVAL.
AFBAFB is DOUBLE PRECISION array, dimension (LAFB)
LAFBLAFB is INTEGER The length of the array AFB. LAFB >= (3*NMAX2)*NMAX where NMAX is the largest entry in NVAL.
ASAVASAV is DOUBLE PRECISION array, dimension (LA)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
BSAVBSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (2*NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS,NMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NRHS))
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
AA is DOUBLE PRECISION array, dimension (LA)
LALA is INTEGER The length of the array A. LA >= (2*NMAX1)*NMAX where NMAX is the largest entry in NVAL.
AFBAFB is DOUBLE PRECISION array, dimension (LAFB)
LAFBLAFB is INTEGER The length of the array AFB. LAFB >= (3*NMAX2)*NMAX where NMAX is the largest entry in NVAL.
ASAVASAV is DOUBLE PRECISION array, dimension (LA)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
BSAVBSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (2*NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS,NMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NRHS))
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ASAVASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
BSAVBSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (2*NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (2*NRHS+NMAX)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ASAVASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
BSAVBSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (2*NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (2*NRHS+NMAX)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand sides, NRHS >= 0.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
AA is DOUBLE PRECISION array, dimension (NMAX*4)
AFAF is DOUBLE PRECISION array, dimension (NMAX*4)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NRHS))
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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 rankdeficient. j=5: The same of 4, but A is scaled up. j=6: The same of 5, but A is scaled down.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
NNBNNB 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).
NBVALNBVAL is INTEGER array, dimension (NNB) The values of the blocksize NB.
NXVALNXVAL is INTEGER array, dimension (NNB) The values of the crossover point NX.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
AA 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.
COPYACOPYA is DOUBLE PRECISION array, dimension (MMAX*NMAX)
BB 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.
COPYBCOPYB is DOUBLE PRECISION array, dimension (MMAX*NSMAX)
CC is DOUBLE PRECISION array, dimension (MMAX*NSMAX)
SS is DOUBLE PRECISION array, dimension (min(MMAX,NMAX))
COPYSCOPYS is DOUBLE PRECISION array, dimension (min(MMAX,NMAX))
WORKWORK is DOUBLE PRECISION array, dimension (MMAX*NMAX + 4*NMAX + MMAX).
IWORKIWORK is INTEGER array, dimension (15*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ASAVASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
BSAVBSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ASAVASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
BSAVBSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ASAVASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
BSAVBSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
ASAVASAV is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
BSAVBSAV is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
AA is DOUBLE PRECISION array, dimension (NMAX*2)
DD is DOUBLE PRECISION array, dimension (NMAX*2)
EE is DOUBLE PRECISION array, dimension (NMAX*2)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NRHS))
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
THRESHTHRESH 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.
AA is DOUBLE PRECISION array, dimension (LDA,NMAX)
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
ARFARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).
WORKWORK 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
AA is DOUBLE PRECISION array, dimension (LDA,NMAX)
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
ARFARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).
APAP is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).
ASAVASAV 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
THRESHTHRESH 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.
AA is DOUBLE PRECISION array, dimension (LDA,NMAX)
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
ARFARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).
B1B1 is DOUBLE PRECISION array, dimension (LDA,NMAX)
B2B2 is DOUBLE PRECISION array, dimension (LDA,NMAX)
D_WORK_DLANGED_WORK_DLANGE is DOUBLE PRECISION array, dimension (NMAX)
D_WORK_DGEQRFD_WORK_DGEQRF is DOUBLE PRECISION array, dimension (NMAX)
TAUTAU 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
THRESHTHRESH 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.
C1C1 is DOUBLE PRECISION array, dimension (LDC,NMAX)
C2C2 is DOUBLE PRECISION array, dimension (LDC,NMAX)
LDCLDC is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
CRFCRF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).
AA is DOUBLE PRECISION array, dimension (LDA,NMAX)
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
D_WORK_DLANGED_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 NbyNRHS 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(XXACT) * RCOND ) / ( norm(XACT) * EPS ), where EPS is the machine precision, RCOND the condition number of A, and norm( . ) the 1norm for (1,2,3) and the infnorm 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of righthand sides NRHS.
NNTNNT is INTEGER The number of values of MATRIX TYPE contained in the vector NTVAL.
NTVALNTVAL is INTEGER array, dimension (NNT) The values of matrix type (between 0 and 9 for PO/PP/PF matrices).
THRESHTHRESH 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.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
ASAVASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)
BSAVBSAV is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*MAXRHS)
ARFARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2)
ARFINVARFINV is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2)
D_WORK_DLATMSD_WORK_DLATMS is DOUBLE PRECISION array, dimension ( 3*NMAX )
D_WORK_DPOT01D_WORK_DPOT01 is DOUBLE PRECISION array, dimension ( NMAX )
D_TEMP_DPOT02D_TEMP_DPOT02 is DOUBLE PRECISION array, dimension ( NMAX*MAXRHS )
D_TEMP_DPOT03D_TEMP_DPOT03 is DOUBLE PRECISION array, dimension ( NMAX*NMAX )
D_WORK_DLATMSD_WORK_DLATMS is DOUBLE PRECISION array, dimension ( NMAX )
D_WORK_DLANSYD_WORK_DLANSY is DOUBLE PRECISION array, dimension ( NMAX )
D_WORK_DPOT02D_WORK_DPOT02 is DOUBLE PRECISION array, dimension ( NMAX )
D_WORK_DPOT03D_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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*(NMAX+1)/2)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AFACAFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX)
AINVAINV is DOUBLE PRECISION array, dimension (NMAX*NMAX)
BB is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XX is DOUBLE PRECISION array, dimension (NMAX*NRHS)
XACTXACT is DOUBLE PRECISION array, dimension (NMAX*NRHS)
WORKWORK is DOUBLE PRECISION array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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 triangularpentagonal matrix.
Parameters:

PATH
PATH is CHARACTER*3 The LAPACK path name for the routines to be tested.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NUNITNUNIT 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.
NN is INTEGER The number of columns of the matrix A. N >= 0.
KLKL is INTEGER The number of subdiagonals within the band of A. KL >= 0.
KUKU is INTEGER The number of superdiagonals within the band of A. KU >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original matrix A in band storage, stored in rows 1 to KL+KU+1.
LDALDA is INTEGER. The leading dimension of the array A. LDA >= max(1,KL+KU+1).
AFACAFAC 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.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,2*KL*KU+1).
IPIVIPIV is INTEGER array, dimension (min(M,N)) The pivot indices from DGBTRF.
WORKWORK is DOUBLE PRECISION array, dimension (2*KL+KU+1)
RESIDRESID 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
MM is INTEGER The number of rows of the matrix A. M >= 0.
NN is INTEGER The number of columns of the matrix A. N >= 0.
KLKL is INTEGER The number of subdiagonals within the band of A. KL >= 0.
KUKU is INTEGER The number of superdiagonals within the band of A. KU >= 0.
NRHSNRHS is INTEGER The number of columns of B. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original matrix A in band storage, stored in rows 1 to KL+KU+1.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,KL+KU+1).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX 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).
BB 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.
LDBLDB 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).
RESIDRESID 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)
NN is INTEGER The number of rows of the matrices X, B, and XACT, and the order of the matrix A. N >= 0.
KLKL is INTEGER The number of subdiagonals within the band of A. KL >= 0.
KUKU is INTEGER The number of superdiagonals within the band of A. KU >= 0.
NRHSNRHS is INTEGER The number of columns of the matrices X, B, and XACT. NRHS >= 0.
ABAB is DOUBLE PRECISION array, dimension (LDAB,N) The original band matrix A, stored in rows 1 to KL+KU+1. The jth column of A is stored in the jth column of the array AB as follows: AB(ku+1+ij,j) = A(i,j) for max(1,jku)<=i<=min(n,j+kl).
LDABLDAB is INTEGER The leading dimension of the array AB. LDAB >= KL+KU+1.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
BERRBERR 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).
RESLTSRESLTS 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 minimumnorm 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.
NN is INTEGER The number of columns of the matrix A. N >= M >= 0.
NRHSNRHS is INTEGER The number of columns of B. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) Details of the LQ factorization of the original matrix A as returned by DGELQF.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
TAUTAU is DOUBLE PRECISION array, dimension (M) Details of the orthogonal matrix Q.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) On entry, the mbynrhs right hand side matrix B. On exit, the nbynrhs solution matrix X.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= N.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = i, the ith 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 nonnegative diagonal.
Parameters:

M
M is INTEGER The number of rows in A.
NN is INTEGER The number of columns in A.
AA is DOUBLE PRECISION array, dimension (LDA, N) The matrix.
LDALDA 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.
NN is INTEGER The number of columns of the matrix A. M >= N >= 0.
NRHSNRHS is INTEGER The number of columns of B. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) Details of the QL factorization of the original matrix A as returned by DGEQLF.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
TAUTAU is DOUBLE PRECISION array, dimension (N) Details of the orthogonal matrix Q.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) On entry, the mbynrhs right hand side matrix B. On exit, the nbynrhs solution matrix X, stored in rows mn+1:m.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= M.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = i, the ith 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.
NN is INTEGER The number of columns of the matrix A. M >= N >= 0.
NRHSNRHS is INTEGER The number of columns of B. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) Details of the QR factorization of the original matrix A as returned by DGEQRF.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
TAUTAU is DOUBLE PRECISION array, dimension (N) Details of the orthogonal matrix Q.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) On entry, the mbynrhs right hand side matrix B. On exit, the nbynrhs solution matrix X.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= M.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = i, the ith 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 minimumnorm 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.
NN is INTEGER The number of columns of the matrix A. N >= M >= 0.
NRHSNRHS is INTEGER The number of columns of B. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) Details of the RQ factorization of the original matrix A as returned by DGERQF.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
TAUTAU is DOUBLE PRECISION array, dimension (M) Details of the orthogonal matrix Q.
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = i, the ith 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.
NN is INTEGER The number of columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original M x N matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,M).
AFACAFAC 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.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,M).
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from DGETRF.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESIDRESID 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
MM is INTEGER The number of rows of the matrix A. M >= 0.
NN is INTEGER The number of columns of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of B, the matrix of right hand sides. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original M x N matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,M).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX 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).
BB 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.
LDBLDB 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).
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESIDRESID 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.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original N x N matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
AINVAINV is DOUBLE PRECISION array, dimension (LDAINV,N) The inverse of the matrix A.
LDAINVLDAINV is INTEGER The leading dimension of the array AINV. LDAINV >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (LDWORK,N)
LDWORKLDWORK is INTEGER The leading dimension of the array WORK. LDWORK >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RCONDRCOND is DOUBLE PRECISION The reciprocal of the condition number of A, computed as ( 1/norm(A) ) / norm(AINV).
RESIDRESID 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(XXACT) * 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.
NRHSNRHS is INTEGER The number of columns of the matrices X and XACT. NRHS >= 0.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension( LDX, NRHS ) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
RCONDRCOND is DOUBLE PRECISION The reciprocal of the condition number of the coefficient matrix in the system of equations.
RESIDRESID is DOUBLE PRECISION The maximum over the NRHS solution vectors of ( norm(XXACT) * 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.
RCONDCRCONDC 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)
NN is INTEGER The number of rows of the matrices X and XACT. N >= 0.
NRHSNRHS is INTEGER The number of columns of the matrices X and XACT. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original n by n matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
CHKFERRCHKFERR is LOGICAL Set to .TRUE. to check FERR, .FALSE. not to check FERR. When the test system is illconditioned, the "true" solution in XACT may be incorrect.
BERRBERR 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).
RESLTSRESLTS 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
MM is INTEGER The number of rows of the matrix A. M >= 0.
NN is INTEGER The number of columns of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of B, the matrix of right hand sides. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original M x N matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,M).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX 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).
BB 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.
LDBLDB 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).
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESIDRESID 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.
DLDL is DOUBLE PRECISION array, dimension (N1) The (n1) subdiagonal elements of A.
DD is DOUBLE PRECISION array, dimension (N) The diagonal elements of A.
DUDU is DOUBLE PRECISION array, dimension (N1) The (n1) superdiagonal elements of A.
DLFDLF is DOUBLE PRECISION array, dimension (N1) The (n1) multipliers that define the matrix L from the LU factorization of A.
DFDF is DOUBLE PRECISION array, dimension (N) The n diagonal elements of the upper triangular matrix U from the LU factorization of A.
DUFDUF is DOUBLE PRECISION array, dimension (N1) The (n1) elements of the first superdiagonal of U.
DU2DU2 is DOUBLE PRECISION array, dimension (N2) The (n2) elements of the second superdiagonal of U.
IPIVIPIV 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.
WORKWORK is DOUBLE PRECISION array, dimension (LDWORK,N)
LDWORKLDWORK is INTEGER The leading dimension of the array WORK. LDWORK >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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)
NN is INTEGTER The order of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices B and X. NRHS >= 0.
DLDL is DOUBLE PRECISION array, dimension (N1) The (n1) subdiagonal elements of A.
DD is DOUBLE PRECISION array, dimension (N) The diagonal elements of A.
DUDU is DOUBLE PRECISION array, dimension (N1) The (n1) superdiagonal elements of A.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
RESIDRESID 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)
NN is INTEGER The number of rows of the matrices X and XACT. N >= 0.
NRHSNRHS is INTEGER The number of columns of the matrices X and XACT. NRHS >= 0.
DLDL is DOUBLE PRECISION array, dimension (N1) The (n1) subdiagonal elements of A.
DD is DOUBLE PRECISION array, dimension (N) The diagonal elements of A.
DUDU is DOUBLE PRECISION array, dimension (N1) The (n1) superdiagonal elements of A.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
BERRBERR 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).
RESLTSRESLTS 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 righthand sides in B and solutions in X such that A*X=B. The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N1) so that all entries are integers. The righthand 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.
NRHSNRHS is NRHS The requested number of righthand sides.
AA is DOUBLE PRECISION array, dimension (LDA, N) The generated scaled Hilbert matrix.
LDALDA is INTEGER The leading dimension of the array A. LDA >= N.
XX is DOUBLE PRECISION array, dimension (LDX, NRHS) The generated exact solutions. Currently, the first NRHS columns of the inverse Hilbert matrix.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= N.
BB is DOUBLE PRECISION array, dimension (LDB, NRHS) The generated righthand sides. Currently, the first NRHS columns of LCM(1, 2, ..., 2*N1) * the identity matrix.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= N.
WORKWORK is DOUBLE PRECISION array, dimension (N)
INFOINFO 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 ith 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
NN is INTEGER The length of the vector X.
XX is DOUBLE PRECISION array, dimension (1+(N1)*INCX) On entry, the vector of length n to be sorted. On exit, the vector x is sorted in the prescribed order.
INCXINCX 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.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices X and B.
ALPHAALPHA is DOUBLE PRECISION The scalar alpha. ALPHA must be 1. or 1.; otherwise, it is assumed to be 0.
DD is DOUBLE PRECISION array, dimension (N) The n diagonal elements of the tridiagonal matrix A.
EE is DOUBLE PRECISION array, dimension (N1) The (n1) subdiagonal or superdiagonal elements of A.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The N by NRHS matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(N,1).
BETABETA is DOUBLE PRECISION The scalar beta. BETA must be 0., 1., or 1.; otherwise, it is assumed to be 1.
BB 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.
LDBLDB 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, 2D storage xPP: Symmetric positive definite packed xPB: Symmetric positive definite banded xSY: Symmetric indefinite, 2D 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.
XTYPEXTYPE 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.
UPLOUPLO 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
TRANSTRANS 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
MM is INTEGER The number or rows of the matrix A. M >= 0.
NN is INTEGER The number of columns of the matrix A. N >= 0.
KLKL 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 <= M1.
KUKU 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 <= N1. If PATH = xTR, xTP, or xTB, specifies whether or not the matrix has unit diagonal: = 1: matrix has nonunit diagonal (default) = 2: matrix has unit diagonal
NRHSNRHS is INTEGER The number of right hand side vectors in the system A*X = B.
AA is DOUBLE PRECISION array, dimension (LDA,N) The test matrix whose type is given by PATH.
LDALDA 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).
XX 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.
LDXLDX is INTEGER The leading dimension of the array X. If TRANS = 'N', LDX >= max(1,N); if TRANS = 'T', LDX >= max(1,M).
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. If TRANS = 'N', LDB >= max(1,M); if TRANS = 'T', LDB >= max(1,N).
ISEEDISEED is INTEGER array, dimension (4) The seed vector for the random number generator (used in DLATMS). Modified on exit.
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = i, the ith 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.
IMATIMAT is INTEGER An integer key describing which matrix to generate for this path.
MM is INTEGER The number of rows in the matrix to be generated.
NN is INTEGER The number of columns in the matrix to be generated.
TYPETYPE is CHARACTER*1 The type of the matrix to be generated: = 'S': symmetric matrix = 'P': symmetric positive (semi)definite matrix = 'N': nonsymmetric matrix
KLKL is INTEGER The lower band width of the matrix to be generated.
KUKU is INTEGER The upper band width of the matrix to be generated.
ANORMANORM 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.
MODEMODE is INTEGER A key indicating how to choose the vector of eigenvalues.
CNDNUMCNDNUM is DOUBLE PRECISION The desired condition number.
DISTDIST 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.
IMATIMAT is INTEGER An integer key describing which matrix to generate for this path.
NN is INTEGER The number of rows and columns in the matrix to be generated.
TYPETYPE is CHARACTER*1 The type of the matrix to be generated: = 'S': symmetric matrix = 'P': symmetric positive (semi)definite matrix = 'N': nonsymmetric matrix
KLKL is INTEGER The lower band width of the matrix to be generated.
KUKU is INTEGER The upper band width of the matrix to be generated.
ANORMANORM 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.
MODEMODE is INTEGER A key indicating how to choose the vector of eigenvalues.
CNDNUMCNDNUM is DOUBLE PRECISION The desired condition number.
DISTDIST 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 2dimensional 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.
UPLOUPLO is CHARACTER*1 Specifies whether the matrix A will be upper or lower triangular. = 'U': Upper triangular = 'L': Lower triangular
TRANSTRANS is CHARACTER*1 Specifies whether the matrix or its transpose will be used. = 'N': No transpose = 'T': Transpose = 'C': Conjugate transpose (= transpose)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
ISEEDISEED is INTEGER array, dimension (4) The seed vector for the random number generator (used in DLATMS). Modified on exit.
NN is INTEGER The order of the matrix to be generated.
KDKD is INTEGER The number of superdiagonals or subdiagonals of the banded triangular matrix A. KD >= 0.
ABAB 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+ij,j) = A(i,j) for max(1,jkd)<=i<=j. If UPLO = 'L', AB(1+ij,j) = A(i,j) for j<=i<=min(n,j+kd).
LDABLDAB is INTEGER The leading dimension of the array AB. LDAB >= KD+1.
BB is DOUBLE PRECISION array, dimension (N)
WORKWORK is DOUBLE PRECISION array, dimension (2*N)
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = k, the kth 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.
UPLOUPLO is CHARACTER*1 Specifies whether the matrix A will be upper or lower triangular. = 'U': Upper triangular = 'L': Lower triangular
TRANSTRANS is CHARACTER*1 Specifies whether the matrix or its transpose will be used. = 'N': No transpose = 'T': Transpose = 'C': Conjugate transpose (= Transpose)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
ISEEDISEED is INTEGER array, dimension (4) The seed vector for the random number generator (used in DLATMS). Modified on exit.
NN is INTEGER The order of the matrix to be generated.
AA is DOUBLE PRECISION array, dimension (N*(N+1)/2) The upper or lower triangular matrix A, packed columnwise in a linear array. The jth column of A is stored in the array AP as follows: if UPLO = 'U', AP((j1)*j/2 + i) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP((j1)*(nj) + j*(j+1)/2 + ij) = A(i,j) for j<=i<=n.
BB is DOUBLE PRECISION array, dimension (N) The right hand side vector, if IMAT > 10.
WORKWORK is DOUBLE PRECISION array, dimension (3*N)
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = k, the kth 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.
UPLOUPLO is CHARACTER*1 Specifies whether the matrix A will be upper or lower triangular. = 'U': Upper triangular = 'L': Lower triangular
TRANSTRANS is CHARACTER*1 Specifies whether the matrix or its transpose will be used. = 'N': No transpose = 'T': Transpose = 'C': Conjugate transpose (= Transpose)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
ISEEDISEED is INTEGER array, dimension (4) The seed vector for the random number generator (used in DLATMS). Modified on exit.
NN is INTEGER The order of the matrix to be generated.
AA 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.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
BB is DOUBLE PRECISION array, dimension (N) The right hand side vector, if IMAT > 10.
WORKWORK is DOUBLE PRECISION array, dimension (3*N)
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = k, the kth 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 matrixvector 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
TRANSTRANS is CHARACTER*1 Specifies the operation to be performed: = 'N': x := A*x = 'T': x := A'*x = 'C': x := A'*x
DIAGDIAG 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 nonunit matrices.
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of vectors x to be multiplied by A. NRHS >= 0.
AA 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.
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from DSPTRF.
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = k, the kth 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 matrixvector 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
TRANSTRANS is CHARACTER*1 Specifies the operation to be performed: = 'N': x := A*x = 'T': x := A'*x = 'C': x := A'*x
DIAGDIAG 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 nonunit matrices.
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of vectors x to be multiplied by A. NRHS >= 0.
AA 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 2D triangular matrix.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
IPIVIPIV 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 1by1 diagonal block. (If IPIV( k ) = k, no interchange was done). If IPIV(k) = IPIV(k1) < 0, then rows and columns k1 and IPIV(k) were interchanged, D(k1:k,k1:k) is a 2by2 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 1by1 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 2by2 diagonal block.
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = k, the kth 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 matrixvector 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
TRANSTRANS is CHARACTER*1 Specifies the operation to be performed: = 'N': x := A*x = 'T': x := A'*x = 'C': x := A'*x
DIAGDIAG 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 nonunit matrices.
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of vectors x to be multiplied by A. NRHS >= 0.
AA 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 2D triangular matrix.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
IPIVIPIV 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 1by1 diagonal block. (If IPIV( k ) = k, no interchange was done). If IPIV(k) < 0 and IPIV(k1) < 0, then rows and columns k and IPIV(k) were interchanged and rows and columns k1 and IPIV(k1) were inerchaged, D(k1:k,k1:k) is a 2by2 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 1by1 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 2by2 diagonal block.
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
INFOINFO is INTEGER = 0: successful exit < 0: if INFO = k, the kth 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 mbyn matrix A, and partially tests DORGLQ which forms the nbyn 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.
NN is INTEGER The number of columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the LQ factorization of A, as returned by DGELQF. See DGELQF for further details.
QQ is DOUBLE PRECISION array, dimension (LDA,N) The nbyn orthogonal matrix Q.
LL is DOUBLE PRECISION array, dimension (LDA,max(M,N))
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= max(M,N).
TAUTAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by DGELQF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is DOUBLE PRECISION array, dimension (max(M,N))
RESULTRESULT 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 mbyn matrix Q with orthonornmal rows that is defined as the product of k elementary reflectors. Given the LQ factorization of an mbyn 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.
NN is INTEGER The number of columns of the matrix Q to be generated. N >= M >= 0.
KK is INTEGER The number of elementary reflectors whose product defines the matrix Q. M >= K >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A which was factorized by DLQT01.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the LQ factorization of A, as returned by DGELQF. See DGELQF for further details.
QQ is DOUBLE PRECISION array, dimension (LDA,N)
LL is DOUBLE PRECISION array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= N.
TAUTAU is DOUBLE PRECISION array, dimension (M) The scalar factors of the elementary reflectors corresponding to the LQ factorization in AF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT 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 nbym if Q is applied from the left, or mbyn if Q is applied from the right. M >= 0.
NN is INTEGER The order of the orthogonal matrix Q. N >= 0.
KK is INTEGER The number of elementary reflectors whose product defines the orthogonal matrix Q. N >= K >= 0.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the LQ factorization of an mbyn matrix, as returned by DGELQF. See SGELQF for further details.
CC is DOUBLE PRECISION array, dimension (LDA,N)
CCCC is DOUBLE PRECISION array, dimension (LDA,N)
QQ is DOUBLE PRECISION array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays AF, C, CC, and Q.
TAUTAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors corresponding to the LQ factorization in AF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT is DOUBLE PRECISION array, dimension (4) The test ratios compare two techniques for multiplying a random matrix C by an nbyn 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
KDKD is INTEGER The number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KD >= 0.
AA 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.
LDALDA is INTEGER. The leading dimension of the array A. LDA >= max(1,KD+1).
AFACAFAC 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.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,KD+1).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
KDKD is INTEGER The number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KD >= 0.
NRHSNRHS is INTEGER The number of right hand sides. NRHS >= 0.
AA 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.
LDALDA is INTEGER. The leading dimension of the array A. LDA >= max(1,KD+1).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
NN is INTEGER The number of rows of the matrices X, B, and XACT, and the order of the matrix A. N >= 0.
KDKD is INTEGER The number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KD >= 0.
NRHSNRHS is INTEGER The number of columns of the matrices X, B, and XACT. NRHS >= 0.
ABAB 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 jth column of A is stored in the jth column of the array AB as follows: if UPLO = 'U', AB(kd+1+ij,j) = A(i,j) for max(1,jkd)<=i<=j; if UPLO = 'L', AB(1+ij,j) = A(i,j) for j<=i<=min(n,j+kd).
LDABLDAB is INTEGER The leading dimension of the array AB. LDAB >= KD+1.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
BERRBERR 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).
RESLTSRESLTS 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC 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).
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of B, the matrix of right hand sides. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AINVAINV 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.
LDAINVLDAINV is INTEGER The leading dimension of the array AINV. LDAINV >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (LDWORK,N)
LDWORKLDWORK is INTEGER The leading dimension of the array WORK. LDWORK >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RCONDRCOND is DOUBLE PRECISION The reciprocal of the condition number of A, computed as ( 1/norm(A) ) / norm(AINV).
RESIDRESID 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
NN is INTEGER The number of rows of the matrices X, B, and XACT, and the order of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of the matrices X, B, and XACT. NRHS >= 0.
AA 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.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
BERRBERR 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).
RESLTSRESLTS 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of B, the matrix of right hand sides. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original M x N matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX 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).
BB 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.
LDBLDB 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).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (N*(N+1)/2) The original symmetric matrix A, stored as a packed triangular matrix.
AFACAFAC 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).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of B, the matrix of right hand sides. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (N*(N+1)/2) The original symmetric matrix A, stored as a packed triangular matrix.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (N*(N+1)/2) The original symmetric matrix A, stored as a packed triangular matrix.
AINVAINV is DOUBLE PRECISION array, dimension (N*(N+1)/2) The (symmetric) inverse of the matrix A, stored as a packed triangular matrix.
WORKWORK is DOUBLE PRECISION array, dimension (LDWORK,N)
LDWORKLDWORK is INTEGER The leading dimension of the array WORK. LDWORK >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RCONDRCOND is DOUBLE PRECISION The reciprocal of the condition number of A, computed as ( 1/norm(A) ) / norm(AINV).
RESIDRESID 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
NN is INTEGER The number of rows of the matrices X, B, and XACT, and the order of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of the matrices X, B, and XACT. NRHS >= 0.
APAP 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 jth column of A is stored in the array AP as follows: if UPLO = 'U', AP(i + (j1)*j/2) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i + (j1)*(2nj)/2) = A(i,j) for j<=i<=n.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
BERRBERR 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).
RESLTSRESLTS 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC is DOUBLE PRECISION array, dimension (LDAFAC,N) The factor L or U from the L*L' or U'*U factorization of A.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,N).
PERMPERM 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)
LDPERMLDPERM is INTEGER The leading dimension of the array PERM. LDAPERM >= max(1,N).
PIVPIV is INTEGER array, dimension (N) PIV is such that the nonzero entries are P( PIV( K ), K ) = 1.
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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 )
RANKRANK 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.
DD is DOUBLE PRECISION array, dimension (N) The n diagonal elements of the tridiagonal matrix A.
EE is DOUBLE PRECISION array, dimension (N1) The (n1) subdiagonal elements of the tridiagonal matrix A.
DFDF is DOUBLE PRECISION array, dimension (N) The n diagonal elements of the factor L from the L*D*L' factorization of A.
EFEF is DOUBLE PRECISION array, dimension (N1) The (n1) subdiagonal elements of the factor L from the L*D*L' factorization of A.
WORKWORK is DOUBLE PRECISION array, dimension (2*N)
RESIDRESID 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.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices B and X. NRHS >= 0.
DD is DOUBLE PRECISION array, dimension (N) The n diagonal elements of the tridiagonal matrix A.
EE is DOUBLE PRECISION array, dimension (N1) The (n1) subdiagonal elements of the tridiagonal matrix A.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The n by nrhs matrix of solution vectors X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB 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.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
RESIDRESID 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.
NRHSNRHS is INTEGER The number of columns of the matrices X, B, and XACT. NRHS >= 0.
DD is DOUBLE PRECISION array, dimension (N) The n diagonal elements of the tridiagonal matrix A.
EE is DOUBLE PRECISION array, dimension (N1) The (n1) subdiagonal elements of the tridiagonal matrix A.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
BERRBERR 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).
RESLTSRESLTS 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 mbyn matrix A, and partially tests DORGQL which forms the mbym 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.
NN is INTEGER The number of columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the QL factorization of A, as returned by DGEQLF. See DGEQLF for further details.
QQ is DOUBLE PRECISION array, dimension (LDA,M) The mbym orthogonal matrix Q.
LL is DOUBLE PRECISION array, dimension (LDA,max(M,N))
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and R. LDA >= max(M,N).
TAUTAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by DGEQLF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT 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 mbyn matrix Q with orthonornmal columns that is defined as the product of k elementary reflectors. Given the QL factorization of an mbyn matrix A, DQLT02 generates the orthogonal matrix Q defined by the factorization of the last k columns of A; it compares L(mn+1:m,nk+1:n) with Q(1:m,mn+1:m)'*A(1:m,nk+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.
NN is INTEGER The number of columns of the matrix Q to be generated. M >= N >= 0.
KK is INTEGER The number of elementary reflectors whose product defines the matrix Q. N >= K >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A which was factorized by DQLT01.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the QL factorization of A, as returned by DGEQLF. See DGEQLF for further details.
QQ is DOUBLE PRECISION array, dimension (LDA,N)
LL is DOUBLE PRECISION array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= M.
TAUTAU is DOUBLE PRECISION array, dimension (N) The scalar factors of the elementary reflectors corresponding to the QL factorization in AF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT 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.
NN is INTEGER The number of rows or columns of the matrix C; C is mbyn if Q is applied from the left, or nbym if Q is applied from the right. N >= 0.
KK is INTEGER The number of elementary reflectors whose product defines the orthogonal matrix Q. M >= K >= 0.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the QL factorization of an mbyn matrix, as returned by DGEQLF. See SGEQLF for further details.
CC is DOUBLE PRECISION array, dimension (LDA,N)
CCCC is DOUBLE PRECISION array, dimension (LDA,N)
QQ is DOUBLE PRECISION array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays AF, C, CC, and Q.
TAUTAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors corresponding to the QL factorization in AF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT is DOUBLE PRECISION array, dimension (4) The test ratios compare two techniques for multiplying a random matrix C by an mbym 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 QRfactorization with pivoting of a matrix A. The array AF contains the (possibly partial) QRfactorization 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.
NN is INTEGER The number of columns of the matrices A and AF.
KK is INTEGER The number of columns of AF that have been reduced to upper triangular form.
AA is DOUBLE PRECISION array, dimension (LDA, N) The original matrix A.
AFAF 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.
LDALDA is INTEGER The leading dimension of the arrays A and AF.
TAUTAU is DOUBLE PRECISION array, dimension (K) Details of the Householder transformations as returned by DGEQPF.
JPVTJPVT is INTEGER array, dimension (N) Pivot information as returned by DGEQPF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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 mbyn matrix A, and partially tests DORGQR which forms the mbym 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.
NN is INTEGER The number of columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the QR factorization of A, as returned by DGEQRF. See DGEQRF for further details.
QQ is DOUBLE PRECISION array, dimension (LDA,M) The mbym orthogonal matrix Q.
RR is DOUBLE PRECISION array, dimension (LDA,max(M,N))
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and R. LDA >= max(M,N).
TAUTAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by DGEQRF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT 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 mbyn matrix A, and partially tests DORGQR which forms the mbym 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.
NN is INTEGER The number of columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the QR factorization of A, as returned by DGEQRFP. See DGEQRFP for further details.
QQ is DOUBLE PRECISION array, dimension (LDA,M) The mbym orthogonal matrix Q.
RR is DOUBLE PRECISION array, dimension (LDA,max(M,N))
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and R. LDA >= max(M,N).
TAUTAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by DGEQRFP.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT 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 mbyn matrix Q with orthonornmal columns that is defined as the product of k elementary reflectors. Given the QR factorization of an mbyn 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.
NN is INTEGER The number of columns of the matrix Q to be generated. M >= N >= 0.
KK is INTEGER The number of elementary reflectors whose product defines the matrix Q. N >= K >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A which was factorized by DQRT01.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the QR factorization of A, as returned by DGEQRF. See DGEQRF for further details.
QQ is DOUBLE PRECISION array, dimension (LDA,N)
RR is DOUBLE PRECISION array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and R. LDA >= M.
TAUTAU is DOUBLE PRECISION array, dimension (N) The scalar factors of the elementary reflectors corresponding to the QR factorization in AF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT 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.
NN is INTEGER The number of rows or columns of the matrix C; C is mbyn if Q is applied from the left, or nbym if Q is applied from the right. N >= 0.
KK is INTEGER The number of elementary reflectors whose product defines the orthogonal matrix Q. M >= K >= 0.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the QR factorization of an mbyn matrix, as returned by DGEQRF. See DGEQRF for further details.
CC is DOUBLE PRECISION array, dimension (LDA,N)
CCCC is DOUBLE PRECISION array, dimension (LDA,N)
QQ is DOUBLE PRECISION array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays AF, C, CC, and Q.
TAUTAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors corresponding to the QR factorization in AF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT is DOUBLE PRECISION array, dimension (4) The test ratios compare two techniques for multiplying a random matrix C by an mbym 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.
NN is INTEGER Number of columns in test matrix.
NBNB is INTEGER Block size of test matrix. NB <= Min(M,N).
RESULTRESULT 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.
NN is INTEGER Number of columns in test matrix.
LL is INTEGER The number of rows of the upper trapezoidal part the lower test matrix. 0 <= L <= M.
NBNB is INTEGER Block size of test matrix. NB <= N.
RESULTRESULT 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 mvector of the form [ 0 ... 0 1 x(k) ]', where x(k) is a vector of length mk stored in A(k+1:m,k).
Parameters:

M
M is INTEGER The number of rows of the matrix A.
KK is INTEGER The number of columns of A whose subdiagonal entries contain information about orthogonal transformations.
AA is DOUBLE PRECISION array, dimension (LDA,K) The (possibly partial) output of a QR reduction routine.
LDALDA is INTEGER The leading dimension of the array A.
TAUTAU is DOUBLE PRECISION array, dimension (K) The scaling factors tau for the elementary transformations as computed by the QR factorization routine.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
NN is INTEGER The number of columns of the matrix A.
AA is DOUBLE PRECISION array, dimension (LDA,N) The MbyN matrix A. Only the upper trapezoid is referenced.
LDALDA is INTEGER The leading dimension of the array A.
SS is DOUBLE PRECISION array, dimension (min(M,N)) The singular values of the matrix A.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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 fullrank 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
MM is INTEGER The number of rows of the matrix A.
NN is INTEGER The number of columns of A.
AA is DOUBLE PRECISION array, dimension (LDA,N) The MbyN matrix A.
LDALDA is INTEGER The leading dimension of the array A.
NORMANORMA is DOUBLE PRECISION The onenorm of A.
ISEEDISEED 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'.
MM is INTEGER The number of rows of the matrix A.
NN is INTEGER The number of columns of the matrix A.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of X.
AA is DOUBLE PRECISION array, dimension (LDA,N) The MbyN matrix A.
LDALDA is INTEGER The leading dimension of the array A.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) If TRANS = 'N', the NbyNRHS matrix X. IF TRANS = 'T', the MbyNRHS matrix X.
LDXLDX is INTEGER The leading dimension of the array X.
WORKWORK is DOUBLE PRECISION array dimension (LWORK)
LWORKLWORK 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
RKSELRKSEL is INTEGER RKSEL = 1: full rank matrix RKSEL = 2: rankdeficient matrix
MM is INTEGER The number of rows of the matrix A.
NN is INTEGER The number of columns of A.
NRHSNRHS is INTEGER The number of columns of B.
AA is DOUBLE PRECISION array, dimension (LDA,N) The MbyN matrix A.
LDALDA is INTEGER The leading dimension of the array A.
BB is DOUBLE PRECISION array, dimension (LDB, NRHS) A matrix that is in the range space of matrix A.
LDBLDB is INTEGER The leading dimension of the array B.
SS is DOUBLE PRECISION array, dimension MIN(M,N) Singular values of A.
RANKRANK is INTEGER number of nonzero singular values of A.
NORMANORMA is DOUBLE PRECISION onenorm of A.
NORMBNORMB is DOUBLE PRECISION onenorm of B.
ISEEDISEED is integer array, dimension (4) seed for random number generator.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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
MM is INTEGER The number of rows of the matrix A. M >= 0.
NN is INTEGER The number of columns of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of B, the matrix of right hand sides. NRHS >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original M x N matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,M).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX 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).
BB 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.
LDBLDB 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).
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESIDRESID 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 (zeroresidual 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'.
IRESIDIRESID is INTEGER IRESID = 1 indicates zeroresidual problem. IRESID = 2 indicates nonzero residual.
MM 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.
NN 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.
NRHSNRHS is INTEGER The number of columns of the matrices X and B.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) If TRANS = 'N', the nbynrhs matrix X. If TRANS = 'T', the mbynrhs matrix X.
LDXLDX is INTEGER The leading dimension of the array X. If TRANS = 'N', LDX >= N. If TRANS = 'T', LDX >= M.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) If TRANS = 'N', the mbynrhs matrix B. If TRANS = 'T', the nbynrhs matrix B.
LDBLDB is INTEGER The leading dimension of the array B. If TRANS = 'N', LDB >= M. If TRANS = 'T', LDB >= N.
CC is DOUBLE PRECISION array, dimension (LDB,NRHS)
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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 mbyn matrix A, and partially tests DORGRQ which forms the nbyn 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.
NN is INTEGER The number of columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the RQ factorization of A, as returned by DGERQF. See DGERQF for further details.
QQ is DOUBLE PRECISION array, dimension (LDA,N) The nbyn orthogonal matrix Q.
RR is DOUBLE PRECISION array, dimension (LDA,max(M,N))
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= max(M,N).
TAUTAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by DGERQF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is DOUBLE PRECISION array, dimension (max(M,N))
RESULTRESULT 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 mbyn matrix Q with orthonornmal rows that is defined as the product of k elementary reflectors. Given the RQ factorization of an mbyn matrix A, DRQT02 generates the orthogonal matrix Q defined by the factorization of the last k rows of A; it compares R(mk+1:m,nm+1:n) with A(mk+1:m,1:n)*Q(nm+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.
NN is INTEGER The number of columns of the matrix Q to be generated. N >= M >= 0.
KK is INTEGER The number of elementary reflectors whose product defines the matrix Q. M >= K >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The mbyn matrix A which was factorized by DRQT01.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the RQ factorization of A, as returned by DGERQF. See DGERQF for further details.
QQ is DOUBLE PRECISION array, dimension (LDA,N)
RR is DOUBLE PRECISION array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= N.
TAUTAU is DOUBLE PRECISION array, dimension (M) The scalar factors of the elementary reflectors corresponding to the RQ factorization in AF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT 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 nbym if Q is applied from the left, or mbyn if Q is applied from the right. M >= 0.
NN is INTEGER The order of the orthogonal matrix Q. N >= 0.
KK is INTEGER The number of elementary reflectors whose product defines the orthogonal matrix Q. N >= K >= 0.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) Details of the RQ factorization of an mbyn matrix, as returned by DGERQF. See SGERQF for further details.
CC is DOUBLE PRECISION array, dimension (LDA,N)
CCCC is DOUBLE PRECISION array, dimension (LDA,N)
QQ is DOUBLE PRECISION array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays AF, C, CC, and Q.
TAUTAU is DOUBLE PRECISION array, dimension (min(M,N)) The scalar factors of the elementary reflectors corresponding to the RQ factorization in AF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
RWORKRWORK is DOUBLE PRECISION array, dimension (M)
RESULTRESULT is DOUBLE PRECISION array, dimension (4) The test ratios compare two techniques for multiplying a random matrix C by an nbyn 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.
NN is INTEGER The number of columns of the matrices A and AF.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original upper trapezoidal M by N matrix A.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) The output of DTZRZF for input matrix A. The lower triangle is not referenced.
LDALDA is INTEGER The leading dimension of the arrays A and AF.
TAUTAU is DOUBLE PRECISION array, dimension (M) Details of the Householder transformations as returned by DTZRZF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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.
NN is INTEGER The number of columns of the matrix AF.
AFAF is DOUBLE PRECISION array, dimension (LDA,N) The output of DTZRZF.
LDALDA is INTEGER The leading dimension of the array AF.
TAUTAU is DOUBLE PRECISION array, dimension (M) Details of the Householder transformations as returned by DTZRZF.
WORKWORK is DOUBLE PRECISION array, dimension (LWORK)
LWORKLWORK 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (N*(N+1)/2) The original symmetric matrix A, stored as a packed triangular matrix.
AFACAFAC 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.
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from DSPTRF.
CC is DOUBLE PRECISION array, dimension (LDC,N)
LDCLDC is INTEGER The leading dimension of the array C. LDC >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC 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.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,N).
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from DSYTRF.
CC is DOUBLE PRECISION array, dimension (LDC,N)
LDCLDC is INTEGER The leading dimension of the array C. LDC >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
NN is INTEGER The number of rows and columns of the matrix A. N >= 0.
AA is DOUBLE PRECISION array, dimension (LDA,N) The original symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC 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.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,N).
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from DSYTRF_ROOK.
CC is DOUBLE PRECISION array, dimension (LDC,N)
LDCLDC is INTEGER The leading dimension of the array C. LDC >= max(1,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
TRANSTRANS 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)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
KDKD is INTEGER The number of superdiagonals or subdiagonals of the triangular band matrix A. KD >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices X and B. NRHS >= 0.
ABAB 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 jth column of A is stored in the jth column of the array AB as follows: if UPLO = 'U', AB(kd+1+ij,j) = A(i,j) for max(1,jkd)<=i<=j; if UPLO = 'L', AB(1+ij,j) = A(i,j) for j<=i<=min(n,j+kd).
LDABLDAB is INTEGER The leading dimension of the array AB. LDAB >= KD+1.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
TRANSTRANS 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)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
KDKD is INTEGER The number of superdiagonals or subdiagonals of the triangular band matrix A. KD >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices X and B. NRHS >= 0.
ABAB 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 jth column of A is stored in the jth column of the array AB as follows: if UPLO = 'U', AB(kd+1+ij,j) = A(i,j) for max(1,jkd)<=i<=j; if UPLO = 'L', AB(1+ij,j) = A(i,j) for j<=i<=min(n,j+kd).
LDABLDAB is INTEGER The leading dimension of the array AB. LDAB >= KD+1.
SCALESCALE is DOUBLE PRECISION The scaling factor s used in solving the triangular system.
CNORMCNORM is DOUBLE PRECISION array, dimension (N) The 1norms of the columns of A, not counting the diagonal.
TSCALTSCAL is DOUBLE PRECISION The scaling factor used in computing the 1norms in CNORM. CNORM actually contains the column norms of TSCAL*A.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
TRANSTRANS 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)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The number of rows of the matrices X, B, and XACT, and the order of the matrix A. N >= 0.
KDKD is INTEGER The number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KD >= 0.
NRHSNRHS is INTEGER The number of columns of the matrices X, B, and XACT. NRHS >= 0.
ABAB 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 jth column of A is stored in the jth column of the array AB as follows: if UPLO = 'U', AB(kd+1+ij,j) = A(i,j) for max(1,jkd)<=i<=j; if UPLO = 'L', AB(1+ij,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.
LDABLDAB is INTEGER The leading dimension of the array AB. LDAB >= KD+1.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
BERRBERR 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).
RESLTSRESLTS 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 nonzero 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)) ).
RCONDCRCONDC is DOUBLE PRECISION The estimate of the reciprocal condition number computed by DTBCON.
UPLOUPLO is CHARACTER Specifies whether the matrix A is upper or lower triangular. = 'U': Upper triangular = 'L': Lower triangular
DIAGDIAG is CHARACTER Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
KDKD is INTEGER The number of superdiagonals or subdiagonals of the triangular band matrix A. KD >= 0.
ABAB 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 jth column of A is stored in the jth column of the array AB as follows: if UPLO = 'U', AB(kd+1+ij,j) = A(i,j) for max(1,jkd)<=i<=j; if UPLO = 'L', AB(1+ij,j) = A(i,j) for j<=i<=min(n,j+kd).
LDABLDAB is INTEGER The leading dimension of the array AB. LDAB >= KD+1.
WORKWORK is DOUBLE PRECISION array, dimension (N)
RATRAT 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
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
APAP is DOUBLE PRECISION array, dimension (N*(N+1)/2) The original upper or lower triangular matrix A, packed columnwise in a linear array. The jth column of A is stored in the array AP as follows: if UPLO = 'U', AP((j1)*j/2 + i) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP((j1)*(nj) + j*(j+1)/2 + ij) = A(i,j) for j<=i<=n.
AINVPAINVP 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.
RCONDRCOND is DOUBLE PRECISION The reciprocal condition number of A, computed as 1/(norm(A) * norm(AINV)).
WORKWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
TRANSTRANS 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)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices X and B. NRHS >= 0.
APAP is DOUBLE PRECISION array, dimension (N*(N+1)/2) The upper or lower triangular matrix A, packed columnwise in a linear array. The jth column of A is stored in the array AP as follows: if UPLO = 'U', AP((j1)*j/2 + i) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP((j1)*(nj) + j*(j+1)/2 + ij) = A(i,j) for j<=i<=n.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
TRANSTRANS 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)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices X and B. NRHS >= 0.
APAP is DOUBLE PRECISION array, dimension (N*(N+1)/2) The upper or lower triangular matrix A, packed columnwise in a linear array. The jth column of A is stored in the array AP as follows: if UPLO = 'U', AP((j1)*j/2 + i) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP((j1)*(nj) + j*(j+1)/2 + ij) = A(i,j) for j<=i<=n.
SCALESCALE is DOUBLE PRECISION The scaling factor s used in solving the triangular system.
CNORMCNORM is DOUBLE PRECISION array, dimension (N) The 1norms of the columns of A, not counting the diagonal.
TSCALTSCAL is DOUBLE PRECISION The scaling factor used in computing the 1norms in CNORM. CNORM actually contains the column norms of TSCAL*A.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
TRANSTRANS 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)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The number of rows of the matrices X, B, and XACT, and the order of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of the matrices X, B, and XACT. NRHS >= 0.
APAP is DOUBLE PRECISION array, dimension (N*(N+1)/2) The upper or lower triangular matrix A, packed columnwise in a linear array. The jth column of A is stored in the array AP as follows: if UPLO = 'U', AP(i + (j1)*j/2) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i + (j1)*(2nj)/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.
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
BERRBERR 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).
RESLTSRESLTS 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 nonzero 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)) ).
RCONDCRCONDC is DOUBLE PRECISION The estimate of the reciprocal condition number computed by DTPCON.
UPLOUPLO is CHARACTER Specifies whether the matrix A is upper or lower triangular. = 'U': Upper triangular = 'L': Lower triangular
DIAGDIAG is CHARACTER Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
APAP is DOUBLE PRECISION array, dimension (N*(N+1)/2) The upper or lower triangular matrix A, packed columnwise in a linear array. The jth column of A is stored in the array AP as follows: if UPLO = 'U', AP((j1)*j/2 + i) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP((j1)*(nj) + j*(j+1)/2 + ij) = A(i,j) for j<=i<=n.
WORKWORK is DOUBLE PRECISION array, dimension (N)
RATRAT 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
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
AA 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.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
AINVAINV 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.
LDAINVLDAINV is INTEGER The leading dimension of the array AINV. LDAINV >= max(1,N).
RCONDRCOND is DOUBLE PRECISION The reciprocal condition number of A, computed as 1/(norm(A) * norm(AINV)).
WORKWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
TRANSTRANS 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)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices X and B. NRHS >= 0.
AA 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.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
TRANSTRANS 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)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrices X and B. NRHS >= 0.
AA 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.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
SCALESCALE is DOUBLE PRECISION The scaling factor s used in solving the triangular system.
CNORMCNORM is DOUBLE PRECISION array, dimension (N) The 1norms of the columns of A, not counting the diagonal.
TSCALTSCAL is DOUBLE PRECISION The scaling factor used in computing the 1norms in CNORM. CNORM actually contains the column norms of TSCAL*A.
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors for the system of linear equations.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (N)
RESIDRESID 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
TRANSTRANS 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)
DIAGDIAG is CHARACTER*1 Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The number of rows of the matrices X, B, and XACT, and the order of the matrix A. N >= 0.
NRHSNRHS is INTEGER The number of columns of the matrices X, B, and XACT. NRHS >= 0.
AA 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.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
BB is DOUBLE PRECISION array, dimension (LDB,NRHS) The right hand side vectors for the system of linear equations.
LDBLDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
XX is DOUBLE PRECISION array, dimension (LDX,NRHS) The computed solution vectors. Each vector is stored as a column of the matrix X.
LDXLDX is INTEGER The leading dimension of the array X. LDX >= max(1,N).
XACTXACT is DOUBLE PRECISION array, dimension (LDX,NRHS) The exact solution vectors. Each vector is stored as a column of the matrix XACT.
LDXACTLDXACT is INTEGER The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRFERR 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.
BERRBERR 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).
RESLTSRESLTS 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 nonzero 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)) ).
RCONDCRCONDC is DOUBLE PRECISION The estimate of the reciprocal condition number computed by DTRCON.
UPLOUPLO is CHARACTER Specifies whether the matrix A is upper or lower triangular. = 'U': Upper triangular = 'L': Lower triangular
DIAGDIAG is CHARACTER Specifies whether or not the matrix A is unit triangular. = 'N': Nonunit triangular = 'U': Unit triangular
NN is INTEGER The order of the matrix A. N >= 0.
AA 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.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
WORKWORK is DOUBLE PRECISION array, dimension (N)
RATRAT 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.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix dimension N.
NRHSNRHS is INTEGER The number of right hand side vectors to be generated for each linear system.
THRESHTHRESH 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.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is REAL array, dimension (NMAX*NMAX)
AFACAFAC is REAL array, dimension (NMAX*NMAX)
AINVAINV is REAL array, dimension (NMAX*NMAX)
BB is REAL array, dimension (NMAX*NRHS)
XX is REAL array, dimension (NMAX*NRHS)
XACTXACT is REAL array, dimension (NMAX*NRHS)
WORKWORK is REAL array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is REAL array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT 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.