Functions
program cchkaa
CCHKAA
subroutine cchkeq (THRESH, NOUT)
CCHKEQ
subroutine cchkgb (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, A, LA, AFAC, LAFAC, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGB
subroutine cchkge (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGE
subroutine cchkgt (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGT
subroutine cchkhe (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE
subroutine cchkhe_rook (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE_ROOK
subroutine cchkhp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHP
subroutine cchklq (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
CCHKLQ
subroutine cchkpb (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPB
subroutine cchkpo (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPO
subroutine cchkpp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPP
subroutine cchkps (DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
CCHKPS
subroutine cchkpt (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
CCHKPT
subroutine cchkq3 (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, RWORK, IWORK, NOUT)
CCHKQ3
subroutine cchkql (DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
CCHKQL
subroutine cchkqr (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)
CCHKQR
subroutine cchkqrt (THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRT
subroutine cchkqrtp (THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRTP
program cchkrfp
CCHKRFP
subroutine cchkrq (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)
CCHKRQ
subroutine cchksp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSP
subroutine cchksy (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY
subroutine cchksy_rook (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY_ROOK
subroutine cchktb (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKTB
subroutine cchktp (DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, NOUT)
CCHKTP
subroutine cchktr (DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKTR
subroutine cchktz (DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, RWORK, NOUT)
CCHKTZ
subroutine cdrvgb (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
CDRVGB
subroutine cdrvge (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
CDRVGE
subroutine cdrvgt (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVGT
subroutine cdrvhe (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE
subroutine cdrvhe_rook (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_ROOK
subroutine cdrvhp (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHP
subroutine cdrvls (DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, WORK, RWORK, IWORK, NOUT)
CDRVLS
subroutine cdrvpb (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPB
subroutine cdrvpo (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPO
subroutine cdrvpp (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPP
subroutine cdrvpt (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
CDRVPT
subroutine cdrvrf1 (NOUT, NN, NVAL, THRESH, A, LDA, ARF, WORK)
CDRVRF1
subroutine cdrvrf2 (NOUT, NN, NVAL, A, LDA, ARF, AP, ASAV)
CDRVRF2
subroutine cdrvrf3 (NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2, S_WORK_CLANGE, C_WORK_CGEQRF, TAU)
CDRVRF3
subroutine cdrvrf4 (NOUT, NN, NVAL, THRESH, C1, C2, LDC, CRF, A, LDA, S_WORK_CLANGE)
CDRVRF4
subroutine cdrvrfp (NOUT, NN, NVAL, NNS, NSVAL, NNT, NTVAL, THRESH, A, ASAV, AFAC, AINV, B, BSAV, XACT, X, ARF, ARFINV, C_WORK_CLATMS, C_WORK_CPOT02, C_WORK_CPOT03, S_WORK_CLATMS, S_WORK_CLANHE, S_WORK_CPOT01, S_WORK_CPOT02, S_WORK_CPOT03)
CDRVRFP
subroutine cdrvsp (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSP
subroutine cdrvsy (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY
subroutine cdrvsy_rook (DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_ROOK
subroutine cebchvxx (THRESH, PATH)
CEBCHVXX
subroutine cerrge (PATH, NUNIT)
CERRGE
subroutine cerrgt (PATH, NUNIT)
CERRGT
subroutine cerrhe (PATH, NUNIT)
CERRHE
subroutine cerrlq (PATH, NUNIT)
CERRLQ
subroutine cerrls (PATH, NUNIT)
CERRLS
subroutine cerrpo (PATH, NUNIT)
CERRPO
subroutine cerrps (PATH, NUNIT)
CERRPS
subroutine cerrql (PATH, NUNIT)
CERRQL
subroutine cerrqp (PATH, NUNIT)
CERRQP
subroutine cerrqr (PATH, NUNIT)
CERRQR
subroutine cerrqrt (PATH, NUNIT)
CERRQRT
subroutine cerrqrtp (PATH, NUNIT)
CERRQRTP
subroutine cerrrfp (NUNIT)
CERRRFP
subroutine cerrrq (PATH, NUNIT)
CERRRQ
subroutine cerrsy (PATH, NUNIT)
CERRSY
subroutine cerrtr (PATH, NUNIT)
CERRTR
subroutine cerrtz (PATH, NUNIT)
CERRTZ
subroutine cerrvx (PATH, NUNIT)
CERRVX
subroutine cgbt01 (M, N, KL, KU, A, LDA, AFAC, LDAFAC, IPIV, WORK, RESID)
CGBT01
subroutine cgbt02 (TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, RESID)
CGBT02
subroutine cgbt05 (TRANS, N, KL, KU, NRHS, AB, LDAB, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
CGBT05
subroutine cgelqs (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
CGELQS
logical function cgennd (M, N, A, LDA)
CGENND
subroutine cgeqls (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
CGEQLS
subroutine cgeqrs (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
CGEQRS
subroutine cgerqs (M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
CGERQS
subroutine cget01 (M, N, A, LDA, AFAC, LDAFAC, IPIV, RWORK, RESID)
CGET01
subroutine cget02 (TRANS, M, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
CGET02
subroutine cget03 (N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK, RCOND, RESID)
CGET03
subroutine cget04 (N, NRHS, X, LDX, XACT, LDXACT, RCOND, RESID)
CGET04
subroutine cget07 (TRANS, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, CHKFERR, BERR, RESLTS)
CGET07
subroutine cgtt01 (N, DL, D, DU, DLF, DF, DUF, DU2, IPIV, WORK, LDWORK, RWORK, RESID)
CGTT01
subroutine cgtt02 (TRANS, N, NRHS, DL, D, DU, X, LDX, B, LDB, RESID)
CGTT02
subroutine cgtt05 (TRANS, N, NRHS, DL, D, DU, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
CGTT05
subroutine chet01 (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
CHET01
subroutine chet01_rook (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
CHET01_ROOK
subroutine chkxer (SRNAMT, INFOT, NOUT, LERR, OK)
CHKXER
subroutine chpt01 (UPLO, N, A, AFAC, IPIV, C, LDC, RWORK, RESID)
CHPT01
subroutine clahilb (N, NRHS, A, LDA, X, LDX, B, LDB, WORK, INFO, PATH)
CLAHILB
subroutine claipd (N, A, INDA, VINDA)
CLAIPD
subroutine claptm (UPLO, N, NRHS, ALPHA, D, E, X, LDX, BETA, B, LDB)
CLAPTM
subroutine clarhs (PATH, XTYPE, UPLO, TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, ISEED, INFO)
CLARHS
subroutine clatb4 (PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
CLATB4
subroutine clatb5 (PATH, IMAT, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
CLATB5
subroutine clatsp (UPLO, N, X, ISEED)
CLATSP
subroutine clatsy (UPLO, N, X, LDX, ISEED)
CLATSY
subroutine clattb (IMAT, UPLO, TRANS, DIAG, ISEED, N, KD, AB, LDAB, B, WORK, RWORK, INFO)
CLATTB
subroutine clattp (IMAT, UPLO, TRANS, DIAG, ISEED, N, AP, B, WORK, RWORK, INFO)
CLATTP
subroutine clattr (IMAT, UPLO, TRANS, DIAG, ISEED, N, A, LDA, B, WORK, RWORK, INFO)
CLATTR
subroutine clavhe (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CLAVHE
subroutine clavhe_rook (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CLAVHE_ROOK
subroutine clavhp (UPLO, TRANS, DIAG, N, NRHS, A, IPIV, B, LDB, INFO)
CLAVHP
subroutine clavsp (UPLO, TRANS, DIAG, N, NRHS, A, IPIV, B, LDB, INFO)
CLAVSP
subroutine clavsy (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CLAVSY
subroutine clavsy_rook (UPLO, TRANS, DIAG, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CLAVSY_ROOK
subroutine clqt01 (M, N, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CLQT01
subroutine clqt02 (M, N, K, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CLQT02
subroutine clqt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CLQT03
subroutine cpbt01 (UPLO, N, KD, A, LDA, AFAC, LDAFAC, RWORK, RESID)
CPBT01
subroutine cpbt02 (UPLO, N, KD, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
CPBT02
subroutine cpbt05 (UPLO, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
CPBT05
subroutine cpot01 (UPLO, N, A, LDA, AFAC, LDAFAC, RWORK, RESID)
CPOT01
subroutine cpot02 (UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
CPOT02
subroutine cpot03 (UPLO, N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK, RCOND, RESID)
CPOT03
subroutine cpot05 (UPLO, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
CPOT05
subroutine cppt01 (UPLO, N, A, AFAC, RWORK, RESID)
CPPT01
subroutine cppt02 (UPLO, N, NRHS, A, X, LDX, B, LDB, RWORK, RESID)
CPPT02
subroutine cppt03 (UPLO, N, A, AINV, WORK, LDWORK, RWORK, RCOND, RESID)
CPPT03
subroutine cppt05 (UPLO, N, NRHS, AP, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
CPPT05
subroutine cpst01 (UPLO, N, A, LDA, AFAC, LDAFAC, PERM, LDPERM, PIV, RWORK, RESID, RANK)
CPST01
subroutine cptt01 (N, D, E, DF, EF, WORK, RESID)
CPTT01
subroutine cptt02 (UPLO, N, NRHS, D, E, X, LDX, B, LDB, RESID)
CPTT02
subroutine cptt05 (N, NRHS, D, E, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
CPTT05
subroutine cqlt01 (M, N, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CQLT01
subroutine cqlt02 (M, N, K, A, AF, Q, L, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CQLT02
subroutine cqlt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CQLT03
real function cqpt01 (M, N, K, A, AF, LDA, TAU, JPVT, WORK, LWORK)
CQPT01
subroutine cqrt01 (M, N, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CQRT01
subroutine cqrt01p (M, N, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CQRT01P
subroutine cqrt02 (M, N, K, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CQRT02
subroutine cqrt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CQRT03
subroutine cqrt04 (M, N, NB, RESULT)
CQRT04
subroutine cqrt05 (M, N, L, NB, RESULT)
CQRT05
real function cqrt11 (M, K, A, LDA, TAU, WORK, LWORK)
CQRT11
real function cqrt12 (M, N, A, LDA, S, WORK, LWORK, RWORK)
CQRT12
subroutine cqrt13 (SCALE, M, N, A, LDA, NORMA, ISEED)
CQRT13
real function cqrt14 (TRANS, M, N, NRHS, A, LDA, X, LDX, WORK, LWORK)
CQRT14
subroutine cqrt15 (SCALE, RKSEL, M, N, NRHS, A, LDA, B, LDB, S, RANK, NORMA, NORMB, ISEED, WORK, LWORK)
CQRT15
subroutine cqrt16 (TRANS, M, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
CQRT16
real function cqrt17 (TRANS, IRESID, M, N, NRHS, A, LDA, X, LDX, B, LDB, C, WORK, LWORK)
CQRT17
subroutine crqt01 (M, N, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CRQT01
subroutine crqt02 (M, N, K, A, AF, Q, R, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CRQT02
subroutine crqt03 (M, N, K, AF, C, CC, Q, LDA, TAU, WORK, LWORK, RWORK, RESULT)
CRQT03
real function crzt01 (M, N, A, AF, LDA, TAU, WORK, LWORK)
CRZT01
real function crzt02 (M, N, AF, LDA, TAU, WORK, LWORK)
CRZT02
subroutine csbmv (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CSBMV
subroutine cspt01 (UPLO, N, A, AFAC, IPIV, C, LDC, RWORK, RESID)
CSPT01
subroutine cspt02 (UPLO, N, NRHS, A, X, LDX, B, LDB, RWORK, RESID)
CSPT02
subroutine cspt03 (UPLO, N, A, AINV, WORK, LDW, RWORK, RCOND, RESID)
CSPT03
subroutine csyt01 (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
CSYT01
subroutine csyt01_rook (UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
CSYT01_ROOK
subroutine csyt02 (UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
CSYT02
subroutine csyt03 (UPLO, N, A, LDA, AINV, LDAINV, WORK, LDWORK, RWORK, RCOND, RESID)
CSYT03
subroutine ctbt02 (UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, X, LDX, B, LDB, WORK, RWORK, RESID)
CTBT02
subroutine ctbt03 (UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, SCALE, CNORM, TSCAL, X, LDX, B, LDB, WORK, RESID)
CTBT03
subroutine ctbt05 (UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
CTBT05
subroutine ctbt06 (RCOND, RCONDC, UPLO, DIAG, N, KD, AB, LDAB, RWORK, RAT)
CTBT06
subroutine ctpt01 (UPLO, DIAG, N, AP, AINVP, RCOND, RWORK, RESID)
CTPT01
subroutine ctpt02 (UPLO, TRANS, DIAG, N, NRHS, AP, X, LDX, B, LDB, WORK, RWORK, RESID)
CTPT02
subroutine ctpt03 (UPLO, TRANS, DIAG, N, NRHS, AP, SCALE, CNORM, TSCAL, X, LDX, B, LDB, WORK, RESID)
CTPT03
subroutine ctpt05 (UPLO, TRANS, DIAG, N, NRHS, AP, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
CTPT05
subroutine ctpt06 (RCOND, RCONDC, UPLO, DIAG, N, AP, RWORK, RAT)
CTPT06
subroutine ctrt01 (UPLO, DIAG, N, A, LDA, AINV, LDAINV, RCOND, RWORK, RESID)
CTRT01
subroutine ctrt02 (UPLO, TRANS, DIAG, N, NRHS, A, LDA, X, LDX, B, LDB, WORK, RWORK, RESID)
CTRT02
subroutine ctrt03 (UPLO, TRANS, DIAG, N, NRHS, A, LDA, SCALE, CNORM, TSCAL, X, LDX, B, LDB, WORK, RESID)
CTRT03
subroutine ctrt05 (UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, X, LDX, XACT, LDXACT, FERR, BERR, RESLTS)
CTRT05
subroutine ctrt06 (RCOND, RCONDC, UPLO, DIAG, N, A, LDA, RWORK, RAT)
CTRT06
Detailed Description
This is the group of complex LAPACK TESTING LIN routines.
Function Documentation
program cchkaa ()
CCHKAA
Purpose:

CCHKAA is the main test program for the COMPLEX 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 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 CGE 11 List types on next line if 0 < NTYPES < 11 CGB 8 List types on next line if 0 < NTYPES < 8 CGT 12 List types on next line if 0 < NTYPES < 12 CPO 9 List types on next line if 0 < NTYPES < 9 CPO 9 List types on next line if 0 < NTYPES < 9 CPP 9 List types on next line if 0 < NTYPES < 9 CPB 8 List types on next line if 0 < NTYPES < 8 CPT 12 List types on next line if 0 < NTYPES < 12 CHE 10 List types on next line if 0 < NTYPES < 10 CHR 10 List types on next line if 0 < NTYPES < 10 CHP 10 List types on next line if 0 < NTYPES < 10 CSY 11 List types on next line if 0 < NTYPES < 11 CSR 11 List types on next line if 0 < NTYPES < 11 CSP 11 List types on next line if 0 < NTYPES < 11 CTR 18 List types on next line if 0 < NTYPES < 18 CTP 18 List types on next line if 0 < NTYPES < 18 CTB 17 List types on next line if 0 < NTYPES < 17 CQR 8 List types on next line if 0 < NTYPES < 8 CRQ 8 List types on next line if 0 < NTYPES < 8 CLQ 8 List types on next line if 0 < NTYPES < 8 CQL 8 List types on next line if 0 < NTYPES < 8 CQP 6 List types on next line if 0 < NTYPES < 6 CTZ 3 List types on next line if 0 < NTYPES < 3 CLS 6 List types on next line if 0 < NTYPES < 6 CEQ CQT CQX
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
subroutine cchkeq (real THRESH, integer NOUT)
CCHKEQ
Purpose:

CCHKEQ tests CGEEQU, CGBEQU, CPOEQU, CPPEQU and CPBEQU
Parameters:

THRESH
THRESH is REAL 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 cchkgb (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, complex, dimension( * ) A, integer LA, complex, dimension( * ) AFAC, integer LAFAC, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKGB
Purpose:

CCHKGB tests CGBTRF, TRS, RFS, and CON
Parameters:

DOTYPE
DOTYPE is LOGICAL array, dimension (NTYPES) The matrix types to be used for testing. Matrices of type j (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) = .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.
NMNM is INTEGER The number of values of M contained in the vector MVAL.
MVALMVAL is INTEGER array, dimension (NM) The values of the matrix row dimension M.
NNNN is INTEGER The number of values of N contained in the vector NVAL.
NVALNVAL is INTEGER array, dimension (NN) The values of the matrix column dimension N.
NNBNNB is INTEGER The number of values of NB contained in the vector NBVAL.
NBVALNBVAL is INTEGER array, dimension (NNB) The values of the blocksize NB.
NNSNNS is INTEGER The number of values of NRHS contained in the vector NSVAL.
NSVALNSVAL is INTEGER array, dimension (NNS) The values of the number of right hand sides NRHS.
THRESHTHRESH is REAL 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 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 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 array, dimension (NMAX*NSMAX)
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX,NMAX))
RWORKRWORK is REAL 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 cchkge (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKGE
Purpose:

CCHKGE tests CGETRF, 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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchkgt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, complex, dimension( * ) A, complex, dimension( * ) AF, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKGT
Purpose:

CCHKGT tests CGTTRF, 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 REAL 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 array, dimension (NMAX*4)
AFAF is COMPLEX array, dimension (NMAX*4)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchkhe (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKHE
Purpose:

CCHKHE tests CHETRF, 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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchkhe_rook (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKHE_ROOK
Purpose:

CCHKHE_ROOK tests CHETRF_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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchkhp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKHP
Purpose:

CCHKHP tests CHPTRF, 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 REAL 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 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NSMAX))
RWORKRWORK is REAL 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 cchklq (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AF, complex, dimension( * ) AQ, complex, dimension( * ) AL, complex, dimension( * ) AC, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) TAU, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKLQ
Purpose:

CCHKLQ tests CGELQF, CUNGLQ 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 REAL 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 array, dimension (NMAX*NMAX)
AFAF is COMPLEX array, dimension (NMAX*NMAX)
AQAQ is COMPLEX array, dimension (NMAX*NMAX)
ALAL is COMPLEX array, dimension (NMAX*NMAX)
ACAC is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
TAUTAU is COMPLEX array, dimension (NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*NMAX)
RWORKRWORK is REAL 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 cchkpb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKPB
Purpose:

CCHKPB tests CPBTRF, 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 REAL The threshold value for the test ratios. A result is included in the output file if RESULT >= THRESH. To have every test ratio printed, use THRESH = 0.
TSTERRTSTERR is LOGICAL Flag that indicates whether error exits are to be tested.
NMAXNMAX is INTEGER The maximum value permitted for N, used in dimensioning the work arrays.
AA is REAL array, dimension (NMAX*NMAX)
AFACAFAC is REAL array, dimension (NMAX*NMAX)
AINVAINV is REAL array, dimension (NMAX*NMAX)
BB is REAL array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is REAL array, dimension (NMAX*NSMAX)
XACTXACT is REAL array, dimension (NMAX*NSMAX)
WORKWORK is REAL array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchkpo (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKPO
Purpose:

CCHKPO tests CPOTRF, 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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchkpp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKPP
Purpose:

CCHKPP tests CPPTRF, 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 REAL 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 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchkps (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NRANK, integer, dimension( * ) RANKVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) PERM, integer, dimension( * ) PIV, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKPS
Purpose:

CCHKPS tests CPSTRF.
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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
PERMPERM is COMPLEX array, dimension (NMAX*NMAX)
PIVPIV is INTEGER array, dimension (NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*3)
RWORKRWORK is REAL 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 cchkpt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, complex, dimension( * ) A, real, dimension( * ) D, complex, dimension( * ) E, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKPT
Purpose:

CCHKPT tests CPTTRF, 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 REAL 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 array, dimension (NMAX*2)
DD is REAL array, dimension (NMAX*2)
EE is COMPLEX array, dimension (NMAX*2)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchkq3 (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, real THRESH, complex, dimension( * ) A, complex, dimension( * ) COPYA, real, dimension( * ) S, complex, dimension( * ) TAU, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKQ3
Purpose:

CCHKQ3 tests CGEQP3.
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 REAL 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 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 array, dimension (MMAX*NMAX)
SS is REAL array, dimension (min(MMAX,NMAX))
TAUTAU is COMPLEX array, dimension (MMAX)
WORKWORK is COMPLEX array, dimension (max(M*max(M,N) + 4*min(M,N) + max(M,N)))
RWORKRWORK is REAL 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 cchkql (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AF, complex, dimension( * ) AQ, complex, dimension( * ) AL, complex, dimension( * ) AC, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) TAU, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKQL
Purpose:

CCHKQL tests CGEQLF, CUNGQL 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 REAL 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 array, dimension (NMAX*NMAX)
AFAF is COMPLEX array, dimension (NMAX*NMAX)
AQAQ is COMPLEX array, dimension (NMAX*NMAX)
ALAL is COMPLEX array, dimension (NMAX*NMAX)
ACAC is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
TAUTAU is COMPLEX array, dimension (NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*NMAX)
RWORKRWORK is REAL 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 cchkqr (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AF, complex, dimension( * ) AQ, complex, dimension( * ) AR, complex, dimension( * ) AC, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) TAU, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKQR
Purpose:

CCHKQR tests CGEQRF, CUNGQR 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 REAL 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 array, dimension (NMAX*NMAX)
AFAF is COMPLEX array, dimension (NMAX*NMAX)
AQAQ is COMPLEX array, dimension (NMAX*NMAX)
ARAR is COMPLEX array, dimension (NMAX*NMAX)
ACAC is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
TAUTAU is COMPLEX array, dimension (NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*NMAX)
RWORKRWORK is REAL 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 cchkqrt (real THRESH, logical TSTERR, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NOUT)
CCHKQRT
Purpose:

CCHKQRT tests CGEQRT and CGEMQRT.
Parameters:

THRESH
THRESH is REAL 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 cchkqrtp (real THRESH, logical TSTERR, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NOUT)
CCHKQRTP
Purpose:

CCHKQRTP tests CTPQRT and CTPMQRT.
Parameters:

THRESH
THRESH is REAL 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 cchkrfp ()
CCHKRFP
Purpose:

CCHKRFP is the main test program for the COMPLEX 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 cchkrq (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer, dimension( * ) NXVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AF, complex, dimension( * ) AQ, complex, dimension( * ) AR, complex, dimension( * ) AC, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) TAU, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKRQ
Purpose:

CCHKRQ tests CGERQF, CUNGRQ 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 REAL 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 array, dimension (NMAX*NMAX)
AFAF is COMPLEX array, dimension (NMAX*NMAX)
AQAQ is COMPLEX array, dimension (NMAX*NMAX)
ARAR is COMPLEX array, dimension (NMAX*NMAX)
ACAC is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
TAUTAU is COMPLEX array, dimension (NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*NMAX)
RWORKRWORK is REAL 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 cchksp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKSP
Purpose:

CCHKSP tests CSPTRF, 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 REAL 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 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NSMAX))
RWORKRWORK is REAL 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 cchksy (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKSY
Purpose:

CCHKSY tests CSYTRF, 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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NSMAX))
RWORKRWORK is REAL 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 cchksy_rook (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CCHKSY_ROOK
Purpose:

CCHKSY_ROOK tests CSYTRF_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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchktb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) AB, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKTB
Purpose:

CCHKTB tests CTBTRS, RFS, and CON, and CLATBS.
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 REAL 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 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchktp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) AP, complex, dimension( * ) AINVP, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKTP
Purpose:

CCHKTP tests CTPTRI, TRS, RFS, and CON, and CLATPS
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 REAL 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 array, dimension (NMAX*(NMAX+1)/2)
AINVPAINVP is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchktr (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NNB, integer, dimension( * ) NBVAL, integer NNS, integer, dimension( * ) NSVAL, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKTR
Purpose:

CCHKTR tests CTRTRI, TRS, RFS, and CON, and CLATRS
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 REAL 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 array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NSMAX) where NSMAX is the largest entry in NSVAL.
XX is COMPLEX array, dimension (NMAX*NSMAX)
XACTXACT is COMPLEX array, dimension (NMAX*NSMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NSMAX))
RWORKRWORK is REAL 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 cchktz (logical, dimension( * ) DOTYPE, integer NM, integer, dimension( * ) MVAL, integer NN, integer, dimension( * ) NVAL, real THRESH, logical TSTERR, complex, dimension( * ) A, complex, dimension( * ) COPYA, real, dimension( * ) S, complex, dimension( * ) TAU, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CCHKTZ
Purpose:

CCHKTZ tests CTZRZF.
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 REAL 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 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 array, dimension (MMAX*NMAX)
SS is REAL array, dimension (min(MMAX,NMAX))
TAUTAU is COMPLEX array, dimension (MMAX)
WORKWORK is COMPLEX array, dimension (MMAX*NMAX + 4*NMAX + MMAX)
RWORKRWORK is REAL 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 cdrvgb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, complex, dimension( * ) A, integer LA, complex, dimension( * ) AFB, integer LAFB, complex, dimension( * ) ASAV, complex, dimension( * ) B, complex, dimension( * ) BSAV, complex, dimension( * ) X, complex, dimension( * ) XACT, real, dimension( * ) S, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CDRVGB CDRVGBX
Purpose:

CDRVGB tests the driver routines CGBSV 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 REAL 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 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 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 array, dimension (LA)
BB is COMPLEX array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
SS is REAL array, dimension (2*NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS,NMAX))
RWORKRWORK is REAL 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:

CDRVGB tests the driver routines CGBSV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise cdrvgb.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 REAL 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 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 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 array, dimension (LA)
BB is COMPLEX array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
SS is REAL array, dimension (2*NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS,NMAX))
RWORKRWORK is REAL 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 cdrvge (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) ASAV, complex, dimension( * ) B, complex, dimension( * ) BSAV, complex, dimension( * ) X, complex, dimension( * ) XACT, real, dimension( * ) S, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CDRVGE CDRVGEX
Purpose:

CDRVGE tests the driver routines CGESV 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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
SS is REAL array, dimension (2*NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is REAL 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:

CDRVGE tests the driver routines CGESV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise cdrvge.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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
SS is REAL array, dimension (2*NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is REAL 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 cdrvgt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, complex, dimension( * ) A, complex, dimension( * ) AF, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CDRVGT
Purpose:

CDRVGT tests CGTSV 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 REAL 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 array, dimension (NMAX*4)
AFAF is COMPLEX array, dimension (NMAX*4)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is REAL array, dimension (NMAX+2*NRHS)
IWORKIWORK is INTEGER array, dimension (2*NMAX)
NOUTNOUT is INTEGER The unit number for output.
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine cdrvhe (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CDRVHE CDRVHEX
Purpose:

CDRVHE tests the driver routines CHESV 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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is REAL 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:

CDRVHE tests the driver routines CHESV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise cdrvhe.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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is REAL 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 cdrvhe_rook (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CDRVHE_ROOK
Purpose:

CDRVHE_ROOK tests the driver routines CHESV_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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is REAL 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 cdrvhp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CDRVHP
Purpose:

CDRVHP tests the driver routines CHPSV 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 REAL 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 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is REAL 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 cdrvls (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, real THRESH, logical TSTERR, complex, dimension( * ) A, complex, dimension( * ) COPYA, complex, dimension( * ) B, complex, dimension( * ) COPYB, complex, dimension( * ) C, real, dimension( * ) S, real, dimension( * ) COPYS, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CDRVLS
Purpose:

CDRVLS tests the least squares driver routines CGELS, CGELSS, CGELSY 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 REAL 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 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 array, dimension (MMAX*NMAX)
BB is COMPLEX 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 array, dimension (MMAX*NSMAX)
CC is COMPLEX array, dimension (MMAX*NSMAX)
SS is REAL array, dimension (min(MMAX,NMAX))
COPYSCOPYS is REAL array, dimension (min(MMAX,NMAX))
WORKWORK is COMPLEX array, dimension (MMAX*NMAX + 4*NMAX + MMAX).
RWORKRWORK is REAL 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 cdrvpb (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) ASAV, complex, dimension( * ) B, complex, dimension( * ) BSAV, complex, dimension( * ) X, complex, dimension( * ) XACT, real, dimension( * ) S, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CDRVPB
Purpose:

CDRVPB tests the driver routines CPBSV 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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
SS is REAL array, dimension (NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is REAL 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 cdrvpo (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) ASAV, complex, dimension( * ) B, complex, dimension( * ) BSAV, complex, dimension( * ) X, complex, dimension( * ) XACT, real, dimension( * ) S, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CDRVPO CDRVPOX
Purpose:

CDRVPO tests the driver routines CPOSV 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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
SS is REAL array, dimension (NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is REAL 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:

CDRVPO tests the driver routines CPOSV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise cdrvpo.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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
SS is REAL array, dimension (NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is REAL 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 cdrvpp (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) ASAV, complex, dimension( * ) B, complex, dimension( * ) BSAV, complex, dimension( * ) X, complex, dimension( * ) XACT, real, dimension( * ) S, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CDRVPP
Purpose:

CDRVPP tests the driver routines CPPSV 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 REAL 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 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
ASAVASAV is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX array, dimension (NMAX*NRHS)
BSAVBSAV is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
SS is REAL array, dimension (NMAX)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is REAL 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 cdrvpt (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, complex, dimension( * ) A, real, dimension( * ) D, complex, dimension( * ) E, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer NOUT)
CDRVPT
Purpose:

CDRVPT tests CPTSV 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 REAL 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 array, dimension (NMAX*2)
DD is REAL array, dimension (NMAX*2)
EE is COMPLEX array, dimension (NMAX*2)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX array, dimension (NMAX*max(3,NRHS))
RWORKRWORK is REAL 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 cdrvrf1 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, real THRESH, complex, dimension( lda, * ) A, integer LDA, complex, dimension( * ) ARF, real, dimension( * ) WORK)
CDRVRF1
Purpose:

CDRVRF1 tests the LAPACK RFP routines: CLANHF.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 REAL 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 array, dimension (LDA,NMAX)
LDALDA is INTEGER The leading dimension of the array A. LDA >= max(1,NMAX).
ARFARF is COMPLEX array, dimension ((NMAX*(NMAX+1))/2).
WORKWORK is COMPLEX array, dimension ( NMAX )
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine cdrvrf2 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, complex, dimension( lda, * ) A, integer LDA, complex, dimension( * ) ARF, complex, dimension(*) AP, complex, dimension( lda, * ) ASAV)
CDRVRF2
Purpose:

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

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine cdrvrf3 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, real THRESH, complex, dimension( lda, * ) A, integer LDA, complex, dimension( * ) ARF, complex, dimension( lda, * ) B1, complex, dimension( lda, * ) B2, real, dimension( * ) S_WORK_CLANGE, complex, dimension( * ) C_WORK_CGEQRF, complex, dimension( * ) TAU)
CDRVRF3
Purpose:

CDRVRF3 tests the LAPACK RFP routines: CTFSM
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 array, dimension ((NMAX*(NMAX+1))/2).
B1B1 is COMPLEX array, dimension (LDA,NMAX)
B2B2 is COMPLEX array, dimension (LDA,NMAX)
S_WORK_CLANGES_WORK_CLANGE is REAL array, dimension (NMAX)
C_WORK_CGEQRFC_WORK_CGEQRF is COMPLEX array, dimension (NMAX)
TAUTAU is COMPLEX array, dimension (NMAX)
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine cdrvrf4 (integer NOUT, integer NN, integer, dimension( nn ) NVAL, real THRESH, complex, dimension( ldc, * ) C1, complex, dimension( ldc, *) C2, integer LDC, complex, dimension( * ) CRF, complex, dimension( lda, * ) A, integer LDA, real, dimension( * ) S_WORK_CLANGE)
CDRVRF4
Purpose:

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

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine cdrvrfp (integer NOUT, integer NN, integer, dimension( nn ) NVAL, integer NNS, integer, dimension( nns ) NSVAL, integer NNT, integer, dimension( nnt ) NTVAL, real THRESH, complex, dimension( * ) A, complex, dimension( * ) ASAV, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) BSAV, complex, dimension( * ) XACT, complex, dimension( * ) X, complex, dimension( * ) ARF, complex, dimension( * ) ARFINV, complex, dimension( * ) C_WORK_CLATMS, complex, dimension( * ) C_WORK_CPOT02, complex, dimension( * ) C_WORK_CPOT03, real, dimension( * ) S_WORK_CLATMS, real, dimension( * ) S_WORK_CLANHE, real, dimension( * ) S_WORK_CPOT01, real, dimension( * ) S_WORK_CPOT02, real, dimension( * ) S_WORK_CPOT03)
CDRVRFP
Purpose:

CDRVRFP tests the LAPACK RFP routines: CPFTRF, CPFTRS, and CPFTRI. This testing routine follow the same tests as CDRVPO (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 CTRTTF and CTFTTR. 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 CPFTRF, no test ratios are computed) A solution XACT of size NbyNRHS is created and the associated right hand side B as well. Then CPFTRF 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 REAL 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 array, dimension (NMAX*NMAX)
ASAVASAV is COMPLEX array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*MAXRHS)
BSAVBSAV is COMPLEX array, dimension (NMAX*MAXRHS)
XACTXACT is COMPLEX array, dimension (NMAX*MAXRHS)
XX is COMPLEX array, dimension (NMAX*MAXRHS)
ARFARF is COMPLEX array, dimension ((NMAX*(NMAX+1))/2)
ARFINVARFINV is COMPLEX array, dimension ((NMAX*(NMAX+1))/2)
C_WORK_CLATMSC_WORK_CLATMS is COMPLEX array, dimension ( 3*NMAX )
C_WORK_CPOT02C_WORK_CPOT02 is COMPLEX array, dimension ( NMAX*MAXRHS )
C_WORK_CPOT03C_WORK_CPOT03 is COMPLEX array, dimension ( NMAX*NMAX )
S_WORK_CLATMSS_WORK_CLATMS is REAL array, dimension ( NMAX )
S_WORK_CLANHES_WORK_CLANHE is REAL array, dimension ( NMAX )
S_WORK_CPOT01S_WORK_CPOT01 is REAL array, dimension ( NMAX )
S_WORK_CPOT02S_WORK_CPOT02 is REAL array, dimension ( NMAX )
S_WORK_CPOT03S_WORK_CPOT03 is REAL array, dimension ( NMAX )
Author:

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

CDRVSP tests the driver routines CSPSV 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 REAL 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 array, dimension (NMAX*(NMAX+1)/2)
AFACAFAC is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
AINVAINV is COMPLEX array, dimension (NMAX*(NMAX+1)/2)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is REAL 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 cdrvsy (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CDRVSY CDRVSYX
Purpose:

CDRVSY tests the driver routines CSYSV 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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is REAL 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:

CDRVSY tests the driver routines CSYSV, SVX, and SVXX. Note that this file is used only when the XBLAS are available, otherwise cdrvsy.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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORKWORK is COMPLEX array, dimension (NMAX*max(2,NRHS))
RWORKRWORK is REAL 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 cdrvsy_rook (logical, dimension( * ) DOTYPE, integer NN, integer, dimension( * ) NVAL, integer NRHS, real THRESH, logical TSTERR, integer NMAX, complex, dimension( * ) A, complex, dimension( * ) AFAC, complex, dimension( * ) AINV, complex, dimension( * ) B, complex, dimension( * ) X, complex, dimension( * ) XACT, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer, dimension( * ) IWORK, integer NOUT)
CDRVSY_ROOK
Purpose:

CDRVSY_ROOK tests the driver routines CSYSV_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 REAL 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 array, dimension (NMAX*NMAX)
AFACAFAC is COMPLEX array, dimension (NMAX*NMAX)
AINVAINV is COMPLEX array, dimension (NMAX*NMAX)
BB is COMPLEX array, dimension (NMAX*NRHS)
XX is COMPLEX array, dimension (NMAX*NRHS)
XACTXACT is COMPLEX array, dimension (NMAX*NRHS)
WORK
RWORKRWORK is REAL 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 cebchvxx (real THRESH, character*3 PATH)
CEBCHVXX Purpose:
CEBCHVXX will run CGESVXX on a series of Hilbert matrices and then compare the error bounds returned by CGESVXX 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 cerrge (character*3 PATH, integer NUNIT)
CERRGE CERRGEX
Purpose:

CERRGE tests the error exits for the COMPLEX 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:

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

CERRGT tests the error exits for the COMPLEX 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 cerrhe (character*3 PATH, integer NUNIT)
CERRHE CERRHEX
Purpose:

CERRHE tests the error exits for the COMPLEX 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:

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

CERRLQ tests the error exits for the COMPLEX 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 cerrls (character*3 PATH, integer NUNIT)
CERRLS
Purpose:

CERRLS tests the error exits for the COMPLEX least squares driver routines (CGELS, 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 cerrpo (character*3 PATH, integer NUNIT)
CERRPO CERRPOX
Purpose:

CERRPO tests the error exits for the COMPLEX 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:

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

CERRPS tests the error exits for the COMPLEX routines for CPSTRF..
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 cerrql (character*3 PATH, integer NUNIT)
CERRQL
Purpose:

CERRQL tests the error exits for the COMPLEX 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 cerrqp (character*3 PATH, integer NUNIT)
CERRQP
Purpose:

CERRQP tests the error exits for CGEQP3.
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 cerrqr (character*3 PATH, integer NUNIT)
CERRQR
Purpose:

CERRQR tests the error exits for the COMPLEX 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 cerrqrt (character*3 PATH, integer NUNIT)
CERRQRT
Purpose:

CERRQRT tests the error exits for the COMPLEX 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 cerrqrtp (character*3 PATH, integer NUNIT)
CERRQRTP
Purpose:

CERRQRTP tests the error exits for the REAL routines that use the QRT decomposition of a triangularpentagonal matrix.
Parameters:

PATH
PATH is CHARACTER*3 The LAPACK path name for the routines to be tested.
NUNITNUNIT is INTEGER The unit number for output.
Author:

Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
 November 2011
subroutine cerrrfp (integer NUNIT)
CERRRFP
Purpose:

CERRRFP tests the error exits for the COMPLEX driver routines for solving linear systems of equations. CDRVRFP tests the COMPLEX LAPACK RFP routines: CTFSM, CTFTRI, CHFRK, CTFTTP, CTFTTR, CPFTRF, CPFTRS, CTPTTF, CTPTTR, CTRTTF, and CTRTTP
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 cerrrq (character*3 PATH, integer NUNIT)
CERRRQ
Purpose:

CERRRQ tests the error exits for the COMPLEX 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 cerrsy (character*3 PATH, integer NUNIT)
CERRSY CERRSYX
Purpose:

CERRSY tests the error exits for the COMPLEX 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:

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

CERRTR tests the error exits for the COMPLEX 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 cerrtz (character*3 PATH, integer NUNIT)
CERRTZ
Purpose:

CERRTZ tests the error exits for CTZRZF.
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 cerrvx (character*3 PATH, integer NUNIT)
CERRVX CERRVXX
Purpose:

CERRVX tests the error exits for the COMPLEX 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:

CERRVX tests the error exits for the COMPLEX 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 cgbt01 (integer M, integer N, integer KL, integer KU, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, complex, dimension( * ) WORK, real RESID)
CGBT01
Purpose:

CGBT01 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 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 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 CGBTRF. 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 CGBTRF 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 CGBTRF.
WORKWORK is COMPLEX array, dimension (2*KL+KU+1)
RESIDRESID is REAL 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 cgbt02 (character TRANS, integer M, integer N, integer KL, integer KU, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real RESID)
CGBT02
Purpose:

CGBT02 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 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 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 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 REAL 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 cgbt05 (character TRANS, integer N, integer KL, integer KU, integer NRHS, complex, dimension( ldab, * ) AB, integer LDAB, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CGBT05
Purpose:

CGBT05 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 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 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 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 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 REAL 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 REAL 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 REAL 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 cgelqs (integer M, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( * ) TAU, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( lwork ) WORK, integer LWORK, integer INFO)
CGELQS
Purpose:

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

CGENND 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 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 cgeqls (integer M, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( * ) TAU, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( lwork ) WORK, integer LWORK, integer INFO)
CGEQLS
Purpose:

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

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

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

CGET01 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 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 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 CGETRF. 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 CGETRF.
RWORKRWORK is REAL array, dimension (M)
RESIDRESID is REAL 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 cget02 (character TRANS, integer M, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real, dimension( * ) RWORK, real RESID)
CGET02
Purpose:

CGET02 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 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 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 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 REAL array, dimension (M)
RESIDRESID is REAL 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 cget03 (integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldainv, * ) AINV, integer LDAINV, complex, dimension( ldwork, * ) WORK, integer LDWORK, real, dimension( * ) RWORK, real RCOND, real RESID)
CGET03
Purpose:

CGET03 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 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 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 array, dimension (LDWORK,N)
LDWORKLDWORK is INTEGER The leading dimension of the array WORK. LDWORK >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RCONDRCOND is REAL The reciprocal of the condition number of A, computed as ( 1/norm(A) ) / norm(AINV).
RESIDRESID is REAL 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 cget04 (integer N, integer NRHS, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real RCOND, real RESID)
CGET04
Purpose:

CGET04 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 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 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 REAL The reciprocal of the condition number of the coefficient matrix in the system of equations.
RESIDRESID is REAL 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 cget07 (character TRANS, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, logical CHKFERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CGET07
Purpose:

CGET07 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 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 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 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 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 REAL 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 REAL 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 REAL 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 cgtt01 (integer N, complex, dimension( * ) DL, complex, dimension( * ) D, complex, dimension( * ) DU, complex, dimension( * ) DLF, complex, dimension( * ) DF, complex, dimension( * ) DUF, complex, dimension( * ) DU2, integer, dimension( * ) IPIV, complex, dimension( ldwork, * ) WORK, integer LDWORK, real, dimension( * ) RWORK, real RESID)
CGTT01
Purpose:

CGTT01 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 array, dimension (N1) The (n1) subdiagonal elements of A.
DD is COMPLEX array, dimension (N) The diagonal elements of A.
DUDU is COMPLEX array, dimension (N1) The (n1) superdiagonal elements of A.
DLFDLF is COMPLEX array, dimension (N1) The (n1) multipliers that define the matrix L from the LU factorization of A.
DFDF is COMPLEX array, dimension (N) The n diagonal elements of the upper triangular matrix U from the LU factorization of A.
DUFDUF is COMPLEX array, dimension (N1) The (n1) elements of the first superdiagonal of U.
DU2DU2 is COMPLEX 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 array, dimension (LDWORK,N)
LDWORKLDWORK is INTEGER The leading dimension of the array WORK. LDWORK >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 cgtt02 (character TRANS, integer N, integer NRHS, complex, dimension( * ) DL, complex, dimension( * ) D, complex, dimension( * ) DU, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real RESID)
CGTT02
Purpose:

CGTT02 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 array, dimension (N1) The (n1) subdiagonal elements of A.
DD is COMPLEX array, dimension (N) The diagonal elements of A.
DUDU is COMPLEX array, dimension (N1) The (n1) superdiagonal elements of A.
XX is COMPLEX 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 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 REAL 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 cgtt05 (character TRANS, integer N, integer NRHS, complex, dimension( * ) DL, complex, dimension( * ) D, complex, dimension( * ) DU, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CGTT05
Purpose:

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

CHET01 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 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 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 CHETRF.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,N).
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from CHETRF.
CC is COMPLEX array, dimension (LDC,N)
LDCLDC is INTEGER The leading dimension of the array C. LDC >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 chet01_rook (character UPLO, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, complex, dimension( ldc, * ) C, integer LDC, real, dimension( * ) RWORK, real RESID)
CHET01_ROOK
Purpose:

CHET01_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 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 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 array, dimension (LDC,N)
LDCLDC is INTEGER The leading dimension of the array C. LDC >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 chkxer (character*(*) SRNAMT, integer INFOT, integer NOUT, logical LERR, logical OK)
CHKXER
Purpose:
Author:

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

CHPT01 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 array, dimension (N*(N+1)/2) The original Hermitian matrix A, stored as a packed triangular matrix.
AFACAFAC is COMPLEX 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 CHPTRF.
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from CHPTRF.
CC is COMPLEX array, dimension (LDC,N)
LDCLDC is INTEGER The leading dimension of the array C. LDC >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 clahilb (integer N, integer NRHS, complex, dimension(lda,n) A, integer LDA, complex, dimension(ldx, nrhs) X, integer LDX, complex, dimension(ldb, nrhs) B, integer LDB, real, dimension(n) WORK, integer INFO, character*3 PATH)
CLAHILB
Purpose:

CLAHILB 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 claipd (integer N, complex, dimension( * ) A, integer INDA, integer VINDA)
CLAIPD
Purpose:

CLAIPD 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 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 claptm (character UPLO, integer N, integer NRHS, real ALPHA, real, dimension( * ) D, complex, dimension( * ) E, complex, dimension( ldx, * ) X, integer LDX, real BETA, complex, dimension( ldb, * ) B, integer LDB)
CLAPTM
Purpose:

CLAPTM 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 REAL The scalar alpha. ALPHA must be 1. or 1.; otherwise, it is assumed to be 0.
DD is REAL array, dimension (N) The n diagonal elements of the tridiagonal matrix A.
EE is COMPLEX array, dimension (N1) The (n1) subdiagonal or superdiagonal elements of A.
XX is COMPLEX 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 REAL The scalar beta. BETA must be 0., 1., or 1.; otherwise, it is assumed to be 1.
BB is COMPLEX 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 clarhs (character*3 PATH, character XTYPE, character UPLO, character TRANS, integer M, integer N, integer KL, integer KU, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, integer, dimension( 4 ) ISEED, integer INFO)
CLARHS
Purpose:

CLARHS 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 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 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 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 CLATMS). 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 clatb4 (character*3 PATH, integer IMAT, integer M, integer N, character TYPE, integer KL, integer KU, real ANORM, integer MODE, real CNDNUM, character DIST)
CLATB4
Purpose:

CLATB4 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 REAL 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 REAL 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 clatb5 (character*3 PATH, integer IMAT, integer N, character TYPE, integer KL, integer KU, real ANORM, integer MODE, real CNDNUM, character DIST)
CLATB5
Purpose:

CLATB5 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 REAL 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 REAL 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 clatsp (character UPLO, integer N, complex, dimension( * ) X, integer, dimension( * ) ISEED)
CLATSP
Purpose:

CLATSP 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 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 clatsy (character UPLO, integer N, complex, dimension( ldx, * ) X, integer LDX, integer, dimension( * ) ISEED)
CLATSY
Purpose:

CLATSY 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 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 clattb (integer IMAT, character UPLO, character TRANS, character DIAG, integer, dimension( 4 ) ISEED, integer N, integer KD, complex, dimension( ldab, * ) AB, integer LDAB, complex, dimension( * ) B, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer INFO)
CLATTB
Purpose:

CLATTB 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 CLATMS). 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 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 array, dimension (N)
WORKWORK is COMPLEX array, dimension (2*N)
RWORKRWORK is REAL 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 clattp (integer IMAT, character UPLO, character TRANS, character DIAG, integer, dimension( 4 ) ISEED, integer N, complex, dimension( * ) AP, complex, dimension( * ) B, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer INFO)
CLATTP
Purpose:

CLATTP 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 CLATMS). Modified on exit.
NN is INTEGER The order of the matrix to be generated.
APAP is COMPLEX 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 array, dimension (N) The right hand side vector, if IMAT > 10.
WORKWORK is COMPLEX array, dimension (2*N)
RWORKRWORK is REAL 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 clattr (integer IMAT, character UPLO, character TRANS, character DIAG, integer, dimension( 4 ) ISEED, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( * ) B, complex, dimension( * ) WORK, real, dimension( * ) RWORK, integer INFO)
CLATTR
Purpose:

CLATTR 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 CLATMS). Modified on exit.
NN is INTEGER The order of the matrix to be generated.
AA is COMPLEX 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 array, dimension (N) The right hand side vector, if IMAT > 10.
WORKWORK is COMPLEX array, dimension (2*N)
RWORKRWORK is REAL 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 clavhe (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, integer, dimension( * ) IPIV, complex, dimension( ldb, * ) B, integer LDB, integer INFO)
CLAVHE
Purpose:

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

CLAVHE_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 CHETRF_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 array, dimension (LDA,N) The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CHETRF_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 CHETRF_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 clavhp (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( * ) A, integer, dimension( * ) IPIV, complex, dimension( ldb, * ) B, integer LDB, integer INFO)
CLAVHP
Purpose:

CLAVHP 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 CHPTRF. CHPTRF 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', CLAVHP multiplies either by U or U * D (or L or L * D). If TRANS = 'C' or 'c', CLAVHP 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 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 CSPTRF or CHPTRF. 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 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 clavsp (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( * ) A, integer, dimension( * ) IPIV, complex, dimension( ldb, * ) B, integer LDB, integer INFO)
CLAVSP
Purpose:

CLAVSP 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 CSPTRF. CSPTRF 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', CLAVSP multiplies either by U or U * D (or L or L * D). If TRANS = 'C' or 'c', CLAVSP 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 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 CSPTRF. 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 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 clavsy (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, integer, dimension( * ) IPIV, complex, dimension( ldb, * ) B, integer LDB, integer INFO)
CLAVSY
Purpose:

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

CLAVSY_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 CSYTRF_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 array, dimension (LDA,N) The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CSYTRF_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 CSYTRF_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 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 clqt01 (integer M, integer N, complex, dimension( lda, * ) A, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) Q, complex, dimension( lda, * ) L, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CLQT01
Purpose:

CLQT01 tests CGELQF, which computes the LQ factorization of an mbyn matrix A, and partially tests CUNGLQ which forms the nbyn orthogonal matrix Q. CLQT01 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 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX array, dimension (LDA,N) Details of the LQ factorization of A, as returned by CGELQF. See CGELQF for further details.
QQ is COMPLEX array, dimension (LDA,N) The nbyn orthogonal matrix Q.
LL is COMPLEX 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 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by CGELQF.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is REAL array, dimension (max(M,N))
RESULTRESULT is REAL 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 clqt02 (integer M, integer N, integer K, complex, dimension( lda, * ) A, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) Q, complex, dimension( lda, * ) L, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CLQT02
Purpose:

CLQT02 tests CUNGLQ, 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, CLQT02 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 array, dimension (LDA,N) The mbyn matrix A which was factorized by CLQT01.
AFAF is COMPLEX array, dimension (LDA,N) Details of the LQ factorization of A, as returned by CGELQF. See CGELQF for further details.
QQ is COMPLEX array, dimension (LDA,N)
LL is COMPLEX array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= N.
TAUTAU is COMPLEX array, dimension (M) The scalar factors of the elementary reflectors corresponding to the LQ factorization in AF.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is REAL array, dimension (M)
RESULTRESULT is REAL 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 clqt03 (integer M, integer N, integer K, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) C, complex, dimension( lda, * ) CC, complex, dimension( lda, * ) Q, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CLQT03
Purpose:

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

CPBT01 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 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 CPBTRF for further details.
LDALDA is INTEGER. The leading dimension of the array A. LDA >= max(1,KD+1).
AFACAFAC is COMPLEX 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 CPBTRF.
LDAFACLDAFAC is INTEGER The leading dimension of the array AFAC. LDAFAC >= max(1,KD+1).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 cpbt02 (character UPLO, integer N, integer KD, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real, dimension( * ) RWORK, real RESID)
CPBT02
Purpose:

CPBT02 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 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 CPBTRF for further details.
LDALDA is INTEGER. The leading dimension of the array A. LDA >= max(1,KD+1).
XX is COMPLEX 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 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 REAL array, dimension (N)
RESIDRESID is REAL 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 cpbt05 (character UPLO, integer N, integer KD, integer NRHS, complex, dimension( ldab, * ) AB, integer LDAB, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CPBT05
Purpose:

CPBT05 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 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 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 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 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 REAL 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 REAL 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 REAL 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 cpot01 (character UPLO, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldafac, * ) AFAC, integer LDAFAC, real, dimension( * ) RWORK, real RESID)
CPOT01
Purpose:

CPOT01 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 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 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 REAL array, dimension (N)
RESIDRESID is REAL 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 cpot02 (character UPLO, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real, dimension( * ) RWORK, real RESID)
CPOT02
Purpose:

CPOT02 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 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 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 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 REAL array, dimension (N)
RESIDRESID is REAL 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 cpot03 (character UPLO, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldainv, * ) AINV, integer LDAINV, complex, dimension( ldwork, * ) WORK, integer LDWORK, real, dimension( * ) RWORK, real RCOND, real RESID)
CPOT03
Purpose:

CPOT03 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 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 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 array, dimension (LDWORK,N)
LDWORKLDWORK is INTEGER The leading dimension of the array WORK. LDWORK >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RCONDRCOND is REAL The reciprocal of the condition number of A, computed as ( 1/norm(A) ) / norm(AINV).
RESIDRESID is REAL 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 cpot05 (character UPLO, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CPOT05
Purpose:

CPOT05 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 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 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 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 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 REAL 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 REAL 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 REAL 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 cppt01 (character UPLO, integer N, complex, dimension( * ) A, complex, dimension( * ) AFAC, real, dimension( * ) RWORK, real RESID)
CPPT01
Purpose:

CPPT01 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 array, dimension (N*(N+1)/2) The original Hermitian matrix A, stored as a packed triangular matrix.
AFACAFAC is COMPLEX 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 REAL array, dimension (N)
RESIDRESID is REAL 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 cppt02 (character UPLO, integer N, integer NRHS, complex, dimension( * ) A, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real, dimension( * ) RWORK, real RESID)
CPPT02
Purpose:

CPPT02 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 array, dimension (N*(N+1)/2) The original Hermitian matrix A, stored as a packed triangular matrix.
XX is COMPLEX 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 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 REAL array, dimension (N)
RESIDRESID is REAL 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 cppt03 (character UPLO, integer N, complex, dimension( * ) A, complex, dimension( * ) AINV, complex, dimension( ldwork, * ) WORK, integer LDWORK, real, dimension( * ) RWORK, real RCOND, real RESID)
CPPT03
Purpose:

CPPT03 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 array, dimension (N*(N+1)/2) The original Hermitian matrix A, stored as a packed triangular matrix.
AINVAINV is COMPLEX array, dimension (N*(N+1)/2) The (Hermitian) inverse of the matrix A, stored as a packed triangular matrix.
WORKWORK is COMPLEX array, dimension (LDWORK,N)
LDWORKLDWORK is INTEGER The leading dimension of the array WORK. LDWORK >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RCONDRCOND is REAL The reciprocal of the condition number of A, computed as ( 1/norm(A) ) / norm(AINV).
RESIDRESID is REAL 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 cppt05 (character UPLO, integer N, integer NRHS, complex, dimension( * ) AP, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CPPT05
Purpose:

CPPT05 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 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 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 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 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 REAL 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 REAL 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 REAL 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 cpst01 (character UPLO, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldafac, * ) AFAC, integer LDAFAC, complex, dimension( ldperm, * ) PERM, integer LDPERM, integer, dimension( * ) PIV, real, dimension( * ) RWORK, real RESID, integer RANK)
CPST01
Purpose:

CPST01 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 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 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 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 REAL array, dimension (N)
RESIDRESID is REAL 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 cptt01 (integer N, real, dimension( * ) D, complex, dimension( * ) E, real, dimension( * ) DF, complex, dimension( * ) EF, complex, dimension( * ) WORK, real RESID)
CPTT01
Purpose:

CPTT01 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 REAL array, dimension (N) The n diagonal elements of the tridiagonal matrix A.
EE is COMPLEX array, dimension (N1) The (n1) subdiagonal elements of the tridiagonal matrix A.
DFDF is REAL array, dimension (N) The n diagonal elements of the factor L from the L*D*L' factorization of A.
EFEF is COMPLEX array, dimension (N1) The (n1) subdiagonal elements of the factor L from the L*D*L' factorization of A.
WORKWORK is COMPLEX array, dimension (2*N)
RESIDRESID is REAL 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 cptt02 (character UPLO, integer N, integer NRHS, real, dimension( * ) D, complex, dimension( * ) E, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real RESID)
CPTT02
Purpose:

CPTT02 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 REAL array, dimension (N) The n diagonal elements of the tridiagonal matrix A.
EE is COMPLEX array, dimension (N1) The (n1) subdiagonal elements of the tridiagonal matrix A.
XX is COMPLEX 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 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 REAL 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 cptt05 (integer N, integer NRHS, real, dimension( * ) D, complex, dimension( * ) E, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CPTT05
Purpose:

CPTT05 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 REAL array, dimension (N) The n diagonal elements of the tridiagonal matrix A.
EE is COMPLEX array, dimension (N1) The (n1) subdiagonal elements of the tridiagonal matrix A.
BB is COMPLEX 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 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 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 REAL 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 REAL 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 REAL 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 cqlt01 (integer M, integer N, complex, dimension( lda, * ) A, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) Q, complex, dimension( lda, * ) L, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CQLT01
Purpose:

CQLT01 tests CGEQLF, which computes the QL factorization of an mbyn matrix A, and partially tests CUNGQL which forms the mbym orthogonal matrix Q. CQLT01 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 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX array, dimension (LDA,N) Details of the QL factorization of A, as returned by CGEQLF. See CGEQLF for further details.
QQ is COMPLEX array, dimension (LDA,M) The mbym orthogonal matrix Q.
LL is COMPLEX 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 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by CGEQLF.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is REAL array, dimension (M)
RESULTRESULT is REAL 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 cqlt02 (integer M, integer N, integer K, complex, dimension( lda, * ) A, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) Q, complex, dimension( lda, * ) L, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CQLT02
Purpose:

CQLT02 tests CUNGQL, 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, CQLT02 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 array, dimension (LDA,N) The mbyn matrix A which was factorized by CQLT01.
AFAF is COMPLEX array, dimension (LDA,N) Details of the QL factorization of A, as returned by CGEQLF. See CGEQLF for further details.
QQ is COMPLEX array, dimension (LDA,N)
LL is COMPLEX array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= M.
TAUTAU is COMPLEX array, dimension (N) The scalar factors of the elementary reflectors corresponding to the QL factorization in AF.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is REAL array, dimension (M)
RESULTRESULT is REAL 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 cqlt03 (integer M, integer N, integer K, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) C, complex, dimension( lda, * ) CC, complex, dimension( lda, * ) Q, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CQLT03
Purpose:

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

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

CQRT01 tests CGEQRF, which computes the QR factorization of an mbyn matrix A, and partially tests CUNGQR which forms the mbym orthogonal matrix Q. CQRT01 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 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX array, dimension (LDA,N) Details of the QR factorization of A, as returned by CGEQRF. See CGEQRF for further details.
QQ is COMPLEX array, dimension (LDA,M) The mbym orthogonal matrix Q.
RR is COMPLEX 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 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by CGEQRF.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is REAL array, dimension (M)
RESULTRESULT is REAL 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 cqrt01p (integer M, integer N, complex, dimension( lda, * ) A, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) Q, complex, dimension( lda, * ) R, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CQRT01P
Purpose:

CQRT01P tests CGEQRFP, which computes the QR factorization of an mbyn matrix A, and partially tests CUNGQR which forms the mbym orthogonal matrix Q. CQRT01P 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 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX array, dimension (LDA,N) Details of the QR factorization of A, as returned by CGEQRFP. See CGEQRFP for further details.
QQ is COMPLEX array, dimension (LDA,M) The mbym orthogonal matrix Q.
RR is COMPLEX 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 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by CGEQRFP.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is REAL array, dimension (M)
RESULTRESULT is REAL 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 cqrt02 (integer M, integer N, integer K, complex, dimension( lda, * ) A, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) Q, complex, dimension( lda, * ) R, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CQRT02
Purpose:

CQRT02 tests CUNGQR, 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, CQRT02 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 array, dimension (LDA,N) The mbyn matrix A which was factorized by CQRT01.
AFAF is COMPLEX array, dimension (LDA,N) Details of the QR factorization of A, as returned by CGEQRF. See CGEQRF for further details.
QQ is COMPLEX array, dimension (LDA,N)
RR is COMPLEX array, dimension (LDA,N)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and R. LDA >= M.
TAUTAU is COMPLEX array, dimension (N) The scalar factors of the elementary reflectors corresponding to the QR factorization in AF.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is REAL array, dimension (M)
RESULTRESULT is REAL 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 cqrt03 (integer M, integer N, integer K, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) C, complex, dimension( lda, * ) CC, complex, dimension( lda, * ) Q, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CQRT03
Purpose:

CQRT03 tests CUNMQR, which computes Q*C, Q'*C, C*Q or C*Q'. CQRT03 compares the results of a call to CUNMQR with the results of forming Q explicitly by a call to CUNGQR and then performing matrix multiplication by a call to CGEMM.
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 array, dimension (LDA,N) Details of the QR factorization of an mbyn matrix, as returned by CGEQRF. See CGEQRF for further details.
CC is COMPLEX array, dimension (LDA,N)
CCCC is COMPLEX array, dimension (LDA,N)
QQ is COMPLEX array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays AF, C, CC, and Q.
TAUTAU is COMPLEX array, dimension (min(M,N)) The scalar factors of the elementary reflectors corresponding to the QR factorization in AF.
WORKWORK is COMPLEX 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 REAL array, dimension (M)
RESULTRESULT is REAL 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 cqrt04 (integer M, integer N, integer NB, real, dimension(6) RESULT)
CQRT04
Purpose:

CQRT04 tests CGEQRT and CGEMQRT.
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 REAL 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 cqrt05 (integer M, integer N, integer L, integer NB, real, dimension(6) RESULT)
CQRT05
Purpose:

CQRT05 tests CTPQRT and CTPMQRT.
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 REAL 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
real function cqrt11 (integer M, integer K, complex, dimension( lda, * ) A, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK)
CQRT11
Purpose:

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

CQRT12 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 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 REAL array, dimension (min(M,N)) The singular values of the matrix A.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The length of the array WORK. LWORK >= M*N + 2*min(M,N) + max(M,N).
RWORKRWORK is REAL array, dimension (4*min(M,N))
Author:

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

CQRT13 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 array, dimension (LDA,N) The MbyN matrix A.
LDALDA is INTEGER The leading dimension of the array A.
NORMANORMA is REAL 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
real function cqrt14 (character TRANS, integer M, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( lwork ) WORK, integer LWORK)
CQRT14
Purpose:

CQRT14 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 array, dimension (LDA,N) The MbyN matrix A.
LDALDA is INTEGER The leading dimension of the array A.
XX is COMPLEX 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 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 cqrt15 (integer SCALE, integer RKSEL, integer M, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldb, * ) B, integer LDB, real, dimension( * ) S, integer RANK, real NORMA, real NORMB, integer, dimension( 4 ) ISEED, complex, dimension( lwork ) WORK, integer LWORK)
CQRT15
Purpose:

CQRT15 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 array, dimension (LDA,N) The MbyN matrix A.
LDALDA is INTEGER The leading dimension of the array A.
BB is COMPLEX 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 REAL array, dimension MIN(M,N) Singular values of A.
RANKRANK is INTEGER number of nonzero singular values of A.
NORMANORMA is REAL onenorm norm of A.
NORMBNORMB is REAL onenorm norm of B.
ISEEDISEED is integer array, dimension (4) seed for random number generator.
WORKWORK is COMPLEX 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 cqrt16 (character TRANS, integer M, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real, dimension( * ) RWORK, real RESID)
CQRT16
Purpose:

CQRT16 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 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 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 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 REAL array, dimension (M)
RESIDRESID is REAL 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
real function cqrt17 (character TRANS, integer IRESID, integer M, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldb, * ) C, complex, dimension( lwork ) WORK, integer LWORK)
CQRT17
Purpose:

CQRT17 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 array, dimension (LDA,N) The mbyn matrix A.
LDALDA is INTEGER The leading dimension of the array A. LDA >= M.
XX is COMPLEX 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 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 array, dimension (LDB,NRHS)
WORKWORK is COMPLEX 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 crqt01 (integer M, integer N, complex, dimension( lda, * ) A, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) Q, complex, dimension( lda, * ) R, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CRQT01
Purpose:

CRQT01 tests CGERQF, which computes the RQ factorization of an mbyn matrix A, and partially tests CUNGRQ which forms the nbyn orthogonal matrix Q. CRQT01 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 array, dimension (LDA,N) The mbyn matrix A.
AFAF is COMPLEX array, dimension (LDA,N) Details of the RQ factorization of A, as returned by CGERQF. See CGERQF for further details.
QQ is COMPLEX array, dimension (LDA,N) The nbyn orthogonal matrix Q.
RR is COMPLEX 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 array, dimension (min(M,N)) The scalar factors of the elementary reflectors, as returned by CGERQF.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is REAL array, dimension (max(M,N))
RESULTRESULT is REAL 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 crqt02 (integer M, integer N, integer K, complex, dimension( lda, * ) A, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) Q, complex, dimension( lda, * ) R, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CRQT02
Purpose:

CRQT02 tests CUNGRQ, 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, CRQT02 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 array, dimension (LDA,N) The mbyn matrix A which was factorized by CRQT01.
AFAF is COMPLEX array, dimension (LDA,N) Details of the RQ factorization of A, as returned by CGERQF. See CGERQF for further details.
QQ is COMPLEX array, dimension (LDA,N)
RR is COMPLEX array, dimension (LDA,M)
LDALDA is INTEGER The leading dimension of the arrays A, AF, Q and L. LDA >= N.
TAUTAU is COMPLEX array, dimension (M) The scalar factors of the elementary reflectors corresponding to the RQ factorization in AF.
WORKWORK is COMPLEX array, dimension (LWORK)
LWORKLWORK is INTEGER The dimension of the array WORK.
RWORKRWORK is REAL array, dimension (M)
RESULTRESULT is REAL 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 crqt03 (integer M, integer N, integer K, complex, dimension( lda, * ) AF, complex, dimension( lda, * ) C, complex, dimension( lda, * ) CC, complex, dimension( lda, * ) Q, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK, real, dimension( * ) RWORK, real, dimension( * ) RESULT)
CRQT03
Purpose:

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

CRZT01 returns  A  R*Q  / ( M * eps * A ) for an upper trapezoidal A that was factored with CTZRZF.
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 array, dimension (LDA,N) The original upper trapezoidal M by N matrix A.
AFAF is COMPLEX array, dimension (LDA,N) The output of CTZRZF 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 array, dimension (M) Details of the Householder transformations as returned by CTZRZF.
WORKWORK is COMPLEX 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
real function crzt02 (integer M, integer N, complex, dimension( lda, * ) AF, integer LDA, complex, dimension( * ) TAU, complex, dimension( lwork ) WORK, integer LWORK)
CRZT02
Purpose:

CRZT02 returns  I  Q'*Q  / ( M * eps) where the matrix Q is defined by the Householder transformations generated by CTZRZF.
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 array, dimension (LDA,N) The output of CTZRZF.
LDALDA is INTEGER The leading dimension of the array AF.
TAUTAU is COMPLEX array, dimension (M) Details of the Householder transformations as returned by CTZRZF.
WORKWORK is COMPLEX 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 csbmv (character UPLO, integer N, integer K, complex ALPHA, complex, dimension( lda, * ) A, integer LDA, complex, dimension( * ) X, integer INCX, complex BETA, complex, dimension( * ) Y, integer INCY)
CSBMV
Purpose:

CSBMV 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 On entry, ALPHA specifies the scalar alpha. Unchanged on exit. A  COMPLEX 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 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 On entry, BETA specifies the scalar beta. Unchanged on exit. Y  COMPLEX 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 cspt01 (character UPLO, integer N, complex, dimension( * ) A, complex, dimension( * ) AFAC, integer, dimension( * ) IPIV, complex, dimension( ldc, * ) C, integer LDC, real, dimension( * ) RWORK, real RESID)
CSPT01
Purpose:

CSPT01 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 array, dimension (N*(N+1)/2) The original symmetric matrix A, stored as a packed triangular matrix.
AFACAFAC is COMPLEX 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 CSPTRF.
IPIVIPIV is INTEGER array, dimension (N) The pivot indices from CSPTRF.
CC is COMPLEX array, dimension (LDC,N)
LDCLDC is INTEGER The leading dimension of the array C. LDC >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 cspt02 (character UPLO, integer N, integer NRHS, complex, dimension( * ) A, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real, dimension( * ) RWORK, real RESID)
CSPT02
Purpose:

CSPT02 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 array, dimension (N*(N+1)/2) The original complex symmetric matrix A, stored as a packed triangular matrix.
XX is COMPLEX 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 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 REAL array, dimension (N)
RESIDRESID is REAL 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 cspt03 (character UPLO, integer N, complex, dimension( * ) A, complex, dimension( * ) AINV, complex, dimension( ldw, * ) WORK, integer LDW, real, dimension( * ) RWORK, real RCOND, real RESID)
CSPT03
Purpose:

CSPT03 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 array, dimension (N*(N+1)/2) The original complex symmetric matrix A, stored as a packed triangular matrix.
AINVAINV is COMPLEX array, dimension (N*(N+1)/2) The (symmetric) inverse of the matrix A, stored as a packed triangular matrix.
WORKWORK is COMPLEX array, dimension (LDW,N)
LDWLDW is INTEGER The leading dimension of the array WORK. LDW >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RCONDRCOND is REAL The reciprocal of the condition number of A, computed as ( 1/norm(A) ) / norm(AINV).
RESIDRESID is REAL 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 csyt01 (character UPLO, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, complex, dimension( ldc, * ) C, integer LDC, real, dimension( * ) RWORK, real RESID)
CSYT01
Purpose:

CSYT01 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 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 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.
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.
CC is COMPLEX array, dimension (LDC,N)
LDCLDC is INTEGER The leading dimension of the array C. LDC >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 csyt01_rook (character UPLO, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldafac, * ) AFAC, integer LDAFAC, integer, dimension( * ) IPIV, complex, dimension( ldc, * ) C, integer LDC, real, dimension( * ) RWORK, real RESID)
CSYT01_ROOK
Purpose:

CSYT01_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 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 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 array, dimension (LDC,N)
LDCLDC is INTEGER The leading dimension of the array C. LDC >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 csyt02 (character UPLO, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, real, dimension( * ) RWORK, real RESID)
CSYT02
Purpose:

CSYT02 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 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 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 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 REAL array, dimension (N)
RESIDRESID is REAL 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 csyt03 (character UPLO, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldainv, * ) AINV, integer LDAINV, complex, dimension( ldwork, * ) WORK, integer LDWORK, real, dimension( * ) RWORK, real RCOND, real RESID)
CSYT03
Purpose:

CSYT03 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 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 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 array, dimension (LDWORK,N)
LDWORKLDWORK is INTEGER The leading dimension of the array WORK. LDWORK >= max(1,N).
RWORKRWORK is REAL array, dimension (N)
RCONDRCOND is REAL The reciprocal of the condition number of A, computed as RCOND = 1/ (norm(A) * norm(AINV)).
RESIDRESID is REAL 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 ctbt02 (character UPLO, character TRANS, character DIAG, integer N, integer KD, integer NRHS, complex, dimension( ldab, * ) AB, integer LDAB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( * ) WORK, real, dimension( * ) RWORK, real RESID)
CTBT02
Purpose:

CTBT02 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 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 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 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 array, dimension (N)
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 ctbt03 (character UPLO, character TRANS, character DIAG, integer N, integer KD, integer NRHS, complex, dimension( ldab, * ) AB, integer LDAB, real SCALE, real, dimension( * ) CNORM, real TSCAL, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( * ) WORK, real RESID)
CTBT03
Purpose:

CTBT03 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 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 REAL The scaling factor s used in solving the triangular system.
CNORMCNORM is REAL array, dimension (N) The 1norms of the columns of A, not counting the diagonal.
TSCALTSCAL is REAL The scaling factor used in computing the 1norms in CNORM. CNORM actually contains the column norms of TSCAL*A.
XX is COMPLEX 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 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 array, dimension (N)
RESIDRESID is REAL 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 ctbt05 (character UPLO, character TRANS, character DIAG, integer N, integer KD, integer NRHS, complex, dimension( ldab, * ) AB, integer LDAB, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CTBT05
Purpose:

CTBT05 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 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 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 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 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 REAL 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 REAL 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 REAL 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 ctbt06 (real RCOND, real RCONDC, character UPLO, character DIAG, integer N, integer KD, complex, dimension( ldab, * ) AB, integer LDAB, real, dimension( * ) RWORK, real RAT)
CTBT06
Purpose:

CTBT06 computes a test ratio comparing RCOND (the reciprocal condition number of a triangular matrix A) and RCONDC, the estimate computed by CTBCON. 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 REAL 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 REAL The estimate of the reciprocal condition number computed by CTBCON.
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 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 REAL array, dimension (N)
RATRAT is REAL 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 ctpt01 (character UPLO, character DIAG, integer N, complex, dimension( * ) AP, complex, dimension( * ) AINVP, real RCOND, real, dimension( * ) RWORK, real RESID)
CTPT01
Purpose:

CTPT01 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 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 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 REAL The reciprocal condition number of A, computed as 1/(norm(A) * norm(AINV)).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 ctpt02 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( * ) AP, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( * ) WORK, real, dimension( * ) RWORK, real RESID)
CTPT02
Purpose:

CTPT02 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 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 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 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 array, dimension (N)
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 ctpt03 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( * ) AP, real SCALE, real, dimension( * ) CNORM, real TSCAL, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( * ) WORK, real RESID)
CTPT03
Purpose:

CTPT03 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 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 REAL The scaling factor s used in solving the triangular system.
CNORMCNORM is REAL array, dimension (N) The 1norms of the columns of A, not counting the diagonal.
TSCALTSCAL is REAL The scaling factor used in computing the 1norms in CNORM. CNORM actually contains the column norms of TSCAL*A.
XX is COMPLEX 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 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 array, dimension (N)
RESIDRESID is REAL 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 ctpt05 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( * ) AP, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CTPT05
Purpose:

CTPT05 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 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 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 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 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 REAL 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 REAL 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 REAL 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 ctpt06 (real RCOND, real RCONDC, character UPLO, character DIAG, integer N, complex, dimension( * ) AP, real, dimension( * ) RWORK, real RAT)
CTPT06
Purpose:

CTPT06 computes a test ratio comparing RCOND (the reciprocal condition number of the triangular matrix A) and RCONDC, the estimate computed by CTPCON. 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 REAL 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 REAL The estimate of the reciprocal condition number computed by CTPCON.
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 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 REAL array, dimension (N)
RATRAT is REAL 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 ctrt01 (character UPLO, character DIAG, integer N, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldainv, * ) AINV, integer LDAINV, real RCOND, real, dimension( * ) RWORK, real RESID)
CTRT01
Purpose:

CTRT01 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 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 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 REAL The reciprocal condition number of A, computed as 1/(norm(A) * norm(AINV)).
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 ctrt02 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( * ) WORK, real, dimension( * ) RWORK, real RESID)
CTRT02
Purpose:

CTRT02 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 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 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 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 array, dimension (N)
RWORKRWORK is REAL array, dimension (N)
RESIDRESID is REAL 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 ctrt03 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, real SCALE, real, dimension( * ) CNORM, real TSCAL, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( * ) WORK, real RESID)
CTRT03
Purpose:

CTRT03 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 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 REAL The scaling factor s used in solving the triangular system.
CNORMCNORM is REAL array, dimension (N) The 1norms of the columns of A, not counting the diagonal.
TSCALTSCAL is REAL The scaling factor used in computing the 1norms in CNORM. CNORM actually contains the column norms of TSCAL*A.
XX is COMPLEX 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 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 array, dimension (N)
RESIDRESID is REAL 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 ctrt05 (character UPLO, character TRANS, character DIAG, integer N, integer NRHS, complex, dimension( lda, * ) A, integer LDA, complex, dimension( ldb, * ) B, integer LDB, complex, dimension( ldx, * ) X, integer LDX, complex, dimension( ldxact, * ) XACT, integer LDXACT, real, dimension( * ) FERR, real, dimension( * ) BERR, real, dimension( * ) RESLTS)
CTRT05
Purpose:

CTRT05 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 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 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 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 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 REAL 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 REAL 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 REAL 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 ctrt06 (real RCOND, real RCONDC, character UPLO, character DIAG, integer N, complex, dimension( lda, * ) A, integer LDA, real, dimension( * ) RWORK, real RAT)
CTRT06
Purpose:

CTRT06 computes a test ratio comparing RCOND (the reciprocal condition number of a triangular matrix A) and RCONDC, the estimate computed by CTRCON. 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 REAL 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 REAL The estimate of the reciprocal condition number computed by CTRCON.
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 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 REAL array, dimension (N)
RATRAT is REAL 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.