Functions
program zchkaa
ZCHKAA
program zchkab
ZCHKAB
subroutine zchkeq (THRESH, NOUT)
ZCHKEQ
subroutine zchkgb (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, A, LA, AFAC, LAFAC, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKGB
subroutine zchkge (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKGE
subroutine zchkgt (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKGT
subroutine zchkhe (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHE
subroutine zchkhe_rook (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHE_ROOK
subroutine zchkhp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHP
subroutine zchklq (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
ZCHKLQ
subroutine zchkpb (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPB
subroutine zchkpo (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPO
subroutine zchkpp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPP
subroutine zchkps (DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
ZCHKPS
subroutine zchkpt (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPT
subroutine zchkq3 (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, RWORK, IWORK, NOUT)
ZCHKQ3
subroutine zchkql (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
ZCHKQL
subroutine zchkqr (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)
ZCHKQR
subroutine zchkqrt (THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKQRT
subroutine zchkqrtp (THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKQRTP
program zchkrfp
ZCHKRFP
subroutine zchkrq (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)
ZCHKRQ
subroutine zchksp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSP
subroutine zchksy (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSY
subroutine zchksy_rook (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSY_ROOK
subroutine zchktb (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKTB
subroutine zchktp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, NOUT)
ZCHKTP
subroutine zchktr (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKTR
subroutine zchktz (DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, RWORK, NOUT)
ZCHKTZ
subroutine zdrvab (DOTYPE, NM, MVAL, NNS, NSVAL, THRESH, NMAX, A, AFAC, B, X, WORK, RWORK, SWORK, IWORK, NOUT)
ZDRVAB
subroutine zdrvac (DOTYPE, NM, MVAL, NNS, NSVAL, THRESH, NMAX, A, AFAC, B, X, WORK, RWORK, SWORK, NOUT)
ZDRVAC
subroutine zdrvgb (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
ZDRVGB
subroutine zdrvge (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
ZDRVGE
subroutine zdrvgt (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVGT
subroutine zdrvhe (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE
subroutine zdrvhe_rook (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE_ROOK
subroutine zdrvhp (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHP
subroutine zdrvls (DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, WORK, RWORK, IWORK, NOUT)
ZDRVLS
subroutine zdrvpb (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
ZDRVPB
subroutine zdrvpo (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
ZDRVPO
subroutine zdrvpp (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
ZDRVPP
subroutine zdrvpt (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
ZDRVPT
subroutine zdrvrf1 (NOUT, NN, NVAL, THRESH, A, LDA, ARF, WORK)
ZDRVRF1
subroutine zdrvrf2 (NOUT, NN, NVAL, A, LDA, ARF, AP, ASAV)
ZDRVRF2
subroutine zdrvrf3 (NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2, D_WORK_ZLANGE, Z_WORK_ZGEQRF, TAU)
ZDRVRF3
subroutine zdrvrf4 (NOUT, NN, NVAL, THRESH, C1, C2, LDC, CRF, A, LDA, D_WORK_ZLANGE)
ZDRVRF4
subroutine zdrvrfp (NOUT, NN, NVAL, NNS, NSVAL, NNT, NTVAL, THRESH, A, ASAV, AFAC, AINV, B, BSAV, XACT, X, ARF, ARFINV, Z_WORK_ZLATMS, Z_WORK_ZPOT02, Z_WORK_ZPOT03, D_WORK_ZLATMS, D_WORK_ZLANHE, D_WORK_ZPOT01, D_WORK_ZPOT02, D_WORK_ZPOT03)
ZDRVRFP
subroutine zdrvsp (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSP
subroutine zdrvsy (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY
subroutine zdrvsy_rook (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY_ROOK
subroutine zebchvxx (THRESH, PATH)
ZEBCHVXX
subroutine zerrab (NUNIT)
ZERRAB
subroutine zerrac (NUNIT)
ZERRAC
subroutine zerrge (PATH, NUNIT)
ZERRGE
subroutine zerrgt (PATH, NUNIT)
ZERRGT
subroutine zerrhe (PATH, NUNIT)
ZERRHE
subroutine zerrlq (PATH, NUNIT)
ZERRLQ
subroutine zerrls (PATH, NUNIT)
ZERRLS
subroutine zerrpo (PATH, NUNIT)
ZERRPO
subroutine zerrps (PATH, NUNIT)
ZERRPS
subroutine zerrql (PATH, NUNIT)
ZERRQL
subroutine zerrqp (PATH, NUNIT)
ZERRQP
subroutine zerrqr (PATH, NUNIT)
ZERRQR
subroutine zerrqrt (PATH, NUNIT)
ZERRQRT
subroutine zerrqrtp (PATH, NUNIT)
ZERRQRTP
subroutine zerrrfp (NUNIT)
ZERRRFP
subroutine zerrrq (PATH, NUNIT)
ZERRRQ
subroutine zerrsy (PATH, NUNIT)
ZERRSY
subroutine zerrtr (PATH, NUNIT)
ZERRTR
subroutine zerrtz (PATH, NUNIT)
ZERRTZ
subroutine zerrvx (PATH, NUNIT)
ZERRVX
subroutine zgbt01 (M, N, KL, KU, A, LDA, AFAC, LDAFAC, IPIV, WORK, RESID)
ZGBT01
subroutine zgbt02 (TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, RESID)
ZGBT02
subroutine zgbt05 (TRANS, N, KL, KU, NRHS, AB, LDAB, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
ZGBT05
subroutine zgelqs (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
ZGELQS
logical function zgennd (M, N, A, LDA)
ZGENND
subroutine zgeqls (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
ZGEQLS
subroutine zgeqrs (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
ZGEQRS
subroutine zgerqs (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
ZGERQS
subroutine zget01 (M, N, A, LDA, AFAC, LDAFAC, IPIV, RWORK, RESID)
ZGET01
subroutine zget02 (TRANS, M, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZGET02
subroutine zget03 (N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK, RCOND, RESID)
ZGET03
subroutine zget04 (N, NRHS, X, LDX, XACT, LDXACT, RCOND, RESID)
ZGET04
subroutine zget07 (TRANS, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, CHKFERR, BERR, RESLTS)
ZGET07
subroutine zget08 (TRANS, M, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZGET08
subroutine zgtt01 (N, DL, D, DU, DLF, DF, DUF, DU2, IPIV, WORK, LDWORK, RWORK, RESID)
ZGTT01
subroutine zgtt02 (TRANS, N, NRHS, DL, D, DU, X, LDX, B, LDB, RESID)
ZGTT02
subroutine zgtt05 (TRANS, N, NRHS, DL, D, DU, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
ZGTT05
subroutine zhet01 (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
ZHET01
subroutine zhet01_rook (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
ZHET01_ROOK
subroutine zhpt01 (UPLO, N, A, AFAC, IPIV, C, LDC, RWORK, RESID)
ZHPT01
subroutine zlahilb (N, NRHS, A, LDA, X, LDX, B, LDB, WORK, INFO, PATH)
ZLAHILB
subroutine zlaipd (N, A, INDA, VINDA)
ZLAIPD
subroutine zlaptm (UPLO, N, NRHS, ALPHA, D, E, X, LDX, BETA, B, LDB)
ZLAPTM
subroutine zlarhs (PATH, XTYPE, UPLO, TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, ISEED, INFO)
ZLARHS
subroutine zlatb4 (PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
ZLATB4
subroutine zlatb5 (PATH, IMAT, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
ZLATB5
subroutine zlatsp (UPLO, N, X, ISEED)
ZLATSP
subroutine zlatsy (UPLO, N, X, LDX, ISEED)
ZLATSY
subroutine zlattb (IMAT, UPLO, TRANS, DIAG, ISEED, N, KD, AB, LDAB, B, WORK, RWORK, INFO)
ZLATTB
subroutine zlattp (IMAT, UPLO, TRANS, DIAG, ISEED, N, AP, B, WORK, RWORK, INFO)
ZLATTP
subroutine zlattr (IMAT, UPLO, TRANS, DIAG, ISEED, N, A, LDA, B, WORK, RWORK, INFO)
ZLATTR
subroutine zlavhe (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZLAVHE
subroutine zlavhe_rook (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZLAVHE_ROOK
subroutine zlavhp (UPLO, TRANS, DIAG, N, NRHS, A, IPIV, B, LDB, INFO)
ZLAVHP
subroutine zlavsp (UPLO, TRANS, DIAG, N, NRHS, A, IPIV, B, LDB, INFO)
ZLAVSP
subroutine zlavsy (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZLAVSY
subroutine zlavsy_rook (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZLAVSY_ROOK
subroutine zlqt01 (M, N, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZLQT01
subroutine zlqt02 (M, N, K, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZLQT02
subroutine zlqt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZLQT03
subroutine zpbt01 (UPLO, N, KD, A, LDA, AFAC, LDAFAC, RWORK, RESID)
ZPBT01
subroutine zpbt02 (UPLO, N, KD, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZPBT02
subroutine zpbt05 (UPLO, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
ZPBT05
subroutine zpot01 (UPLO, N, A, LDA, AFAC, LDAFAC, RWORK, RESID)
ZPOT01
subroutine zpot02 (UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZPOT02
subroutine zpot03 (UPLO, N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK, RCOND, RESID)
ZPOT03
subroutine zpot05 (UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
ZPOT05
subroutine zpot06 (UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZPOT06
subroutine zppt01 (UPLO, N, A, AFAC, RWORK, RESID)
ZPPT01
subroutine zppt02 (UPLO, N, NRHS, A, X, LDX, B, LDB, RWORK, RESID)
ZPPT02
subroutine zppt03 (UPLO, N, A, AINV, WORK, LDWORK, RWORK, RCOND, RESID)
ZPPT03
subroutine zppt05 (UPLO, N, NRHS, AP, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
ZPPT05
subroutine zpst01 (UPLO, N, A, LDA, AFAC, LDAFAC, PERM, LDPERM, PIV, RWORK, RESID, RANK)
ZPST01
subroutine zptt01 (N, D, E, DF, EF, WORK, RESID)
ZPTT01
subroutine zptt02 (UPLO, N, NRHS, D, E, X, LDX, B, LDB, RESID)
ZPTT02
subroutine zptt05 (N, NRHS, D, E, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
ZPTT05
subroutine zqlt01 (M, N, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZQLT01
subroutine zqlt02 (M, N, K, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZQLT02
subroutine zqlt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZQLT03
double precision function zqpt01 (M, N, K, A, AF, LDA, TAU, JPVT, WORK, LWORK)
ZQPT01
subroutine zqrt01 (M, N, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZQRT01
subroutine zqrt01p (M, N, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZQRT01P
subroutine zqrt02 (M, N, K, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZQRT02
subroutine zqrt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZQRT03
subroutine zqrt04 (M, N, NB, RESULT)
ZQRT04
subroutine zqrt05 (M, N, L, NB, RESULT)
ZQRT05
double precision function zqrt11 (M, K, A, LDA, TAU, WORK, LWORK)
ZQRT11
double precision function zqrt12 (M, N, A, LDA, S, WORK, LWORK, RWORK)
ZQRT12
subroutine zqrt13 (SCALE, M, N, A, LDA, NORMA, ISEED)
ZQRT13
double precision function zqrt14 (TRANS, M, N, NRHS, A, LDA, X, LDX, WORK, LWORK)
ZQRT14
subroutine zqrt15 (SCALE, RKSEL, M, N, NRHS, A, LDA, B, LDB, S, RANK, NORMA, NORMB, ISEED, WORK, LWORK)
ZQRT15
subroutine zqrt16 (TRANS, M, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZQRT16
double precision function zqrt17 (TRANS, IRESID, M, N, NRHS, A, LDA, X, LDX, B, LDB, C, WORK, LWORK)
ZQRT17
subroutine zrqt01 (M, N, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZRQT01
subroutine zrqt02 (M, N, K, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZRQT02
subroutine zrqt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
ZRQT03
double precision function zrzt01 (M, N, A, AF, LDA, TAU, WORK, LWORK)
ZRZT01
double precision function zrzt02 (M, N, AF, LDA, TAU, WORK, LWORK)
ZRZT02
subroutine zsbmv (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZSBMV
subroutine zspt01 (UPLO, N, A, AFAC, IPIV, C, LDC, RWORK, RESID)
ZSPT01
subroutine zspt02 (UPLO, N, NRHS, A, X, LDX, B, LDB, RWORK, RESID)
ZSPT02
subroutine zspt03 (UPLO, N, A, AINV, WORK, LDW, RWORK, RCOND, RESID)
ZSPT03
subroutine zsyt01 (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
ZSYT01
subroutine zsyt01_rook (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
ZSYT01_ROOK
subroutine zsyt02 (UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZSYT02
subroutine zsyt03 (UPLO, N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK, RCOND, RESID)
ZSYT03
subroutine ztbt02 (UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, X, LDX, B, LDB, WORK, RWORK, RESID)
ZTBT02
subroutine ztbt03 (UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, SCALE, CNORM, TSCAL, X, LDX, B, LDB, WORK, RESID)
ZTBT03
subroutine ztbt05 (UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
ZTBT05
subroutine ztbt06 (RCOND, RCONDC, UPLO, DIAG, N, KD, AB, LDAB, RWORK, RAT)
ZTBT06
subroutine ztpt01 (UPLO, DIAG, N, AP, AINVP, RCOND, RWORK, RESID)
ZTPT01
subroutine ztpt02 (UPLO, TRANS, DIAG, N, NRHS, AP, X, LDX, B, LDB, WORK, RWORK, RESID)
ZTPT02
subroutine ztpt03 (UPLO, TRANS, DIAG, N, NRHS, AP, SCALE, CNORM, TSCAL, X, LDX, B, LDB, WORK, RESID)
ZTPT03
subroutine ztpt05 (UPLO, TRANS, DIAG, N, NRHS, AP, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
ZTPT05
subroutine ztpt06 (RCOND, RCONDC, UPLO, DIAG, N, AP, RWORK, RAT)
ZTPT06
subroutine ztrt01 (UPLO, DIAG, N, A, LDA, AINV, LDAINV, RCOND, RWORK, RESID)
ZTRT01
subroutine ztrt02 (UPLO, TRANS, DIAG, N, NRHS, A, LDA, X, LDX, B, LDB, WORK, RWORK, RESID)
ZTRT02
subroutine ztrt03 (UPLO, TRANS, DIAG, N, NRHS, A, LDA, SCALE, CNORM, TSCAL, X, LDX, B, LDB, WORK, RESID)
ZTRT03
subroutine ztrt05 (UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
ZTRT05
subroutine ztrt06 (RCOND, RCONDC, UPLO, DIAG, N, A, LDA, RWORK, RAT)
ZTRT06
Detailed Description
This is the group of complex16 LAPACK TESTING LIN routines.
Function Documentation
program zchkaa ()
ZCHKAA
Purpose:

ZCHKAA is the main test program for the COMPLEX*16 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 42 lines: Data file for testing COMPLEX*16 LAPACK linear equation 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) 30.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 ZGE 11 List types on next line if 0 < NTYPES < 11 ZGB 8 List types on next line if 0 < NTYPES < 8 ZGT 12 List types on next line if 0 < NTYPES < 12 ZPO 9 List types on next line if 0 < NTYPES < 9 ZPS 9 List types on next line if 0 < NTYPES < 9 ZPP 9 List types on next line if 0 < NTYPES < 9 ZPB 8 List types on next line if 0 < NTYPES < 8 ZPT 12 List types on next line if 0 < NTYPES < 12 ZHE 10 List types on next line if 0 < NTYPES < 10 ZHR 10 List types on next line if 0 < NTYPES < 10 ZHP 10 List types on next line if 0 < NTYPES < 10 ZSY 11 List types on next line if 0 < NTYPES < 11 ZSR 11 List types on next line if 0 < NTYPES < 11 ZSP 11 List types on next line if 0 < NTYPES < 11 ZTR 18 List types on next line if 0 < NTYPES < 18 ZTP 18 List types on next line if 0 < NTYPES < 18 ZTB 17 List types on next line if 0 < NTYPES < 17 ZQR 8 List types on next line if 0 < NTYPES < 8 ZRQ 8 List types on next line if 0 < NTYPES < 8 ZLQ 8 List types on next line if 0 < NTYPES < 8 ZQL 8 List types on next line if 0 < NTYPES < 8 ZQP 6 List types on next line if 0 < NTYPES < 6 ZTZ 3 List types on next line if 0 < NTYPES < 3 ZLS 6 List types on next line if 0 < NTYPES < 6 ZEQ ZQT ZQX
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:
 November 2015
program zchkab ()
ZCHKAB
Purpose:

ZCHKAB is the test program for the COMPLEX*16 LAPACK ZCGESV/ZCPOSV 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 9 lines: Data file for testing COMPLEX*16 LAPACK ZCGESV 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 routine 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 zchkeq (double precision THRESH, integer NOUT)
ZCHKEQ
Purpose:

ZCHKEQ tests ZGEEQU, ZGBEQU, ZPOEQU, ZPPEQU and ZPBEQU
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 zchkgb (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, complex*16, dimension( * ) A, integer LA, complex*16, dimension( * ) AFAC, integer LAFAC, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKGB
Purpose:

ZCHKGB tests ZGBTRF, 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.
AA is COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 array, dimension (NMAX*NSMAX)
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NSMAX,NMAX))
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 zchkge (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKGE
Purpose:

ZCHKGE tests ZGETRF, 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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(2*NMAX,2*NSMAX+NWORK))
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 zchkgt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, complex*16, dimension( * ) A, complex*16, dimension( * ) AF, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKGT
Purpose:

ZCHKGT tests ZGTTRF, 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 COMPLEX*16 array, dimension (NMAX*4)
AFAF is COMPLEX*16 array, dimension (NMAX*4)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 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 zchkhe (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKHE
Purpose:

ZCHKHE tests ZHETRF, 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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 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 2013
subroutine zchkhe_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, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKHE_ROOK
Purpose:

ZCHKHE_ROOK tests ZHETRF_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 CCOMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is CCOMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 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 zchkhp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKHP
Purpose:

ZCHKHP tests ZHPTRF, 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 COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (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 zchklq (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AF, complex*16, dimension( * ) AQ, complex*16, dimension( * ) AL, complex*16, dimension( * ) AC, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) TAU, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKLQ
Purpose:

ZCHKLQ tests ZGELQF, ZUNGLQ and CUNMLQ.
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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFAF is COMPLEX*16 array, dimension (NMAX*NMAX)
AQAQ is COMPLEX*16 array, dimension (NMAX*NMAX)
ALAL is COMPLEX*16 array, dimension (NMAX*NMAX)
ACAC is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
TAUTAU is COMPLEX*16 array, dimension (NMAX)
WORKWORK is COMPLEX*16 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 zchkpb (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKPB
Purpose:

ZCHKPB tests ZPBTRF, 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))
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 zchkpo (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKPO
Purpose:

ZCHKPO tests ZPOTRF, 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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (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 zchkpp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKPP
Purpose:

ZCHKPP tests ZPPTRF, 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 COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 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 zchkps (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) PERM, integer, dimension( * ) PIV, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKPS
Purpose:

ZCHKPS tests ZPSTRF.
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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
PERMPERM is COMPLEX*16 array, dimension (NMAX*NMAX)
PIVPIV is INTEGER array, dimension (NMAX)
WORKWORK is COMPLEX*16 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 zchkpt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, complex*16, dimension( * ) A, double precision, dimension( * ) D, complex*16, dimension( * ) E, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKPT
Purpose:

ZCHKPT tests ZPTTRF, 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 COMPLEX*16 array, dimension (NMAX*2)
DD is DOUBLE PRECISION array, dimension (NMAX*2)
EE is COMPLEX*16 array, dimension (NMAX*2)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 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 zchkq3 (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, double precision THRESH, complex*16, dimension( * ) A, complex*16, dimension( * ) COPYA, double precision, dimension( * ) S, complex*16, dimension( * ) TAU, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKQ3
Purpose:

ZCHKQ3 tests ZGEQP3.
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 COMPLEX*16 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 COMPLEX*16 array, dimension (MMAX*NMAX)
SS is DOUBLE PRECISION array, dimension (min(MMAX,NMAX))
TAUTAU is COMPLEX*16 array, dimension (MMAX)
WORKWORK is COMPLEX*16 array, dimension (max(M*max(M,N) + 4*min(M,N) + max(M,N)))
RWORKRWORK is DOUBLE PRECISION array, dimension (4*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 2011
subroutine zchkql (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AF, complex*16, dimension( * ) AQ, complex*16, dimension( * ) AL, complex*16, dimension( * ) AC, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) TAU, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKQL
Purpose:

ZCHKQL tests ZGEQLF, ZUNGQL and CUNMQL.
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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFAF is COMPLEX*16 array, dimension (NMAX*NMAX)
AQAQ is COMPLEX*16 array, dimension (NMAX*NMAX)
ALAL is COMPLEX*16 array, dimension (NMAX*NMAX)
ACAC is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
TAUTAU is COMPLEX*16 array, dimension (NMAX)
WORKWORK is COMPLEX*16 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 zchkqr (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AF, complex*16, dimension( * ) AQ, complex*16, dimension( * ) AR, complex*16, dimension( * ) AC, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) TAU, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKQR
Purpose:

ZCHKQR tests ZGEQRF, ZUNGQR and CUNMQR.
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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFAF is COMPLEX*16 array, dimension (NMAX*NMAX)
AQAQ is COMPLEX*16 array, dimension (NMAX*NMAX)
ARAR is COMPLEX*16 array, dimension (NMAX*NMAX)
ACAC is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
TAUTAU is COMPLEX*16 array, dimension (NMAX)
WORKWORK is COMPLEX*16 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 zchkqrt (double precision THRESH, logical TSTERR, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NOUT)
ZCHKQRT
Purpose:

ZCHKQRT tests ZGEQRT and ZGEMQRT.
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 zchkqrtp (double precision THRESH, logical TSTERR, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NOUT)
ZCHKQRTP
Purpose:

ZCHKQRTP tests ZTPQRT and ZTPMQRT.
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 zchkrfp ()
ZCHKRFP
Purpose:

ZCHKRFP is the main test program for the COMPLEX*16 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 zchkrq (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AF, complex*16, dimension( * ) AQ, complex*16, dimension( * ) AR, complex*16, dimension( * ) AC, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) TAU, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKRQ
Purpose:

ZCHKRQ tests ZGERQF, ZUNGRQ and CUNMRQ.
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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFAF is COMPLEX*16 array, dimension (NMAX*NMAX)
AQAQ is COMPLEX*16 array, dimension (NMAX*NMAX)
ARAR is COMPLEX*16 array, dimension (NMAX*NMAX)
ACAC is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
TAUTAU is COMPLEX*16 array, dimension (NMAX)
WORKWORK is COMPLEX*16 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 zchksp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKSP
Purpose:

ZCHKSP tests ZSPTRF, 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 COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (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 zchksy (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKSY
Purpose:

ZCHKSY tests ZSYTRF, 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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (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 2013
subroutine zchksy_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, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZCHKSY_ROOK
Purpose:

ZCHKSY_ROOK tests ZSYTRF_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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 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 zchktb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) AB, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKTB
Purpose:

ZCHKTB tests ZTBTRS, RFS, and CON, and ZLATBS.
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 COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 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 zchktp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) AP, complex*16, dimension( * ) AINVP, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKTP
Purpose:

ZCHKTP tests ZTPTRI, TRS, RFS, and CON, and ZLATPS
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 COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AINVPAINVP is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 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 zchktr (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, complex*16, dimension( * ) A, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKTR
Purpose:

ZCHKTR tests ZTRTRI, TRS, RFS, and CON, and ZLATRS
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 COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 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 zchktz (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, double precision THRESH, logical TSTERR, complex*16, dimension( * ) A, complex*16, dimension( * ) COPYA, double precision, dimension( * ) S, complex*16, dimension( * ) TAU, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZCHKTZ
Purpose:

ZCHKTZ tests ZTZRZF.
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 COMPLEX*16 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 COMPLEX*16 array, dimension (MMAX*NMAX)
SS is DOUBLE PRECISION array, dimension (min(MMAX,NMAX))
TAUTAU is COMPLEX*16 array, dimension (MMAX)
WORKWORK is COMPLEX*16 array, dimension (MMAX*NMAX + 4*NMAX + MMAX)
RWORKRWORK is DOUBLE PRECISION 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 zdrvab (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, complex, dimension( * ) SWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVAB
Purpose:

ZDRVAB tests ZCGESV
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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NSMAX*2))
RWORKRWORK is DOUBLE PRECISION array, dimension NMAX
SWORKSWORK is COMPLEX 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 zdrvac (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NNS, integer, dimension( * ) NSVAL, double precision THRESH, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, complex, dimension(*) SWORK, integer NOUT)
ZDRVAC
Purpose:

ZDRVAC tests ZCPOSV.
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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NSMAX)
XX is COMPLEX*16 array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(2*NMAX,2*NSMAX+NWORK))
SWORKSWORK is COMPLEX 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 zdrvgb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, complex*16, dimension( * ) A, integer LA, complex*16, dimension( * ) AFB, integer LAFB, complex*16, dimension( * ) ASAV, complex*16, dimension( * ) B, complex*16, dimension( * ) BSAV, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, double precision, dimension( * ) S, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVGB ZDRVGBX
Purpose:

ZDRVGB tests the driver routines ZGBSV 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 array, dimension (LA)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (2*NMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NRHS,NMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(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 2015
Purpose:

ZDRVGB tests the driver routines ZGBSV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise zdrvgb.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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 array, dimension (LA)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (2*NMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NRHS,NMAX))
RWORKRWORK is DOUBLE PRECISION array, dimension (max(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 zdrvge (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) ASAV, complex*16, dimension( * ) B, complex*16, dimension( * ) BSAV, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, double precision, dimension( * ) S, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVGE ZDRVGEX
Purpose:

ZDRVGE tests the driver routines ZGESV 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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (2*NMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (2*NRHS+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
Purpose:

ZDRVGE tests the driver routines ZGESV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise zdrvge.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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (2*NMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (2*NRHS+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:
 April 2012
subroutine zdrvgt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, complex*16, dimension( * ) A, complex*16, dimension( * ) AF, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVGT
Purpose:

ZDRVGT tests ZGTSV 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 COMPLEX*16 array, dimension (NMAX*4)
AFAF is COMPLEX*16 array, dimension (NMAX*4)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,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 zdrvhe (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVHE ZDRVHEX
Purpose:

ZDRVHE tests the driver routines ZHESV 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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,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
Purpose:

ZDRVHE tests the driver routines ZHESV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise zdrvhe.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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (2*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:
 April 2012
subroutine zdrvhe_rook (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVHE_ROOK
Purpose:

ZDRVHE_ROOK tests the driver routines ZHESV_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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,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 zdrvhp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVHP
Purpose:

ZDRVHP tests the driver routines ZHPSV 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 COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,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 zdrvls (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, complex*16, dimension( * ) A, complex*16, dimension( * ) COPYA, complex*16, dimension( * ) B, complex*16, dimension( * ) COPYB, complex*16, dimension( * ) C, double precision, dimension( * ) S, double precision, dimension( * ) COPYS, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVLS
Purpose:

ZDRVLS tests the least squares driver routines ZGELS, CGELSS, ZGELSY and CGELSD.
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 unitary 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 unitary 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.
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.
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 COMPLEX*16 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 COMPLEX*16 array, dimension (MMAX*NMAX)
BB is COMPLEX*16 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 COMPLEX*16 array, dimension (MMAX*NSMAX)
CC is COMPLEX*16 array, dimension (MMAX*NSMAX)
SS is DOUBLE PRECISION array, dimension (min(MMAX,NMAX))
COPYSCOPYS is DOUBLE PRECISION array, dimension (min(MMAX,NMAX))
WORKWORK is COMPLEX*16 array, dimension (MMAX*NMAX + 4*NMAX + MMAX).
RWORKRWORK is DOUBLE PRECISION array, dimension (5*NMAX1)
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 zdrvpb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) ASAV, complex*16, dimension( * ) B, complex*16, dimension( * ) BSAV, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, double precision, dimension( * ) S, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZDRVPB
Purpose:

ZDRVPB tests the driver routines ZPBSV 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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (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 zdrvpo (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) ASAV, complex*16, dimension( * ) B, complex*16, dimension( * ) BSAV, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, double precision, dimension( * ) S, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZDRVPO ZDRVPOX
Purpose:

ZDRVPO tests the driver routines ZPOSV 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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (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
Purpose:

ZDRVPO tests the driver routines ZPOSV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise zdrvpo.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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (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 2013
subroutine zdrvpp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) ASAV, complex*16, dimension( * ) B, complex*16, dimension( * ) BSAV, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, double precision, dimension( * ) S, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZDRVPP
Purpose:

ZDRVPP tests the driver routines ZPPSV 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 COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
ASAVASAV is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
SS is DOUBLE PRECISION array, dimension (NMAX)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (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 zdrvpt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, complex*16, dimension( * ) A, double precision, dimension( * ) D, complex*16, dimension( * ) E, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer NOUT)
ZDRVPT
Purpose:

ZDRVPT tests ZPTSV 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 COMPLEX*16 array, dimension (NMAX*2)
DD is DOUBLE PRECISION array, dimension (NMAX*2)
EE is COMPLEX*16 array, dimension (NMAX*2)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (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 zdrvrf1 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, double precision THRESH, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) ARF, double precision, dimension( * ) WORK)
ZDRVRF1
Purpose:

ZDRVRF1 tests the LAPACK RFP routines: ZLANHF.F
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 COMPLEX*16 array, dimension (LDA,NMAX)
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
ARFARF is COMPLEX*16 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 zdrvrf2 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) ARF, complex*16, dimension(*) AP, complex*16, dimension( lda, * ) ASAV)
ZDRVRF2
Purpose:

ZDRVRF2 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 COMPLEX*16 array, dimension (LDA,NMAX)
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
ARFARF is COMPLEX*16 array, dimension ((NMAX*(NMAX+1))/2).
APAP is COMPLEX*16 array, dimension ((NMAX*(NMAX+1))/2).
ASAVASAV is COMPLEX*16 array, dimension (LDA,NMAX)
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zdrvrf3 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, double precision THRESH, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) ARF, complex*16, dimension( lda, * ) B1, complex*16, dimension( lda, * ) B2, double precision, dimension( * ) D_WORK_ZLANGE, complex*16, dimension( * ) Z_WORK_ZGEQRF, complex*16, dimension( * ) TAU)
ZDRVRF3
Purpose:

ZDRVRF3 tests the LAPACK RFP routines: ZTFSM
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 COMPLEX*16 array, dimension (LDA,NMAX)
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
ARFARF is COMPLEX*16 array, dimension ((NMAX*(NMAX+1))/2).
B1B1 is COMPLEX*16 array, dimension (LDA,NMAX)
B2B2 is COMPLEX*16 array, dimension (LDA,NMAX)
D_WORK_ZLANGED_WORK_ZLANGE is DOUBLE PRECISION array, dimension (NMAX)
Z_WORK_ZGEQRFZ_WORK_ZGEQRF is COMPLEX*16 array, dimension (NMAX)
TAUTAU is COMPLEX*16 array, dimension (NMAX)
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zdrvrf4 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, double precision THRESH, complex*16, dimension( ldc, * ) C1, complex*16, dimension( ldc, *) C2, integer LDC, complex*16, dimension( * ) CRF, complex*16, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) D_WORK_ZLANGE)
ZDRVRF4
Purpose:

ZDRVRF4 tests the LAPACK RFP routines: ZHFRK
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 COMPLEX*16 array, dimension (LDC,NMAX)
C2C2 is COMPLEX*16 array, dimension (LDC,NMAX)
LDCLDC is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
CRFCRF is COMPLEX*16 array, dimension ((NMAX*(NMAX+1))/2).
AA is COMPLEX*16 array, dimension (LDA,NMAX)
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
D_WORK_ZLANGED_WORK_ZLANGE is DOUBLE PRECISION array, dimension (NMAX)
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zdrvrfp (integer NOUT, integer NN, integer, dimension( nn ) NVAL, integer NNS, integer, dimension( nns ) NSVAL, integer NNT, integer, dimension( nnt ) NTVAL, double precision THRESH, complex*16, dimension( * ) A, complex*16, dimension( * ) ASAV, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) BSAV, complex*16, dimension( * ) XACT, complex*16, dimension( * ) X, complex*16, dimension( * ) ARF, complex*16, dimension( * ) ARFINV, complex*16, dimension( * ) Z_WORK_ZLATMS, complex*16, dimension( * ) Z_WORK_ZPOT02, complex*16, dimension( * ) Z_WORK_ZPOT03, double precision, dimension( * ) D_WORK_ZLATMS, double precision, dimension( * ) D_WORK_ZLANHE, double precision, dimension( * ) D_WORK_ZPOT01, double precision, dimension( * ) D_WORK_ZPOT02, double precision, dimension( * ) D_WORK_ZPOT03)
ZDRVRFP
Purpose:

ZDRVRFP tests the LAPACK RFP routines: ZPFTRF, ZPFTRS, and ZPFTRI. This testing routine follow the same tests as ZDRVPO (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 ZTRTTF and ZTFTTR. 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 ZPFTRF, no test ratios are computed) A solution XACT of size NbyNRHS is created and the associated right hand side B as well. Then ZPFTRF 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 COMPLEX*16 array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*MAXRHS)
BSAVBSAV is COMPLEX*16 array, dimension (NMAX*MAXRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*MAXRHS)
XX is COMPLEX*16 array, dimension (NMAX*MAXRHS)
ARFARF is COMPLEX*16 array, dimension ((NMAX*(NMAX+1))/2)
ARFINVARFINV is COMPLEX*16 array, dimension ((NMAX*(NMAX+1))/2)
Z_WORK_ZLATMSZ_WORK_ZLATMS is COMPLEX*16 array, dimension ( 3*NMAX )
Z_WORK_ZPOT02Z_WORK_ZPOT02 is COMPLEX*16 array, dimension ( NMAX*MAXRHS )
Z_WORK_ZPOT03Z_WORK_ZPOT03 is COMPLEX*16 array, dimension ( NMAX*NMAX )
D_WORK_ZLATMSD_WORK_ZLATMS is DOUBLE PRECISION array, dimension ( NMAX )
D_WORK_ZLANHED_WORK_ZLANHE is DOUBLE PRECISION array, dimension ( NMAX )
D_WORK_ZPOT01D_WORK_ZPOT01 is DOUBLE PRECISION array, dimension ( NMAX )
D_WORK_ZPOT02D_WORK_ZPOT02 is DOUBLE PRECISION array, dimension ( NMAX )
D_WORK_ZPOT03D_WORK_ZPOT03 is DOUBLE PRECISION array, dimension ( NMAX )
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2013
subroutine zdrvsp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVSP
Purpose:

ZDRVSP tests the driver routines ZSPSV 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 COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX*16 array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,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 zdrvsy (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVSY ZDRVSYX
Purpose:

ZDRVSY tests the driver routines ZSYSV 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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,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
Purpose:

ZDRVSY tests the driver routines ZSYSV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise zdrvsy.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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is DOUBLE PRECISION array, dimension (2*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:
 April 2012
subroutine zdrvsy_rook (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, double precision THRESH, logical TSTERR, integer NMAX, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, complex*16, dimension( * ) AINV, complex*16, dimension( * ) B, complex*16, dimension( * ) X, complex*16, dimension( * ) XACT, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
ZDRVSY_ROOK
Purpose:

ZDRVSY_ROOK tests the driver routines ZSYSV_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 COMPLEX*16 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX*16 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX*16 array, dimension (NMAX*NMAX)
BB is COMPLEX*16 array, dimension (NMAX*NRHS)
XX is COMPLEX*16 array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX*16 array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX*16 array, dimension (NMAX*max(2,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 zebchvxx (double precision THRESH, character*3 PATH)
ZEBCHVXX Purpose:
ZEBCHVXX will run Z**SVXX on a series of Hilbert matrices and then compare the error bounds returned by Z**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 CGESVXX 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 zerrab (integer NUNIT)
ZERRAB
Purpose:

DERRAB tests the error exits for ZCGESV.
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 zerrac (integer NUNIT)
ZERRAC
Purpose:

ZERRPX tests the error exits for ZCPOSV.
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 zerrge (character*3 PATH, integer NUNIT)
ZERRGE ZERRGEX
Purpose:

ZERRGE tests the error exits for the COMPLEX*16 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:

ZERRGE tests the error exits for the COMPLEX*16 routines for general matrices. Note that this file is used only when the XBLAS are available, otherwise zerrge.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 zerrgt (character*3 PATH, integer NUNIT)
ZERRGT
Purpose:

ZERRGT tests the error exits for the COMPLEX*16 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 zerrhe (character*3 PATH, integer NUNIT)
ZERRHE ZERRHEX
Purpose:

ZERRHE tests the error exits for the COMPLEX*16 routines for Hermitian 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 2013
Purpose:

ZERRHE tests the error exits for the COMPLEX*16 routines for Hermitian indefinite matrices. Note that this file is used only when the XBLAS are available, otherwise zerrhe.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 zerrlq (character*3 PATH, integer NUNIT)
ZERRLQ
Purpose:

ZERRLQ tests the error exits for the COMPLEX*16 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 zerrls (character*3 PATH, integer NUNIT)
ZERRLS
Purpose:

ZERRLS tests the error exits for the COMPLEX*16 least squares driver routines (ZGELS, CGELSS, CGELSY, CGELSD).
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 zerrpo (character*3 PATH, integer NUNIT)
ZERRPO ZERRPOX
Purpose:

ZERRPO tests the error exits for the COMPLEX*16 routines for Hermitian 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:

ZERRPO tests the error exits for the COMPLEX*16 routines for Hermitian positive definite matrices. Note that this file is used only when the XBLAS are available, otherwise zerrpo.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 zerrps (character*3 PATH, integer NUNIT)
ZERRPS
Purpose:

ZERRPS tests the error exits for the COMPLEX routines for ZPSTRF.
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 zerrql (character*3 PATH, integer NUNIT)
ZERRQL
Purpose:

ZERRQL tests the error exits for the COMPLEX*16 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 zerrqp (character*3 PATH, integer NUNIT)
ZERRQP
Purpose:

ZERRQP tests the error exits for ZGEQP3.
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 zerrqr (character*3 PATH, integer NUNIT)
ZERRQR
Purpose:

ZERRQR tests the error exits for the COMPLEX*16 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 zerrqrt (character*3 PATH, integer NUNIT)
ZERRQRT
Purpose:

ZERRQRT tests the error exits for the COMPLEX*16 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 zerrqrtp (character*3 PATH, integer NUNIT)
ZERRQRTP
Purpose:

ZERRQRTP tests the error exits for the COMPLEX*16 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 zerrrfp (integer NUNIT)
ZERRRFP
Purpose:

ZERRRFP tests the error exits for the COMPLEX*16 driver routines for solving linear systems of equations. ZDRVRFP tests the COMPLEX*16 LAPACK RFP routines: ZTFSM, ZTFTRI, ZHFRK, ZTFTTP, ZTFTTR, ZPFTRF, ZPFTRS, ZTPTTF, ZTPTTR, ZTRTTF, and ZTRTTP
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 zerrrq (character*3 PATH, integer NUNIT)
ZERRRQ
Purpose:

ZERRRQ tests the error exits for the COMPLEX*16 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 zerrsy (character*3 PATH, integer NUNIT)
ZERRSY ZERRSYX
Purpose:

ZERRSY tests the error exits for the COMPLEX*16 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 2013
Purpose:

ZERRSY tests the error exits for the COMPLEX*16 routines for symmetric indefinite matrices. Note that this file is used only when the XBLAS are available, otherwise zerrsy.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 zerrtr (character*3 PATH, integer NUNIT)
ZERRTR
Purpose:

ZERRTR tests the error exits for the COMPLEX*16 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 zerrtz (character*3 PATH, integer NUNIT)
ZERRTZ
Purpose:

ZERRTZ tests the error exits for ZTZRZF.
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 zerrvx (character*3 PATH, integer NUNIT)
ZERRVX ZERRVXX
Purpose:

ZERRVX tests the error exits for the COMPLEX*16 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 2013
Purpose:

ZERRVX tests the error exits for the COMPLEX*16 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 zgbt01 (integer M, integer N, integer KL, integer KU, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, complex*16, dimension( * ) WORK, double precision RESID)
ZGBT01
Purpose:

ZGBT01 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 COMPLEX*16 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 COMPLEX*16 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 ZGBTRF. 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 ZGBTRF 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 ZGBTRF.
WORKWORK is COMPLEX*16 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 zgbt02 (character TRANS, integer M, integer N, integer KL, integer KU, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision RESID)
ZGBT02
Purpose:

ZGBT02 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zgbt05 (character TRANS, integer N, integer KL, integer KU, integer NRHS, complex*16, dimension( ldab, * ) AB, integer LDAB, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZGBT05
Purpose:

ZGBT05 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zgelqs (integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( lwork ) WORK, integer LWORK, integer INFO)
ZGELQS
Purpose:

Compute a minimumnorm solution min  A*X  B  using the LQ factorization A = L*Q computed by ZGELQF.
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 COMPLEX*16 array, dimension (LDA,N) Details of the LQ factorization of the original matrix A as returned by ZGELQF.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
TAUTAU is COMPLEX*16 array, dimension (M) Details of the orthogonal matrix Q.
BB is COMPLEX*16 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 COMPLEX*16 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 zgennd (integer M, integer N, complex*16, dimension( lda, * ) A, integer LDA)
ZGENND
Purpose:

ZGENND tests that its argument has a real, nonnegative diagonal.
Parameters:

M
M is INTEGER The number of rows in A.
NN is INTEGER The number of columns in A.
AA is COMPLEX*16 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 zgeqls (integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( lwork ) WORK, integer LWORK, integer INFO)
ZGEQLS
Purpose:

Solve the least squares problem min  A*X  B  using the QL factorization A = Q*L computed by ZGEQLF.
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 COMPLEX*16 array, dimension (LDA,N) Details of the QL factorization of the original matrix A as returned by ZGEQLF.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
TAUTAU is COMPLEX*16 array, dimension (N) Details of the orthogonal matrix Q.
BB is COMPLEX*16 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 COMPLEX*16 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 zgeqrs (integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( lwork ) WORK, integer LWORK, integer INFO)
ZGEQRS
Purpose:

Solve the least squares problem min  A*X  B  using the QR factorization A = Q*R computed by ZGEQRF.
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 COMPLEX*16 array, dimension (LDA,N) Details of the QR factorization of the original matrix A as returned by ZGEQRF.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
TAUTAU is COMPLEX*16 array, dimension (N) Details of the orthogonal matrix Q.
BB is COMPLEX*16 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 COMPLEX*16 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 zgerqs (integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( lwork ) WORK, integer LWORK, integer INFO)
ZGERQS
Purpose:

Compute a minimumnorm solution min  A*X  B  using the RQ factorization A = R*Q computed by ZGERQF.
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 COMPLEX*16 array, dimension (LDA,N) Details of the RQ factorization of the original matrix A as returned by ZGERQF.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
TAUTAU is COMPLEX*16 array, dimension (M) Details of the orthogonal matrix Q.
BB is COMPLEX*16 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 COMPLEX*16 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 zget01 (integer M, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, double precision, dimension( * ) RWORK, double precision RESID)
ZGET01
Purpose:

ZGET01 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 COMPLEX*16 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 COMPLEX*16 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 ZGETRF. 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 ZGETRF.
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 zget02 (character TRANS, integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)
ZGET02
Purpose:

ZGET02 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^T*x = b, where A^T is the transpose of A = 'C': A^H*x = b, where A^H is the conjugate 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zget03 (integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldainv, * ) AINV, integer LDAINV, complex*16, dimension( ldwork, * ) WORK, integer LDWORK, double precision, dimension( * ) RWORK, double precision RCOND, double precision RESID)
ZGET03
Purpose:

ZGET03 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zget04 (integer N, integer NRHS, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision RCOND, double precision RESID)
ZGET04
Purpose:

ZGET04 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 COMPLEX*16 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 COMPLEX*16 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
subroutine zget07 (character TRANS, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, logical CHKFERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZGET07
Purpose:

ZGET07 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zget08 (character TRANS, integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)
ZGET08
Purpose:

ZGET08 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^T*x = b, where A^T is the transpose of A = 'C': A^H*x = b, where A^H is the conjugate 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zgtt01 (integer N, complex*16, dimension( * ) DL, complex*16, dimension( * ) D, complex*16, dimension( * ) DU, complex*16, dimension( * ) DLF, complex*16, dimension( * ) DF, complex*16, dimension( * ) DUF, complex*16, dimension( * ) DU2, integer, dimension( * ) IPIV, complex*16, dimension( ldwork, * ) WORK, integer LDWORK, double precision, dimension( * ) RWORK, double precision RESID)
ZGTT01
Purpose:

ZGTT01 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 COMPLEX*16 array, dimension (N1) The (n1) subdiagonal elements of A.
DD is COMPLEX*16 array, dimension (N) The diagonal elements of A.
DUDU is COMPLEX*16 array, dimension (N1) The (n1) superdiagonal elements of A.
DLFDLF is COMPLEX*16 array, dimension (N1) The (n1) multipliers that define the matrix L from the LU factorization of A.
DFDF is COMPLEX*16 array, dimension (N) The n diagonal elements of the upper triangular matrix U from the LU factorization of A.
DUFDUF is COMPLEX*16 array, dimension (N1) The (n1) elements of the first superdiagonal of U.
DU2DU2 is COMPLEX*16 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 COMPLEX*16 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 zgtt02 (character TRANS, integer N, integer NRHS, complex*16, dimension( * ) DL, complex*16, dimension( * ) D, complex*16, dimension( * ) DU, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision RESID)
ZGTT02
Purpose:

ZGTT02 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**T * X (Transpose) = 'C': B  A**H * X (Conjugate 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 COMPLEX*16 array, dimension (N1) The (n1) subdiagonal elements of A.
DD is COMPLEX*16 array, dimension (N) The diagonal elements of A.
DUDU is COMPLEX*16 array, dimension (N1) The (n1) superdiagonal elements of A.
XX is COMPLEX*16 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 COMPLEX*16 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 zgtt05 (character TRANS, integer N, integer NRHS, complex*16, dimension( * ) DL, complex*16, dimension( * ) D, complex*16, dimension( * ) DU, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZGTT05
Purpose:

ZGTT05 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 COMPLEX*16 array, dimension (N1) The (n1) subdiagonal elements of A.
DD is COMPLEX*16 array, dimension (N) The diagonal elements of A.
DUDU is COMPLEX*16 array, dimension (N1) The (n1) superdiagonal elements of A.
BB is COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zhet01 (character UPLO, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, complex*16, dimension( ldc, * ) C, integer LDC, double precision, dimension( * ) RWORK, double precision RESID)
ZHET01
Purpose:

ZHET01 reconstructs a Hermitian 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, 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 Hermitian 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 COMPLEX*16 array, dimension (LDA,N) The original Hermitian matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC is COMPLEX*16 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 ZHETRF.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,N).
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from ZHETRF.
CC is COMPLEX*16 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 zhet01_rook (character UPLO, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, complex*16, dimension( ldc, * ) C, integer LDC, double precision, dimension( * ) RWORK, double precision RESID)
ZHET01_ROOK
Purpose:

ZHET01_ROOK reconstructs a complex Hermitian 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, EPS is the machine epsilon, L' is the transpose of L, and U' is the transpose of U.
Parameters:

UPLO
UPLO is CHARACTER*1 Specifies whether the upper or lower triangular part of the complex Hermitian 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 COMPLEX*16 array, dimension (LDA,N) The original complex Hermitian matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC is COMPLEX*16 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 CSYTRF_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 CSYTRF_ROOK.
CC is COMPLEX*16 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 zhpt01 (character UPLO, integer N, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, integer, dimension( * ) IPIV, complex*16, dimension( ldc, * ) C, integer LDC, double precision, dimension( * ) RWORK, double precision RESID)
ZHPT01
Purpose:

ZHPT01 reconstructs a Hermitian 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, 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 Hermitian 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 COMPLEX*16 array, dimension (N*(N+1)/2) The original Hermitian matrix A, stored as a packed triangular matrix.
AFACAFAC is COMPLEX*16 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 ZHPTRF.
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from ZHPTRF.
CC is COMPLEX*16 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 zlahilb (integer N, integer NRHS, complex*16, dimension(lda,n) A, integer LDA, complex*16, dimension(ldx, nrhs) X, integer LDX, complex*16, dimension(ldb, nrhs) B, integer LDB, double precision, dimension(n) WORK, integer INFO, character*3 PATH)
ZLAHILB
Purpose:

ZLAHILB 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 COMPLEX array, dimension (LDA, N) The generated scaled Hilbert matrix.
LDALDA is INTEGER The leading dimension of the array A. LDA >= N.
XX is COMPLEX 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 REAL 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 REAL 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
PATHPATH is CHARACTER*3 The LAPACK path name.
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zlaipd (integer N, complex*16, dimension( * ) A, integer INDA, integer VINDA)
ZLAIPD
Purpose:

ZLAIPD sets the imaginary part of the diagonal elements of a complex matrix A to a large value. This is used to test LAPACK routines for complex Hermitian matrices, which are not supposed to access or use the imaginary parts of the diagonals.
Parameters:

N
N is INTEGER The number of diagonal elements of A.
AA is COMPLEX*16 array, dimension (1+(N1)*INDA+(N2)*VINDA) On entry, the complex (Hermitian) matrix A. On exit, the imaginary parts of the diagonal elements are set to BIGNUM = EPS / SAFMIN, where EPS is the machine epsilon and SAFMIN is the safe minimum.
INDAINDA is INTEGER The increment between A(1) and the next diagonal element of A. Typical values are = LDA+1: square matrices with leading dimension LDA = 2: packed upper triangular matrix, starting at A(1,1) = N: packed lower triangular matrix, starting at A(1,1)
VINDAVINDA is INTEGER The change in the diagonal increment between columns of A. Typical values are = 0: no change, the row and column increments in A are fixed = 1: packed upper triangular matrix = 1: packed lower triangular matrix
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zlaptm (character UPLO, integer N, integer NRHS, double precision ALPHA, double precision, dimension( * ) D, complex*16, dimension( * ) E, complex*16, dimension( ldx, * ) X, integer LDX, double precision BETA, complex*16, dimension( ldb, * ) B, integer LDB)
ZLAPTM
Purpose:

ZLAPTM multiplies an N by NRHS matrix X by a Hermitian 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:

UPLO
UPLO is CHARACTER Specifies whether the superdiagonal or the subdiagonal of the tridiagonal matrix A is stored. = 'U': Upper, E is the superdiagonal of A. = 'L': Lower, E is the subdiagonal of A.
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.
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 COMPLEX*16 array, dimension (N1) The (n1) subdiagonal or superdiagonal elements of A.
XX is COMPLEX*16 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 COMPLEX*16 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 zlarhs (character*3 PATH, character XTYPE, character UPLO, character TRANS, integer M, integer N, integer KL, integer KU, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, integer, dimension( 4 ) ISEED, integer INFO)
ZLARHS
Purpose:

ZLARHS 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, A**T (transpose of A), or A**H (conjugate transpose of A).
Parameters:

PATH
PATH is CHARACTER*3 The type of the complex matrix A. PATH may be given in any combination of upper and lower case. Valid paths include xGE: General m x n matrix xGB: General banded matrix xPO: Hermitian positive definite, 2D storage xPP: Hermitian positive definite packed xPB: Hermitian positive definite banded xHE: Hermitian indefinite, 2D storage xHP: Hermitian indefinite packed xHB: Hermitian indefinite 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 Used only if A is symmetric or triangular; specifies whether the upper or lower triangular part of the matrix A is stored. = 'U': Upper triangular = 'L': Lower triangular
TRANSTRANS is CHARACTER*1 Used only if A is nonsymmetric; specifies the operation applied to the matrix A. = 'N': B := A * X = 'T': B := A**T * X = 'C': B := A**H * X
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 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 COMPLEX*16 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) COMPLEX*16 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 COMPLEX*16 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 ZLATMS). Modified on exit.
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 zlatb4 (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)
ZLATB4
Purpose:

ZLATB4 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 = 'H': Hermitian matrix = 'P': Hermitian 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 2013
subroutine zlatb5 (character*3 PATH, integer IMAT, integer N, character TYPE, integer KL, integer KU, double precision ANORM, integer MODE, double precision CNDNUM, character DIST)
ZLATB5
Purpose:

ZLATB5 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 zlatsp (character UPLO, integer N, complex*16, dimension( * ) X, integer, dimension( * ) ISEED)
ZLATSP
Purpose:

ZLATSP generates a special test matrix for the complex symmetric (indefinite) factorization for packed matrices. The pivot blocks of the generated matrix will be in the following order: 2x2 pivot block, non diagonalizable 1x1 pivot block 2x2 pivot block, diagonalizable (cycle repeats) A row interchange is required for each nondiagonalizable 2x2 block.
Parameters:

UPLO
UPLO is CHARACTER Specifies whether the generated matrix is to be upper or lower triangular. = 'U': Upper triangular = 'L': Lower triangular
NN is INTEGER The dimension of the matrix to be generated.
XX is COMPLEX*16 array, dimension (N*(N+1)/2) The generated matrix in packed storage format. The matrix consists of 3x3 and 2x2 diagonal blocks which result in the pivot sequence given above. The matrix outside these diagonal blocks is zero.
ISEEDISEED is INTEGER array, dimension (4) On entry, the seed for the random number generator. The last of the four integers must be odd. (modified on exit)
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zlatsy (character UPLO, integer N, complex*16, dimension( ldx, * ) X, integer LDX, integer, dimension( * ) ISEED)
ZLATSY
Purpose:

ZLATSY generates a special test matrix for the complex symmetric (indefinite) factorization. The pivot blocks of the generated matrix will be in the following order: 2x2 pivot block, non diagonalizable 1x1 pivot block 2x2 pivot block, diagonalizable (cycle repeats) A row interchange is required for each nondiagonalizable 2x2 block.
Parameters:

UPLO
UPLO is CHARACTER Specifies whether the generated matrix is to be upper or lower triangular. = 'U': Upper triangular = 'L': Lower triangular
NN is INTEGER The dimension of the matrix to be generated.
XX is COMPLEX*16 array, dimension (LDX,N) The generated matrix, consisting of 3x3 and 2x2 diagonal blocks which result in the pivot sequence given above. The matrix outside of these diagonal blocks is zero.
LDXLDX is INTEGER The leading dimension of the array X.
ISEEDISEED is INTEGER array, dimension (4) On entry, the seed for the random number generator. The last of the four integers must be odd. (modified on exit)
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zlattb (integer IMAT, character UPLO, character TRANS, character DIAG, integer, dimension( 4 ) ISEED, integer N, integer KD, complex*16, dimension( ldab, * ) AB, integer LDAB, complex*16, dimension( * ) B, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer INFO)
ZLATTB
Purpose:

ZLATTB 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 ZLATMS). 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 COMPLEX*16 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 COMPLEX*16 array, dimension (N)
WORKWORK is COMPLEX*16 array, dimension (2*N)
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
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 zlattp (integer IMAT, character UPLO, character TRANS, character DIAG, integer, dimension( 4 ) ISEED, integer N, complex*16, dimension( * ) AP, complex*16, dimension( * ) B, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer INFO)
ZLATTP
Purpose:

ZLATTP 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
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 ZLATMS). Modified on exit.
NN is INTEGER The order of the matrix to be generated.
APAP is COMPLEX*16 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 COMPLEX*16 array, dimension (N) The right hand side vector, if IMAT > 10.
WORKWORK is COMPLEX*16 array, dimension (2*N)
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
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 zlattr (integer IMAT, character UPLO, character TRANS, character DIAG, integer, dimension( 4 ) ISEED, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) B, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, integer INFO)
ZLATTR
Purpose:

ZLATTR 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
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 ZLATMS). Modified on exit.
NN is INTEGER The order of the matrix to be generated.
AA is COMPLEX*16 array, dimension (LDA,N) The triangular matrix A. If UPLO = 'U', the leading N x 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 x N lower triangular part of the array A contains the lower triangular matrix 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 COMPLEX*16 array, dimension (N) The right hand side vector, if IMAT > 10.
WORKWORK is COMPLEX*16 array, dimension (2*N)
RWORKRWORK is DOUBLE PRECISION array, dimension (N)
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 zlavhe (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, integer, dimension( * ) IPIV, complex*16, dimension( ldb, * ) B, integer LDB, integer INFO)
ZLAVHE
Purpose:

ZLAVHE performs one of the matrixvector operations x := A*x or x := A^H*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 ZHETRF. If TRANS = 'N', multiplies by U or U * D (or L or L * D) 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 = '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 COMPLEX*16 array, dimension (LDA,N) The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ZHETRF. 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 ZHETRF. 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 COMPLEX*16 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 zlavhe_rook (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, integer, dimension( * ) IPIV, complex*16, dimension( ldb, * ) B, integer LDB, integer INFO)
ZLAVHE_ROOK
Purpose:
 ZLAVHE_ROOK performs one of the matrixvector operations x := A*x or x := A^H*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 ZHETRF_ROOK.
If TRANS = 'N', multiplies by U or U * D (or L or L * D) 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 = 'C': x := A^H*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 COMPLEX*16 array, dimension (LDA,N) The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ZHETRF_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 ZHETRF_ROOK. If UPLO = 'U': Only the last KB elements of IPIV are set. 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) < 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': Only the first KB elements of IPIV are set. 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) < 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 COMPLEX 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 zlavhp (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( * ) A, integer, dimension( * ) IPIV, complex*16, dimension( ldb, * ) B, integer LDB, integer INFO)
ZLAVHP
Purpose:

ZLAVHP performs one of the matrixvector operations x := A*x or x := A^H*x, where x is an N element vector and A is one of the factors from the symmetric factorization computed by ZHPTRF. ZHPTRF produces a factorization of the form U * D * U^H or L * D * L^H, where U (or L) is a product of permutation and unit upper (lower) triangular matrices, U^H (or L^H) is the conjugate transpose of U (or L), and D is Hermitian and block diagonal with 1 x 1 and 2 x 2 diagonal blocks. The multipliers for the transformations and the upper or lower triangular parts of the diagonal blocks are stored columnwise in packed format in the linear array A. If TRANS = 'N' or 'n', ZLAVHP multiplies either by U or U * D (or L or L * D). If TRANS = 'C' or 'c', ZLAVHP multiplies either by U^H or D * U^H (or L^H or D * L^H ).
UPLO  CHARACTER*1 On entry, UPLO specifies whether the triangular matrix stored in A is upper or lower triangular. UPLO = 'U' or 'u' The matrix is upper triangular. UPLO = 'L' or 'l' The matrix is lower triangular. Unchanged on exit. TRANS  CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows: TRANS = 'N' or 'n' x := A*x. TRANS = 'C' or 'c' x := A^H*x. Unchanged on exit. DIAG  CHARACTER*1 On entry, DIAG specifies whether the diagonal blocks are assumed to be unit matrices, as follows: DIAG = 'U' or 'u' Diagonal blocks are unit matrices. DIAG = 'N' or 'n' Diagonal blocks are nonunit. Unchanged on exit. N  INTEGER On entry, N specifies the order of the matrix A. N must be at least zero. Unchanged on exit. NRHS  INTEGER On entry, NRHS specifies the number of right hand sides, i.e., the number of vectors x to be multiplied by A. NRHS must be at least zero. Unchanged on exit. A  COMPLEX*16 array, dimension( N*(N+1)/2 ) On entry, A contains a block diagonal matrix and the multipliers of the transformations used to obtain it, stored as a packed triangular matrix. Unchanged on exit. IPIV  INTEGER array, dimension( N ) On entry, IPIV contains the vector of pivot indices as determined by ZSPTRF or ZHPTRF. If IPIV( K ) = K, no interchange was done. If IPIV( K ) <> K but IPIV( K ) > 0, then row K was inter changed with row IPIV( K ) and a 1 x 1 pivot block was used. If IPIV( K ) < 0 and UPLO = 'U', then row K1 was exchanged with row  IPIV( K )  and a 2 x 2 pivot block was used. If IPIV( K ) < 0 and UPLO = 'L', then row K+1 was exchanged with row  IPIV( K )  and a 2 x 2 pivot block was used. B  COMPLEX*16 array, dimension( LDB, NRHS ) On entry, B contains NRHS vectors of length N. On exit, B is overwritten with the product A * B. LDB  INTEGER On entry, LDB contains the leading dimension of B as declared in the calling program. LDB must be at least max( 1, N ). Unchanged on exit. INFO  INTEGER INFO is the error flag. On exit, a value of 0 indicates a successful exit. A negative value, say K, indicates that the Kth argument has an illegal value.
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zlavsp (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( * ) A, integer, dimension( * ) IPIV, complex*16, dimension( ldb, * ) B, integer LDB, integer INFO)
ZLAVSP
Purpose:

ZLAVSP performs one of the matrixvector operations x := A*x or x := A^T*x, where x is an N element vector and A is one of the factors from the symmetric factorization computed by ZSPTRF. ZSPTRF produces a factorization of the form U * D * U^T or L * D * L^T, where U (or L) is a product of permutation and unit upper (lower) triangular matrices, U^T (or L^T) is the transpose of U (or L), and D is symmetric and block diagonal with 1 x 1 and 2 x 2 diagonal blocks. The multipliers for the transformations and the upper or lower triangular parts of the diagonal blocks are stored columnwise in packed format in the linear array A. If TRANS = 'N' or 'n', ZLAVSP multiplies either by U or U * D (or L or L * D). If TRANS = 'C' or 'c', ZLAVSP multiplies either by U^T or D * U^T (or L^T or D * L^T ).
UPLO  CHARACTER*1 On entry, UPLO specifies whether the triangular matrix stored in A is upper or lower triangular. UPLO = 'U' or 'u' The matrix is upper triangular. UPLO = 'L' or 'l' The matrix is lower triangular. Unchanged on exit. TRANS  CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows: TRANS = 'N' or 'n' x := A*x. TRANS = 'T' or 't' x := A^T*x. Unchanged on exit. DIAG  CHARACTER*1 On entry, DIAG specifies whether the diagonal blocks are assumed to be unit matrices, as follows: DIAG = 'U' or 'u' Diagonal blocks are unit matrices. DIAG = 'N' or 'n' Diagonal blocks are nonunit. Unchanged on exit. N  INTEGER On entry, N specifies the order of the matrix A. N must be at least zero. Unchanged on exit. NRHS  INTEGER On entry, NRHS specifies the number of right hand sides, i.e., the number of vectors x to be multiplied by A. NRHS must be at least zero. Unchanged on exit. A  COMPLEX*16 array, dimension( N*(N+1)/2 ) On entry, A contains a block diagonal matrix and the multipliers of the transformations used to obtain it, stored as a packed triangular matrix. Unchanged on exit. IPIV  INTEGER array, dimension( N ) On entry, IPIV contains the vector of pivot indices as determined by ZSPTRF. If IPIV( K ) = K, no interchange was done. If IPIV( K ) <> K but IPIV( K ) > 0, then row K was inter changed with row IPIV( K ) and a 1 x 1 pivot block was used. If IPIV( K ) < 0 and UPLO = 'U', then row K1 was exchanged with row  IPIV( K )  and a 2 x 2 pivot block was used. If IPIV( K ) < 0 and UPLO = 'L', then row K+1 was exchanged with row  IPIV( K )  and a 2 x 2 pivot block was used. B  COMPLEX*16 array, dimension( LDB, NRHS ) On entry, B contains NRHS vectors of length N. On exit, B is overwritten with the product A * B. LDB  INTEGER On entry, LDB contains the leading dimension of B as declared in the calling program. LDB must be at least max( 1, N ). Unchanged on exit. INFO  INTEGER INFO is the error flag. On exit, a value of 0 indicates a successful exit. A negative value, say K, indicates that the Kth argument has an illegal value.
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zlavsy (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, integer, dimension( * ) IPIV, complex*16, dimension( ldb, * ) B, integer LDB, integer INFO)
ZLAVSY
Purpose:

ZLAVSY 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 ZSYTRF. 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')
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
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 COMPLEX*16 array, dimension (LDA,N) The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ZSYTRF. 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 ZSYTRF. 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 COMPLEX*16 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 zlavsy_rook (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, integer, dimension( * ) IPIV, complex*16, dimension( ldb, * ) B, integer LDB, integer INFO)
ZLAVSY_ROOK
Purpose:

ZLAVSY_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 ZSYTRF_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')
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
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 COMPLEX*16 array, dimension (LDA,N) The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ZSYTRF_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 ZSYTRF_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 COMPLEX*16 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 zlqt01 (integer M, integer N, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) Q, complex*16, dimension( lda, * ) L, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZLQT01
Purpose:

ZLQT01 tests ZGELQF, which computes the LQ factorization of an mbyn matrix A, and partially tests ZUNGLQ which forms the nbyn orthogonal matrix Q. ZLQT01 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 COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX*16 array, dimension (LDA,N) Details of the LQ factorization of A, as returned by ZGELQF. See ZGELQF for further details.
QQ is COMPLEX*16 array, dimension (LDA,N) The nbyn orthogonal matrix Q.
LL is COMPLEX*16 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 COMPLEX*16 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by ZGELQF.
WORKWORK is COMPLEX*16 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 zlqt02 (integer M, integer N, integer K, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) Q, complex*16, dimension( lda, * ) L, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZLQT02
Purpose:

ZLQT02 tests ZUNGLQ, 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, ZLQT02 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 COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A which was factorized by ZLQT01.
AFAF is COMPLEX*16 array, dimension (LDA,N) Details of the LQ factorization of A, as returned by ZGELQF. See ZGELQF for further details.
QQ is COMPLEX*16 array, dimension (LDA,N)
LL is COMPLEX*16 array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= N.
TAUTAU is COMPLEX*16 array, dimension (M) The scalar factors of the elementary reflectors corresponding to the LQ factorization in AF.
WORKWORK is COMPLEX*16 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 zlqt03 (integer M, integer N, integer K, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) C, complex*16, dimension( lda, * ) CC, complex*16, dimension( lda, * ) Q, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZLQT03
Purpose:

ZLQT03 tests ZUNMLQ, which computes Q*C, Q'*C, C*Q or C*Q'. ZLQT03 compares the results of a call to ZUNMLQ with the results of forming Q explicitly by a call to ZUNGLQ and then performing matrix multiplication by a call to ZGEMM.
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 COMPLEX*16 array, dimension (LDA,N) Details of the LQ factorization of an mbyn matrix, as returned by ZGELQF. See CGELQF for further details.
CC is COMPLEX*16 array, dimension (LDA,N)
CCCC is COMPLEX*16 array, dimension (LDA,N)
QQ is COMPLEX*16 array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays AF, C, CC, and Q.
TAUTAU is COMPLEX*16 array, dimension (min(M,N)) The scalar factors of the elementary reflectors corresponding to the LQ factorization in AF.
WORKWORK is COMPLEX*16 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 zpbt01 (character UPLO, integer N, integer KD, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldafac, * ) AFAC, integer LDAFAC, double precision, dimension( * ) RWORK, double precision RESID)
ZPBT01
Purpose:

ZPBT01 reconstructs a Hermitian 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 Hermitian 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 COMPLEX*16 array, dimension (LDA,N) The original Hermitian 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 ZPBTRF for further details.
LDALDA is INTEGER. The leading dimension of the array A. LDA >= max(1,KD+1).
AFACAFAC is COMPLEX*16 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 ZPBTRF.
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 zpbt02 (character UPLO, integer N, integer KD, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)
ZPBT02
Purpose:

ZPBT02 computes the residual for a solution of a Hermitian 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 Hermitian 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 COMPLEX*16 array, dimension (LDA,N) The original Hermitian 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 ZPBTRF for further details.
LDALDA is INTEGER. The leading dimension of the array A. LDA >= max(1,KD+1).
XX is COMPLEX*16 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 COMPLEX*16 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 zpbt05 (character UPLO, integer N, integer KD, integer NRHS, complex*16, dimension( ldab, * ) AB, integer LDAB, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZPBT05
Purpose:

ZPBT05 tests the error bounds from iterative refinement for the computed solution to a system of equations A*X = B, where A is a Hermitian 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 Hermitian 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 COMPLEX*16 array, dimension (LDAB,N) The upper or lower triangle of the Hermitian 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zpot01 (character UPLO, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldafac, * ) AFAC, integer LDAFAC, double precision, dimension( * ) RWORK, double precision RESID)
ZPOT01
Purpose:

ZPOT01 reconstructs a Hermitian 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, 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 Hermitian 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 COMPLEX*16 array, dimension (LDA,N) The original Hermitian matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC is COMPLEX*16 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 zpot02 (character UPLO, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)
ZPOT02
Purpose:

ZPOT02 computes the residual for the solution of a Hermitian 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 Hermitian 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 COMPLEX*16 array, dimension (LDA,N) The original Hermitian matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
XX is COMPLEX*16 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 COMPLEX*16 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 zpot03 (character UPLO, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldainv, * ) AINV, integer LDAINV, complex*16, dimension( ldwork, * ) WORK, integer LDWORK, double precision, dimension( * ) RWORK, double precision RCOND, double precision RESID)
ZPOT03
Purpose:

ZPOT03 computes the residual for a Hermitian 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 Hermitian 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 COMPLEX*16 array, dimension (LDA,N) The original Hermitian matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AINVAINV is COMPLEX*16 array, dimension (LDAINV,N) On entry, the inverse of the matrix A, stored as a Hermitian 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 COMPLEX*16 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 zpot05 (character UPLO, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZPOT05
Purpose:

ZPOT05 tests the error bounds from iterative refinement for the computed solution to a system of equations A*X = B, where A is a Hermitian 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 Hermitian 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 COMPLEX*16 array, dimension (LDA,N) The Hermitian 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zpot06 (character UPLO, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)
ZPOT06
Purpose:

ZPOT06 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zppt01 (character UPLO, integer N, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, double precision, dimension( * ) RWORK, double precision RESID)
ZPPT01
Purpose:

ZPPT01 reconstructs a Hermitian 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, 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 Hermitian 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 COMPLEX*16 array, dimension (N*(N+1)/2) The original Hermitian matrix A, stored as a packed triangular matrix.
AFACAFAC is COMPLEX*16 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 zppt02 (character UPLO, integer N, integer NRHS, complex*16, dimension( * ) A, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)
ZPPT02
Purpose:

ZPPT02 computes the residual in the solution of a Hermitian 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 Hermitian 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 COMPLEX*16 array, dimension (N*(N+1)/2) The original Hermitian matrix A, stored as a packed triangular matrix.
XX is COMPLEX*16 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 COMPLEX*16 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 zppt03 (character UPLO, integer N, complex*16, dimension( * ) A, complex*16, dimension( * ) AINV, complex*16, dimension( ldwork, * ) WORK, integer LDWORK, double precision, dimension( * ) RWORK, double precision RCOND, double precision RESID)
ZPPT03
Purpose:

ZPPT03 computes the residual for a Hermitian 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 Hermitian 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 COMPLEX*16 array, dimension (N*(N+1)/2) The original Hermitian matrix A, stored as a packed triangular matrix.
AINVAINV is COMPLEX*16 array, dimension (N*(N+1)/2) The (Hermitian) inverse of the matrix A, stored as a packed triangular matrix.
WORKWORK is COMPLEX*16 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 zppt05 (character UPLO, integer N, integer NRHS, complex*16, dimension( * ) AP, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZPPT05
Purpose:

ZPPT05 tests the error bounds from iterative refinement for the computed solution to a system of equations A*X = B, where A is a Hermitian 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 Hermitian 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 COMPLEX*16 array, dimension (N*(N+1)/2) The upper or lower triangle of the Hermitian 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zpst01 (character UPLO, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldafac, * ) AFAC, integer LDAFAC, complex*16, dimension( ldperm, * ) PERM, integer LDPERM, integer, dimension( * ) PIV, double precision, dimension( * ) RWORK, double precision RESID, integer RANK)
ZPST01
Purpose:

ZPST01 reconstructs an Hermitian 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, 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 Hermitian 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 COMPLEX*16 array, dimension (LDA,N) The original Hermitian matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC is COMPLEX*16 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 COMPLEX*16 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 zptt01 (integer N, double precision, dimension( * ) D, complex*16, dimension( * ) E, double precision, dimension( * ) DF, complex*16, dimension( * ) EF, complex*16, dimension( * ) WORK, double precision RESID)
ZPTT01
Purpose:

ZPTT01 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 COMPLEX*16 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 COMPLEX*16 array, dimension (N1) The (n1) subdiagonal elements of the factor L from the L*D*L' factorization of A.
WORKWORK is COMPLEX*16 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 zptt02 (character UPLO, integer N, integer NRHS, double precision, dimension( * ) D, complex*16, dimension( * ) E, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision RESID)
ZPTT02
Purpose:

ZPTT02 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:

UPLO
UPLO is CHARACTER*1 Specifies whether the superdiagonal or the subdiagonal of the tridiagonal matrix A is stored. = 'U': E is the superdiagonal of A = 'L': E is the subdiagonal of A
NN 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 COMPLEX*16 array, dimension (N1) The (n1) subdiagonal elements of the tridiagonal matrix A.
XX is COMPLEX*16 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 COMPLEX*16 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 zptt05 (integer N, integer NRHS, double precision, dimension( * ) D, complex*16, dimension( * ) E, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZPTT05
Purpose:

ZPTT05 tests the error bounds from iterative refinement for the computed solution to a system of equations A*X = B, where A is a Hermitian 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 COMPLEX*16 array, dimension (N1) The (n1) subdiagonal elements of the tridiagonal matrix A.
BB is COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zqlt01 (integer M, integer N, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) Q, complex*16, dimension( lda, * ) L, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZQLT01
Purpose:

ZQLT01 tests ZGEQLF, which computes the QL factorization of an mbyn matrix A, and partially tests ZUNGQL which forms the mbym orthogonal matrix Q. ZQLT01 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 COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX*16 array, dimension (LDA,N) Details of the QL factorization of A, as returned by ZGEQLF. See ZGEQLF for further details.
QQ is COMPLEX*16 array, dimension (LDA,M) The mbym orthogonal matrix Q.
LL is COMPLEX*16 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 COMPLEX*16 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by ZGEQLF.
WORKWORK is COMPLEX*16 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 zqlt02 (integer M, integer N, integer K, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) Q, complex*16, dimension( lda, * ) L, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZQLT02
Purpose:

ZQLT02 tests ZUNGQL, 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, ZQLT02 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 COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A which was factorized by ZQLT01.
AFAF is COMPLEX*16 array, dimension (LDA,N) Details of the QL factorization of A, as returned by ZGEQLF. See ZGEQLF for further details.
QQ is COMPLEX*16 array, dimension (LDA,N)
LL is COMPLEX*16 array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= M.
TAUTAU is COMPLEX*16 array, dimension (N) The scalar factors of the elementary reflectors corresponding to the QL factorization in AF.
WORKWORK is COMPLEX*16 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 zqlt03 (integer M, integer N, integer K, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) C, complex*16, dimension( lda, * ) CC, complex*16, dimension( lda, * ) Q, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZQLT03
Purpose:

ZQLT03 tests ZUNMQL, which computes Q*C, Q'*C, C*Q or C*Q'. ZQLT03 compares the results of a call to ZUNMQL with the results of forming Q explicitly by a call to ZUNGQL and then performing matrix multiplication by a call to ZGEMM.
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 COMPLEX*16 array, dimension (LDA,N) Details of the QL factorization of an mbyn matrix, as returned by ZGEQLF. See CGEQLF for further details.
CC is COMPLEX*16 array, dimension (LDA,N)
CCCC is COMPLEX*16 array, dimension (LDA,N)
QQ is COMPLEX*16 array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays AF, C, CC, and Q.
TAUTAU is COMPLEX*16 array, dimension (min(M,N)) The scalar factors of the elementary reflectors corresponding to the QL factorization in AF.
WORKWORK is COMPLEX*16 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 zqpt01 (integer M, integer N, integer K, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, integer LDA, complex*16, dimension( * ) TAU, integer, dimension( * ) JPVT, complex*16, dimension( lwork ) WORK, integer LWORK)
ZQPT01
Purpose:

ZQPT01 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 COMPLEX*16 array, dimension (LDA, N) The original matrix A.
AFAF is COMPLEX*16 array, dimension (LDA,N) The (possibly partial) output of ZGEQPF. 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 COMPLEX*16 array, dimension (K) Details of the Householder transformations as returned by ZGEQPF.
JPVTJPVT is INTEGER array, dimension (N) Pivot information as returned by ZGEQPF.
WORKWORK is COMPLEX*16 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 zqrt01 (integer M, integer N, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) Q, complex*16, dimension( lda, * ) R, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZQRT01
Purpose:

ZQRT01 tests ZGEQRF, which computes the QR factorization of an mbyn matrix A, and partially tests ZUNGQR which forms the mbym orthogonal matrix Q. ZQRT01 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 COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX*16 array, dimension (LDA,N) Details of the QR factorization of A, as returned by ZGEQRF. See ZGEQRF for further details.
QQ is COMPLEX*16 array, dimension (LDA,M) The mbym orthogonal matrix Q.
RR is COMPLEX*16 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 COMPLEX*16 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by ZGEQRF.
WORKWORK is COMPLEX*16 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 zqrt01p (integer M, integer N, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) Q, complex*16, dimension( lda, * ) R, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZQRT01P
Purpose:

ZQRT01P tests ZGEQRFP, which computes the QR factorization of an mbyn matrix A, and partially tests ZUNGQR which forms the mbym orthogonal matrix Q. ZQRT01P 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 COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX*16 array, dimension (LDA,N) Details of the QR factorization of A, as returned by ZGEQRFP. See ZGEQRFP for further details.
QQ is COMPLEX*16 array, dimension (LDA,M) The mbym orthogonal matrix Q.
RR is COMPLEX*16 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 COMPLEX*16 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by ZGEQRFP.
WORKWORK is COMPLEX*16 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 zqrt02 (integer M, integer N, integer K, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) Q, complex*16, dimension( lda, * ) R, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZQRT02
Purpose:

ZQRT02 tests ZUNGQR, 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, ZQRT02 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 COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A which was factorized by ZQRT01.
AFAF is COMPLEX*16 array, dimension (LDA,N) Details of the QR factorization of A, as returned by ZGEQRF. See ZGEQRF for further details.
QQ is COMPLEX*16 array, dimension (LDA,N)
RR is COMPLEX*16 array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and R. LDA >= M.
TAUTAU is COMPLEX*16 array, dimension (N) The scalar factors of the elementary reflectors corresponding to the QR factorization in AF.
WORKWORK is COMPLEX*16 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 zqrt03 (integer M, integer N, integer K, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) C, complex*16, dimension( lda, * ) CC, complex*16, dimension( lda, * ) Q, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZQRT03
Purpose:

ZQRT03 tests ZUNMQR, which computes Q*C, Q'*C, C*Q or C*Q'. ZQRT03 compares the results of a call to ZUNMQR with the results of forming Q explicitly by a call to ZUNGQR and then performing matrix multiplication by a call to ZGEMM.
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 COMPLEX*16 array, dimension (LDA,N) Details of the QR factorization of an mbyn matrix, as returned by ZGEQRF. See ZGEQRF for further details.
CC is COMPLEX*16 array, dimension (LDA,N)
CCCC is COMPLEX*16 array, dimension (LDA,N)
QQ is COMPLEX*16 array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays AF, C, CC, and Q.
TAUTAU is COMPLEX*16 array, dimension (min(M,N)) The scalar factors of the elementary reflectors corresponding to the QR factorization in AF.
WORKWORK is COMPLEX*16 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 zqrt04 (integer M, integer N, integer NB, double precision, dimension(6) RESULT)
ZQRT04
Purpose:

ZQRT04 tests ZGEQRT and ZGEMQRT.
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 zqrt05 (integer M, integer N, integer L, integer NB, double precision, dimension(6) RESULT)
ZQRT05
Purpose:

ZQRT05 tests ZTPQRT and ZTPMQRT.
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 zqrt11 (integer M, integer K, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK)
ZQRT11
Purpose:

ZQRT11 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 COMPLEX*16 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 COMPLEX*16 array, dimension (K) The scaling factors tau for the elementary transformations as computed by the QR factorization routine.
WORKWORK is COMPLEX*16 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 zqrt12 (integer M, integer N, complex*16, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) S, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK)
ZQRT12
Purpose:

ZQRT12 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 COMPLEX*16 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 COMPLEX*16 array, dimension (LWORK)
LWORKLWORK is INTEGER The length of the array WORK. LWORK >= M*N + 2*min(M,N) + max(M,N).
RWORKRWORK is DOUBLE PRECISION array, dimension (2*min(M,N))
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zqrt13 (integer SCALE, integer M, integer N, complex*16, dimension( lda, * ) A, integer LDA, double precision NORMA, integer, dimension( 4 ) ISEED)
ZQRT13
Purpose:

ZQRT13 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 COMPLEX*16 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 zqrt14 (character TRANS, integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( lwork ) WORK, integer LWORK)
ZQRT14
Purpose:

ZQRT14 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 = 'C') 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 = 'C': Conjugate transpose, check for X in 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 COMPLEX*16 array, dimension (LDA,N) The MbyN matrix A.
LDALDA is INTEGER The leading dimension of the array A.
XX is COMPLEX*16 array, dimension (LDX,NRHS) If TRANS = 'N', the NbyNRHS matrix X. IF TRANS = 'C', the MbyNRHS matrix X.
LDXLDX is INTEGER The leading dimension of the array X.
WORKWORK is COMPLEX*16 array dimension (LWORK)
LWORKLWORK is INTEGER length of workspace array required If TRANS = 'N', LWORK >= (M+NRHS)*(N+2); if TRANS = 'C', LWORK >= (N+NRHS)*(M+2).
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zqrt15 (integer SCALE, integer RKSEL, integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) S, integer RANK, double precision NORMA, double precision NORMB, integer, dimension( 4 ) ISEED, complex*16, dimension( lwork ) WORK, integer LWORK)
ZQRT15
Purpose:

ZQRT15 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 COMPLEX*16 array, dimension (LDA,N) The MbyN matrix A.
LDALDA is INTEGER The leading dimension of the array A.
BB is COMPLEX*16 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 norm of A.
NORMBNORMB is DOUBLE PRECISION onenorm norm of B.
ISEEDISEED is integer array, dimension (4) seed for random number generator.
WORKWORK is COMPLEX*16 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 zqrt16 (character TRANS, integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)
ZQRT16
Purpose:

ZQRT16 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^T*x = b, where A^T is the transpose of A = 'C': A^H*x = b, where A^H is the conjugate 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 zqrt17 (character TRANS, integer IRESID, integer M, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldb, * ) C, complex*16, dimension( lwork ) WORK, integer LWORK)
ZQRT17
Purpose:

ZQRT17 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. = 'C': Conjugate 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 = 'C', 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 = 'C', the number of rows of the matrix B.
NRHSNRHS is INTEGER The number of columns of the matrices X and B.
AA is COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
XX is COMPLEX*16 array, dimension (LDX,NRHS) If TRANS = 'N', the nbynrhs matrix X. If TRANS = 'C', the mbynrhs matrix X.
LDXLDX is INTEGER The leading dimension of the array X. If TRANS = 'N', LDX >= N. If TRANS = 'C', LDX >= M.
BB is COMPLEX*16 array, dimension (LDB,NRHS) If TRANS = 'N', the mbynrhs matrix B. If TRANS = 'C', the nbynrhs matrix B.
LDBLDB is INTEGER The leading dimension of the array B. If TRANS = 'N', LDB >= M. If TRANS = 'C', LDB >= N.
CC is COMPLEX*16 array, dimension (LDB,NRHS)
WORKWORK is COMPLEX*16 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 zrqt01 (integer M, integer N, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) Q, complex*16, dimension( lda, * ) R, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZRQT01
Purpose:

ZRQT01 tests ZGERQF, which computes the RQ factorization of an mbyn matrix A, and partially tests ZUNGRQ which forms the nbyn orthogonal matrix Q. ZRQT01 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 COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX*16 array, dimension (LDA,N) Details of the RQ factorization of A, as returned by ZGERQF. See ZGERQF for further details.
QQ is COMPLEX*16 array, dimension (LDA,N) The nbyn orthogonal matrix Q.
RR is COMPLEX*16 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 COMPLEX*16 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by ZGERQF.
WORKWORK is COMPLEX*16 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 zrqt02 (integer M, integer N, integer K, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) Q, complex*16, dimension( lda, * ) R, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZRQT02
Purpose:

ZRQT02 tests ZUNGRQ, 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, ZRQT02 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 COMPLEX*16 array, dimension (LDA,N) The mbyn matrix A which was factorized by ZRQT01.
AFAF is COMPLEX*16 array, dimension (LDA,N) Details of the RQ factorization of A, as returned by ZGERQF. See ZGERQF for further details.
QQ is COMPLEX*16 array, dimension (LDA,N)
RR is COMPLEX*16 array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= N.
TAUTAU is COMPLEX*16 array, dimension (M) The scalar factors of the elementary reflectors corresponding to the RQ factorization in AF.
WORKWORK is COMPLEX*16 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 zrqt03 (integer M, integer N, integer K, complex*16, dimension( lda, * ) AF, complex*16, dimension( lda, * ) C, complex*16, dimension( lda, * ) CC, complex*16, dimension( lda, * ) Q, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK, double precision, dimension( * ) RWORK, double precision, dimension( * ) RESULT)
ZRQT03
Purpose:

ZRQT03 tests ZUNMRQ, which computes Q*C, Q'*C, C*Q or C*Q'. ZRQT03 compares the results of a call to ZUNMRQ with the results of forming Q explicitly by a call to ZUNGRQ and then performing matrix multiplication by a call to ZGEMM.
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 COMPLEX*16 array, dimension (LDA,N) Details of the RQ factorization of an mbyn matrix, as returned by ZGERQF. See CGERQF for further details.
CC is COMPLEX*16 array, dimension (LDA,N)
CCCC is COMPLEX*16 array, dimension (LDA,N)
QQ is COMPLEX*16 array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays AF, C, CC, and Q.
TAUTAU is COMPLEX*16 array, dimension (min(M,N)) The scalar factors of the elementary reflectors corresponding to the RQ factorization in AF.
WORKWORK is COMPLEX*16 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 zrzt01 (integer M, integer N, complex*16, dimension( lda, * ) A, complex*16, dimension( lda, * ) AF, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK)
ZRZT01
Purpose:

ZRZT01 returns  A  R*Q  / ( M * eps * A ) for an upper trapezoidal A that was factored with ZTZRZF.
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 COMPLEX*16 array, dimension (LDA,N) The original upper trapezoidal M by N matrix A.
AFAF is COMPLEX*16 array, dimension (LDA,N) The output of ZTZRZF for input matrix A. The lower triangle is not referenced.
LDALDA is INTEGER The leading dimension of the arrays A and AF.
TAUTAU is COMPLEX*16 array, dimension (M) Details of the Householder transformations as returned by ZTZRZF.
WORKWORK is COMPLEX*16 array, dimension (LWORK)
LWORKLWORK is INTEGER The length of the array WORK. LWORK >= m*n + m.
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
double precision function zrzt02 (integer M, integer N, complex*16, dimension( lda, * ) AF, integer LDA, complex*16, dimension( * ) TAU, complex*16, dimension( lwork ) WORK, integer LWORK)
ZRZT02
Purpose:

ZRZT02 returns  I  Q'*Q  / ( M * eps) where the matrix Q is defined by the Householder transformations generated by ZTZRZF.
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 COMPLEX*16 array, dimension (LDA,N) The output of ZTZRZF.
LDALDA is INTEGER The leading dimension of the array AF.
TAUTAU is COMPLEX*16 array, dimension (M) Details of the Householder transformations as returned by ZTZRZF.
WORKWORK is COMPLEX*16 array, dimension (LWORK)
LWORKLWORK is INTEGER Length of WORK array. LWORK >= N*N+N.
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zsbmv (character UPLO, integer N, integer K, complex*16 ALPHA, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( * ) X, integer INCX, complex*16 BETA, complex*16, dimension( * ) Y, integer INCY)
ZSBMV
Purpose:

ZSBMV performs the matrixvector operation y := alpha*A*x + beta*y, where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric band matrix, with k superdiagonals.
UPLO  CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the band matrix A is being supplied as follows: UPLO = 'U' or 'u' The upper triangular part of A is being supplied. UPLO = 'L' or 'l' The lower triangular part of A is being supplied. Unchanged on exit. N  INTEGER On entry, N specifies the order of the matrix A. N must be at least zero. Unchanged on exit. K  INTEGER On entry, K specifies the number of superdiagonals of the matrix A. K must satisfy 0 .le. K. Unchanged on exit. ALPHA  COMPLEX*16 On entry, ALPHA specifies the scalar alpha. Unchanged on exit. A  COMPLEX*16 array, dimension( LDA, N ) Before entry with UPLO = 'U' or 'u', the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the symmetric matrix, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first superdiagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer the upper triangular part of a symmetric band matrix from conventional full matrix storage to band storage: DO 20, J = 1, N M = K + 1  J DO 10, I = MAX( 1, J  K ), J A( M + I, J ) = matrix( I, J ) 10 CONTINUE 20 CONTINUE Before entry with UPLO = 'L' or 'l', the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the symmetric matrix, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first subdiagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer the lower triangular part of a symmetric band matrix from conventional full matrix storage to band storage: DO 20, J = 1, N M = 1  J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J ) 10 CONTINUE 20 CONTINUE Unchanged on exit. LDA  INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ). Unchanged on exit. X  COMPLEX*16 array, dimension at least ( 1 + ( N  1 )*abs( INCX ) ). Before entry, the incremented array X must contain the vector x. Unchanged on exit. INCX  INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero. Unchanged on exit. BETA  COMPLEX*16 On entry, BETA specifies the scalar beta. Unchanged on exit. Y  COMPLEX*16 array, dimension at least ( 1 + ( N  1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y. INCY  INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero. Unchanged on exit.
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine zspt01 (character UPLO, integer N, complex*16, dimension( * ) A, complex*16, dimension( * ) AFAC, integer, dimension( * ) IPIV, complex*16, dimension( ldc, * ) C, integer LDC, double precision, dimension( * ) RWORK, double precision RESID)
ZSPT01
Purpose:

ZSPT01 reconstructs a symmetric indefinite packed matrix A from its diagonal pivoting factorization A = U*D*U' or A = L*D*L' 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 Hermitian matrix A is stored: = 'U': Upper triangular = 'L': Lower triangular
NN is INTEGER The order of the matrix A. N >= 0.
AA is COMPLEX*16 array, dimension (N*(N+1)/2) The original symmetric matrix A, stored as a packed triangular matrix.
AFACAFAC is COMPLEX*16 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 L*D*L' or U*D*U' factorization as computed by ZSPTRF.
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from ZSPTRF.
CC is COMPLEX*16 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 zspt02 (character UPLO, integer N, integer NRHS, complex*16, dimension( * ) A, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)
ZSPT02
Purpose:

ZSPT02 computes the residual in the solution of a complex 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 complex 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 COMPLEX*16 array, dimension (N*(N+1)/2) The original complex symmetric matrix A, stored as a packed triangular matrix.
XX is COMPLEX*16 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 COMPLEX*16 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 zspt03 (character UPLO, integer N, complex*16, dimension( * ) A, complex*16, dimension( * ) AINV, complex*16, dimension( ldw, * ) WORK, integer LDW, double precision, dimension( * ) RWORK, double precision RCOND, double precision RESID)
ZSPT03
Purpose:

ZSPT03 computes the residual for a complex 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 complex 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 COMPLEX*16 array, dimension (N*(N+1)/2) The original complex symmetric matrix A, stored as a packed triangular matrix.
AINVAINV is COMPLEX*16 array, dimension (N*(N+1)/2) The (symmetric) inverse of the matrix A, stored as a packed triangular matrix.
WORKWORK is COMPLEX*16 array, dimension (LDW,N)
LDWLDW is INTEGER The leading dimension of the array WORK. LDW >= 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 zsyt01 (character UPLO, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, complex*16, dimension( ldc, * ) C, integer LDC, double precision, dimension( * ) RWORK, double precision RESID)
ZSYT01
Purpose:

ZSYT01 reconstructs a complex 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, EPS is the machine epsilon, L' is the transpose of L, and U' is the transpose of U.
Parameters:

UPLO
UPLO is CHARACTER*1 Specifies whether the upper or lower triangular part of the complex 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 COMPLEX*16 array, dimension (LDA,N) The original complex symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC is COMPLEX*16 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 ZSYTRF.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,N).
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from ZSYTRF.
CC is COMPLEX*16 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 zsyt01_rook (character UPLO, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, complex*16, dimension( ldc, * ) C, integer LDC, double precision, dimension( * ) RWORK, double precision RESID)
ZSYT01_ROOK
Purpose:

ZSYT01_ROOK reconstructs a complex 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, EPS is the machine epsilon, L' is the transpose of L, and U' is the transpose of U.
Parameters:

UPLO
UPLO is CHARACTER*1 Specifies whether the upper or lower triangular part of the complex 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 COMPLEX*16 array, dimension (LDA,N) The original complex symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AFACAFAC is COMPLEX*16 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 ZSYTRF_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 ZSYTRF_ROOK.
CC is COMPLEX*16 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 zsyt02 (character UPLO, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) RWORK, double precision RESID)
ZSYT02
Purpose:

ZSYT02 computes the residual for a solution to a complex 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 COMPLEX*16 array, dimension (LDA,N) The original complex symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
XX is COMPLEX*16 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 COMPLEX*16 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 zsyt03 (character UPLO, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldainv, * ) AINV, integer LDAINV, complex*16, dimension( ldwork, * ) WORK, integer LDWORK, double precision, dimension( * ) RWORK, double precision RCOND, double precision RESID)
ZSYT03
Purpose:

ZSYT03 computes the residual for a complex 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 complex 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 COMPLEX*16 array, dimension (LDA,N) The original complex symmetric matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,N)
AINVAINV is COMPLEX*16 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 COMPLEX*16 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 RCOND = 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 ztbt02 (character UPLO, character TRANS, character DIAG, integer N, integer KD, integer NRHS, complex*16, dimension( ldab, * ) AB, integer LDAB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, double precision RESID)
ZTBT02
Purpose:

ZTBT02 computes the residual for the computed solution to a triangular system of linear equations A*x = b, A**T *x = b, or A**H *x = b when A is a triangular band matrix. Here A**T denotes the transpose of A, A**H denotes the conjugate 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, A**T, or A**H, 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**T *x = b (Transpose) = 'C': A**H *x = b (Conjugate 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 COMPLEX*16 array, dimension (LDA,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 >= max(1,KD+1).
XX is COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 array, dimension (N)
RWORKRWORK 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 ztbt03 (character UPLO, character TRANS, character DIAG, integer N, integer KD, integer NRHS, complex*16, dimension( ldab, * ) AB, integer LDAB, double precision SCALE, double precision, dimension( * ) CNORM, double precision TSCAL, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( * ) WORK, double precision RESID)
ZTBT03
Purpose:

ZTBT03 computes the residual for the solution to a scaled triangular system of equations A*x = s*b, A**T *x = s*b, or A**H *x = s*b when A is a triangular band matrix. Here A**T denotes the transpose of A, A**H denotes the conjugate 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, A**T, or A**H, 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**T *x = s*b (Transpose) = 'C': A**H *x = s*b (Conjugate 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 ztbt05 (character UPLO, character TRANS, character DIAG, integer N, integer KD, integer NRHS, complex*16, dimension( ldab, * ) AB, integer LDAB, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZTBT05
Purpose:

ZTBT05 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 ztbt06 (double precision RCOND, double precision RCONDC, character UPLO, character DIAG, integer N, integer KD, complex*16, dimension( ldab, * ) AB, integer LDAB, double precision, dimension( * ) RWORK, double precision RAT)
ZTBT06
Purpose:

ZTBT06 computes a test ratio comparing RCOND (the reciprocal condition number of a triangular matrix A) and RCONDC, the estimate computed by ZTBCON. 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 ZTBCON.
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 COMPLEX*16 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.
RWORKRWORK 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 ztpt01 (character UPLO, character DIAG, integer N, complex*16, dimension( * ) AP, complex*16, dimension( * ) AINVP, double precision RCOND, double precision, dimension( * ) RWORK, double precision RESID)
ZTPT01
Purpose:

ZTPT01 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 COMPLEX*16 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 COMPLEX*16 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)).
RWORKRWORK 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 ztpt02 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( * ) AP, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, double precision RESID)
ZTPT02
Purpose:

ZTPT02 computes the residual for the computed solution to a triangular system of linear equations A*x = b, A**T *x = b, or A**H *x = b, when the triangular matrix A is stored in packed format. Here A**T denotes the transpose of A, A**H denotes the conjugate 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 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, A**T, or A**H, 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**T *x = b (Transpose) = 'C': A**H *x = b (Conjugate 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 array, dimension (N)
RWORKRWORK 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 ztpt03 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( * ) AP, double precision SCALE, double precision, dimension( * ) CNORM, double precision TSCAL, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( * ) WORK, double precision RESID)
ZTPT03
Purpose:

ZTPT03 computes the residual for the solution to a scaled triangular system of equations A*x = s*b, A**T *x = s*b, or A**H *x = s*b, when the triangular matrix A is stored in packed format. Here A**T denotes the transpose of A, A**H denotes the conjugate 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, A**T, or A**H, 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**T *x = s*b (Transpose) = 'C': A**H *x = s*b (Conjugate 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 ztpt05 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( * ) AP, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZTPT05
Purpose:

ZTPT05 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 ztpt06 (double precision RCOND, double precision RCONDC, character UPLO, character DIAG, integer N, complex*16, dimension( * ) AP, double precision, dimension( * ) RWORK, double precision RAT)
ZTPT06
Purpose:

ZTPT06 computes a test ratio comparing RCOND (the reciprocal condition number of the triangular matrix A) and RCONDC, the estimate computed by ZTPCON. Information about the triangular matrix 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 ZTPCON.
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 COMPLEX*16 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.
RWORKRWORK 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 ztrt01 (character UPLO, character DIAG, integer N, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldainv, * ) AINV, integer LDAINV, double precision RCOND, double precision, dimension( * ) RWORK, double precision RESID)
ZTRT01
Purpose:

ZTRT01 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 COMPLEX*16 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 COMPLEX*16 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)).
RWORKRWORK 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 ztrt02 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( * ) WORK, double precision, dimension( * ) RWORK, double precision RESID)
ZTRT02
Purpose:

ZTRT02 computes the residual for the computed solution to a triangular system of linear equations A*x = b, A**T *x = b, or A**H *x = b. Here A is a triangular matrix, A**T is the transpose of A, A**H is the conjugate 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, A**T, or A**H, 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**T *x = b (Transpose) = 'C': A**H *x = b (Conjugate 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 array, dimension (N)
RWORKRWORK 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 ztrt03 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, double precision SCALE, double precision, dimension( * ) CNORM, double precision TSCAL, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( * ) WORK, double precision RESID)
ZTRT03
Purpose:

ZTRT03 computes the residual for the solution to a scaled triangular system of equations A*x = s*b, A**T *x = s*b, or A**H *x = s*b. Here A is a triangular matrix, A**T denotes the transpose of A, A**H denotes the conjugate 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, A**T, or A**H, 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**T *x = s*b (Transpose) = 'C': A**H *x = s*b (Conjugate 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 ztrt05 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex*16, dimension( lda, * ) A, integer LDA, complex*16, dimension( ldb, * ) B, integer LDB, complex*16, dimension( ldx, * ) X, integer LDX, complex*16, dimension( ldxact, * ) XACT, integer LDXACT, double precision, dimension( * ) FERR, double precision, dimension( * ) BERR, double precision, dimension( * ) RESLTS)
ZTRT05
Purpose:

ZTRT05 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 COMPLEX*16 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 ztrt06 (double precision RCOND, double precision RCONDC, character UPLO, character DIAG, integer N, complex*16, dimension( lda, * ) A, integer LDA, double precision, dimension( * ) RWORK, double precision RAT)
ZTRT06
Purpose:

ZTRT06 computes a test ratio comparing RCOND (the reciprocal condition number of a triangular matrix A) and RCONDC, the estimate computed by ZTRCON. 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 ZTRCON.
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 COMPLEX*16 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).
RWORKRWORK 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
Author
Generated automatically by Doxygen for LAPACK from the source code.