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_aa (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| CCHKHE_AA | |
| subroutine | cchkhe_aa_2stage (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| CCHKHE_AA_2STAGE | |
| subroutine | cchkhe_rk (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, e, ainv, b, x, xact, work, rwork, iwork, nout) |
| CCHKHE_RK | |
| 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_aa (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| CCHKSY_AA | |
| subroutine | cchksy_aa_2stage (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| CCHKSY_AA_2STAGE | |
| subroutine | cchksy_rk (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, e, ainv, b, x, xact, work, rwork, iwork, nout) |
| CCHKSY_RK | |
| 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 | cchkunhr_col (thresh, tsterr, nm, mval, nn, nval, nnb, nbval, nout) |
| CCHKUNHR_COL | |
| 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_aa (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| CDRVHE_AA | |
| subroutine | cdrvhe_aa_2stage (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| CDRVHE_AA_2STAGE | |
| subroutine | cdrvhe_rk (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, e, ainv, b, x, xact, work, rwork, iwork, nout) |
| CDRVHE_RK | |
| 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, 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_aa (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| CDRVSY_AA | |
| subroutine | cdrvsy_aa_2stage (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| CDRVSY_AA_2STAGE | |
| subroutine | cdrvsy_rk (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, e, ainv, b, x, xact, work, rwork, iwork, nout) |
| CDRVSY_RK | |
| 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 | cerrunhr_col (path, nunit) |
| CERRUNHR_COL | |
| 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, rwork, 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_3 (uplo, n, a, lda, afac, ldafac, e, ipiv, c, ldc, rwork, resid) |
| CHET01_3 | |
| subroutine | chet01_aa (uplo, n, a, lda, afac, ldafac, ipiv, c, ldc, rwork, resid) |
| CHET01_AA | |
| 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_3 (uplo, n, a, lda, afac, ldafac, e, ipiv, c, ldc, rwork, resid) |
| CSYT01_3 | |
| subroutine | csyt01_aa (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 | |
| subroutine | cunhr_col01 (m, n, mb1, nb1, nb2, result) |
| CUNHR_COL01 | |
| subroutine | cunhr_col02 (m, n, mb1, nb1, nb2, result) |
| CUNHR_COL02 | |
This is the group of complex LAPACK TESTING LIN routines.
| program cchkaa |
CCHKAA
!> !> 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 list-directed input. The remaining lines !> specify the LAPACK test paths and the number of matrix types to use !> in testing. An annotated example of a data file can be obtained by !> deleting the first 3 characters from the following 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 !> CHK 10 List types on next line if 0 < NTYPES < 10 !> CHA 10 List types on next line if 0 < NTYPES < 10 !> CH2 10 List types on next line if 0 < NTYPES < 10 !> CSA 11 List types on next line if 0 < NTYPES < 10 !> CS2 11 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 !> CSK 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 !> CTS !> CHH !>
!> 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 !>
| subroutine cchkeq | ( | real | thresh, |
| integer | nout ) |
CCHKEQ
!> !> CCHKEQ tests CGEEQU, CGBEQU, CPOEQU, CPPEQU and CPBEQU !>
| [in] | THRESH | !> THRESH is REAL !> Threshold for testing routines. Should be between 2 and 10. !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 53 of file cchkeq.f.
| 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
!> !> CCHKGB tests CGBTRF, -TRS, -RFS, and -CON !>
| [in] | 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. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A is COMPLEX array, dimension (LA) !> |
| [in] | LA | !> LA is INTEGER !> The length of the array A. LA >= (KLMAX+KUMAX+1)*NMAX !> where KLMAX is the largest entry in the local array KLVAL, !> KUMAX is the largest entry in the local array KUVAL and !> NMAX is the largest entry in the input array NVAL. !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (LAFAC) !> |
| [in] | LAFAC | !> LAFAC is INTEGER !> The length of the array AFAC. LAFAC >= (2*KLMAX+KUMAX+1)*NMAX !> where KLMAX is the largest entry in the local array KLVAL, !> KUMAX is the largest entry in the local array KUVAL and !> NMAX is the largest entry in the input array NVAL. !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NSMAX,NMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (NMAX+2*NSMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 188 of file cchkgb.f.
| 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
!> !> CCHKGE tests CGETRF, -TRI, -TRS, -RFS, and -CON. !>
| [in] | 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. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for M or N, used in dimensioning !> the work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(2*NMAX,2*NSMAX+NWORK)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 183 of file cchkge.f.
| 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
!> !> CCHKGT tests CGTTRF, -TRS, -RFS, and -CON !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*4) !> |
| [out] | AF | !> AF is COMPLEX array, dimension (NMAX*4) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(NMAX)+2*NSMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 145 of file cchkgt.f.
| 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
!> !> CCHKHE tests CHETRF, -TRI2, -TRS, -TRS2, -RFS, and -CON. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(NMAX,2*NSMAX)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 168 of file cchkhe.f.
| subroutine cchkhe_aa | ( | 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_AA
!> !> CCHKHE_AA tests CHETRF_AA, -TRS_AA. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(NMAX,2*NSMAX)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 168 of file cchkhe_aa.f.
| subroutine cchkhe_aa_2stage | ( | 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_AA_2STAGE
!> !> CCHKSY_AA_2STAGE tests CHETRF_AA_2STAGE, -TRS_AA_2STAGE. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(NMAX,2*NSMAX)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 169 of file cchkhe_aa_2stage.f.
| subroutine cchkhe_rk | ( | 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( * ) | e, | ||
| complex, dimension( * ) | ainv, | ||
| complex, dimension( * ) | b, | ||
| complex, dimension( * ) | x, | ||
| complex, dimension( * ) | xact, | ||
| complex, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
CCHKHE_RK
!> !> CCHKHE_RK tests CHETRF_RK, -TRI_3, -TRS_3, !> and -CON_3. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | E | !> E is COMPLEX array, dimension (NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(NMAX,2*NSMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 174 of file cchkhe_rk.f.
| 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
!> !> CCHKHE_ROOK tests CHETRF_ROOK, -TRI_ROOK, -TRS_ROOK, !> and -CON_ROOK. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(NMAX,2*NSMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 169 of file cchkhe_rook.f.
| 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
!> !> CCHKHP tests CHPTRF, -TRI, -TRS, -RFS, and -CON !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(2,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, !> dimension (NMAX+2*NSMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 161 of file cchkhp.f.
| 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
!> !> CCHKLQ tests CGELQF, CUNGLQ and CUNMLQ. !>
| [in] | 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. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB and NX contained in the !> vectors NBVAL and NXVAL. The blocking parameters are used !> in pairs (NB,NX). !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NXVAL | !> NXVAL is INTEGER array, dimension (NNB) !> The values of the crossover point NX. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for M or N, used in dimensioning !> the work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AF | !> AF is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AQ | !> AQ is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AL | !> AL is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AC | !> AC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 193 of file cchklq.f.
| 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
!> !> CCHKPB tests CPBTRF, -TRS, -RFS, and -CON. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is REAL array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is REAL array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is REAL array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(NMAX,2*NSMAX)) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 165 of file cchkpb.f.
| 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
!> !> CCHKPO tests CPOTRF, -TRI, -TRS, -RFS, and -CON !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (NMAX+2*NSMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 165 of file cchkpo.f.
| 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
!> !> CCHKPP tests CPPTRF, -TRI, -TRS, -RFS, and -CON !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(NMAX,2*NSMAX)) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 156 of file cchkpp.f.
| 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
!> !> CCHKPS tests CPSTRF. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the block size NB. !> |
| [in] | NRANK | !> NRANK is INTEGER !> The number of values of RANK contained in the vector RANKVAL. !> |
| [in] | RANKVAL | !> RANKVAL is INTEGER array, dimension (NBVAL) !> The values of the block size NB. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | PERM | !> PERM is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | PIV | !> PIV is INTEGER array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*3) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 151 of file cchkps.f.
| 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
!> !> CCHKPT tests CPTTRF, -TRS, -RFS, and -CON !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*2) !> |
| [out] | D | !> D is REAL array, dimension (NMAX*2) !> |
| [out] | E | !> E is COMPLEX array, dimension (NMAX*2) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(NMAX,2*NSMAX)) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 145 of file cchkpt.f.
| 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
!> !> CCHKQ3 tests CGEQP3. !>
| [in] | 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. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB and NX contained in the !> vectors NBVAL and NXVAL. The blocking parameters are used !> in pairs (NB,NX). !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NXVAL | !> NXVAL is INTEGER array, dimension (NNB) !> The values of the crossover point NX. !> |
| [in] | 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. !> |
| [out] | A | !> A 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. !> |
| [out] | COPYA | !> COPYA is COMPLEX array, dimension (MMAX*NMAX) !> |
| [out] | S | !> S is REAL array, dimension !> (min(MMAX,NMAX)) !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (MMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (max(M*max(M,N) + 4*min(M,N) + max(M,N))) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (4*NMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 155 of file cchkq3.f.
| 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
!> !> CCHKQL tests CGEQLF, CUNGQL and CUNMQL. !>
| [in] | 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. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB and NX contained in the !> vectors NBVAL and NXVAL. The blocking parameters are used !> in pairs (NB,NX). !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NXVAL | !> NXVAL is INTEGER array, dimension (NNB) !> The values of the crossover point NX. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for M or N, used in dimensioning !> the work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AF | !> AF is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AQ | !> AQ is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AL | !> AL is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AC | !> AC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 193 of file cchkql.f.
| 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
!> !> CCHKQR tests CGEQRF, CUNGQR and CUNMQR. !>
| [in] | 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. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB and NX contained in the !> vectors NBVAL and NXVAL. The blocking parameters are used !> in pairs (NB,NX). !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NXVAL | !> NXVAL is INTEGER array, dimension (NNB) !> The values of the crossover point NX. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for M or N, used in dimensioning !> the work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AF | !> AF is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AQ | !> AQ is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AR | !> AR is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AC | !> AC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 198 of file cchkqr.f.
| subroutine cchkqrt | ( | real | thresh, |
| logical | tsterr, | ||
| integer | nm, | ||
| integer, dimension( * ) | mval, | ||
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nout ) |
CCHKQRT
!> !> CCHKQRT tests CGEQRT and CGEMQRT. !>
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 100 of file cchkqrt.f.
| subroutine cchkqrtp | ( | real | thresh, |
| logical | tsterr, | ||
| integer | nm, | ||
| integer, dimension( * ) | mval, | ||
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nout ) |
CCHKQRTP
!> !> CCHKQRTP tests CTPQRT and CTPMQRT. !>
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 100 of file cchkqrtp.f.
| program cchkrfp |
CCHKRFP
!> !> 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 !>
| 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
!> !> CCHKRQ tests CGERQF, CUNGRQ and CUNMRQ. !>
| [in] | 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. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB and NX contained in the !> vectors NBVAL and NXVAL. The blocking parameters are used !> in pairs (NB,NX). !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NXVAL | !> NXVAL is INTEGER array, dimension (NNB) !> The values of the crossover point NX. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for M or N, used in dimensioning !> the work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AF | !> AF is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AQ | !> AQ is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AR | !> AR is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AC | !> AC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 198 of file cchkrq.f.
| 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
!> !> CCHKSP tests CSPTRF, -TRI, -TRS, -RFS, and -CON !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(2,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, !> dimension (NMAX+2*NSMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 161 of file cchksp.f.
| 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
!> !> CCHKSY tests CSYTRF, -TRI2, -TRS, -TRS2, -RFS, and -CON. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(2,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NSMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 168 of file cchksy.f.
| subroutine cchksy_aa | ( | 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_AA
!> !> CCHKSY_AA tests CSYTRF_AA, -TRS_AA. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is REAL array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is REAL array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is REAL array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(NMAX,2*NSMAX)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 167 of file cchksy_aa.f.
| subroutine cchksy_aa_2stage | ( | 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_AA_2STAGE
!> !> CCHKSY_AA_2STAGE tests CSYTRF_AA_2STAGE, -TRS_AA_2STAGE. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is COMPLEX array, dimension (max(NMAX,2*NSMAX)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 169 of file cchksy_aa_2stage.f.
| subroutine cchksy_rk | ( | 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( * ) | e, | ||
| complex, dimension( * ) | ainv, | ||
| complex, dimension( * ) | b, | ||
| complex, dimension( * ) | x, | ||
| complex, dimension( * ) | xact, | ||
| complex, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
CCHKSY_RK
!> !> CCHKSY_RK tests CSYTRF_RK, -TRI_3, -TRS_3, !> and -CON_3. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | E | !> E is COMPLEX array, dimension (NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(NMAX,2*NSMAX)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 174 of file cchksy_rk.f.
| 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
!> !> CCHKSY_ROOK tests CSYTRF_ROOK, -TRI_ROOK, -TRS_ROOK, !> and -CON_ROOK. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(NMAX,2*NSMAX)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 169 of file cchksy_rook.f.
| 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
!> !> CCHKTB tests CTBTRS, -RFS, and -CON, and CLATBS. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The leading dimension of the work arrays. !> NMAX >= the maximum value of N in NVAL. !> |
| [out] | AB | !> AB is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(NMAX,2*NSMAX)) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 147 of file cchktb.f.
| 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
!> !> CCHKTP tests CTPTRI, -TRS, -RFS, and -CON, and CLATPS !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The leading dimension of the work arrays. NMAX >= the !> maximumm value of N in NVAL. !> |
| [out] | AP | !> AP is COMPLEX array, dimension (NMAX*(NMAX+1)/2) !> |
| [out] | AINVP | !> AINVP is COMPLEX array, dimension (NMAX*(NMAX+1)/2) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(NMAX,2*NSMAX)) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 148 of file cchktp.f.
| 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
!> !> CCHKTR tests CTRTRI, -TRS, -RFS, and -CON, and CLATRS !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The leading dimension of the work arrays. !> NMAX >= the maximum value of N in NVAL. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NSMAX) !> where NSMAX is the largest entry in NSVAL. !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NSMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(NMAX,2*NSMAX)) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 160 of file cchktr.f.
| 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
!> !> CCHKTZ tests CTZRZF. !>
| [in] | 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. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A 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. !> |
| [out] | COPYA | !> COPYA is COMPLEX array, dimension (MMAX*NMAX) !> |
| [out] | S | !> S is REAL array, dimension !> (min(MMAX,NMAX)) !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (MMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (MMAX*NMAX + 4*NMAX + MMAX) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 135 of file cchktz.f.
| subroutine cchkunhr_col | ( | real | thresh, |
| logical | tsterr, | ||
| integer | nm, | ||
| integer, dimension( * ) | mval, | ||
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nout ) |
CCHKUNHR_COL
!> !> CCHKUNHR_COL tests: !> 1) CUNGTSQR and CUNHR_COL using CLATSQR, CGEMQRT, !> 2) CUNGTSQR_ROW and CUNHR_COL inside CGETSQRHRT !> (which calls CLATSQR, CUNGTSQR_ROW and CUNHR_COL) using CGEMQRT. !> Therefore, CLATSQR (part of CGEQR), CGEMQRT (part of CGEMQR) !> have to be tested before this test. !> !>
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB contained in the vector NBVAL. !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 106 of file cchkunhr_col.f.
| 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
!> !> CDRVGB tests the driver routines CGBSV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A is COMPLEX array, dimension (LA) !> |
| [in] | LA | !> LA is INTEGER !> The length of the array A. LA >= (2*NMAX-1)*NMAX !> where NMAX is the largest entry in NVAL. !> |
| [out] | AFB | !> AFB is COMPLEX array, dimension (LAFB) !> |
| [in] | LAFB | !> LAFB is INTEGER !> The length of the array AFB. LAFB >= (3*NMAX-2)*NMAX !> where NMAX is the largest entry in NVAL. !> |
| [out] | ASAV | !> ASAV is COMPLEX array, dimension (LA) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | S | !> S is REAL array, dimension (2*NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS,NMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
!> !> 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. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A is COMPLEX array, dimension (LA) !> |
| [in] | LA | !> LA is INTEGER !> The length of the array A. LA >= (2*NMAX-1)*NMAX !> where NMAX is the largest entry in NVAL. !> |
| [out] | AFB | !> AFB is COMPLEX array, dimension (LAFB) !> |
| [in] | LAFB | !> LAFB is INTEGER !> The length of the array AFB. LAFB >= (3*NMAX-2)*NMAX !> where NMAX is the largest entry in NVAL. !> |
| [out] | ASAV | !> ASAV is COMPLEX array, dimension (LA) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | S | !> S is REAL array, dimension (2*NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS,NMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(2*NMAX,NMAX+2*NRHS)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 169 of file cdrvgb.f.
| 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
!> !> CDRVGE tests the driver routines CGESV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | S | !> S is REAL array, dimension (2*NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (2*NRHS+NMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
!> !> 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. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | S | !> S is REAL array, dimension (2*NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (2*NRHS+NMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 161 of file cdrvge.f.
| 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
!> !> CDRVGT tests CGTSV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, NRHS >= 0. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*4) !> |
| [out] | AF | !> AF is COMPLEX array, dimension (NMAX*4) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 137 of file cdrvgt.f.
| 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
!> !> CDRVHE tests the driver routines CHESV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
!> !> 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. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (2*NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 150 of file cdrvhe.f.
| subroutine cdrvhe_aa | ( | 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_AA
!> !> CDRVHE_AA tests the driver routine CHESV_AA. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 150 of file cdrvhe_aa.f.
| subroutine cdrvhe_aa_2stage | ( | 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_AA_2STAGE
!> !> CDRVHE_AA_2STAGE tests the driver routine CHESV_AA_2STAGE. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 151 of file cdrvhe_aa_2stage.f.
| subroutine cdrvhe_rk | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| complex, dimension( * ) | a, | ||
| complex, dimension( * ) | afac, | ||
| complex, dimension( * ) | e, | ||
| complex, dimension( * ) | ainv, | ||
| complex, dimension( * ) | b, | ||
| complex, dimension( * ) | x, | ||
| complex, dimension( * ) | xact, | ||
| complex, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
CDRVHE_RK
!> !> CDRVHE_RK tests the driver routines CHESV_RK. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | E | !> E is COMPLEX array, dimension (NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 155 of file cdrvhe_rk.f.
| 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
!> !> CDRVHE_ROOK tests the driver routines CHESV_ROOK. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 150 of file cdrvhe_rook.f.
| 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
!> !> CDRVHP tests the driver routines CHPSV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 154 of file cdrvhp.f.
| 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, | ||
| integer | nout ) |
CDRVLS
!> !> CDRVLS tests the least squares driver routines CGELS, CGETSLS, CGELSS, CGELSY !> and CGELSD. !>
| [in] | 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 rank-deficient. !> j=5: The same of 4, but A is scaled up. !> j=6: The same of 5, but A is scaled down. !> |
| [in] | NM | !> NM is INTEGER !> The number of values of M contained in the vector MVAL. !> |
| [in] | MVAL | !> MVAL is INTEGER array, dimension (NM) !> The values of the matrix row dimension M. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix column dimension N. !> |
| [in] | NNB | !> NNB is INTEGER !> The number of values of NB and NX contained in the !> vectors NBVAL and NXVAL. The blocking parameters are used !> in pairs (NB,NX). !> |
| [in] | NBVAL | !> NBVAL is INTEGER array, dimension (NNB) !> The values of the blocksize NB. !> |
| [in] | NXVAL | !> NXVAL is INTEGER array, dimension (NNB) !> The values of the crossover point NX. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right hand sides NRHS. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A 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. !> |
| [out] | COPYA | !> COPYA is COMPLEX array, dimension (MMAX*NMAX) !> |
| [out] | B | !> B 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. !> |
| [out] | COPYB | !> COPYB is COMPLEX array, dimension (MMAX*NSMAX) !> |
| [out] | C | !> C is COMPLEX array, dimension (MMAX*NSMAX) !> |
| [out] | S | !> S is REAL array, dimension !> (min(MMAX,NMAX)) !> |
| [out] | COPYS | !> COPYS is REAL array, dimension !> (min(MMAX,NMAX)) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 189 of file cdrvls.f.
| 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
!> !> CDRVPB tests the driver routines CPBSV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | S | !> S is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 156 of file cdrvpb.f.
| 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
!> !> CDRVPO tests the driver routines CPOSV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | S | !> S is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
!> !> 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. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | S | !> S is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 156 of file cdrvpo.f.
| 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
!> !> CDRVPP tests the driver routines CPPSV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*(NMAX+1)/2) !> |
| [out] | ASAV | !> ASAV is COMPLEX array, dimension (NMAX*(NMAX+1)/2) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | S | !> S is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 156 of file cdrvpp.f.
| 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
!> !> CDRVPT tests CPTSV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*2) !> |
| [out] | D | !> D is REAL array, dimension (NMAX*2) !> |
| [out] | E | !> E is COMPLEX array, dimension (NMAX*2) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 138 of file cdrvpt.f.
| 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
!> !> CDRVRF1 tests the LAPACK RFP routines: !> CLANHF.F !>
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | 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. !> |
| [out] | A | !> A is COMPLEX array, dimension (LDA,NMAX) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,NMAX). !> |
| [out] | ARF | !> ARF is COMPLEX array, dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension ( NMAX ) !> |
Definition at line 94 of file cdrvrf1.f.
| 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
!> !> CDRVRF2 tests the LAPACK RFP conversion routines. !>
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [out] | A | !> A is COMPLEX array, dimension (LDA,NMAX) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,NMAX). !> |
| [out] | ARF | !> ARF is COMPLEX array, dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | AP | !> AP is COMPLEX array, dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | ASAV | !> ASAV is COMPLEX6 array, dimension (LDA,NMAX) !> |
Definition at line 88 of file cdrvrf2.f.
| 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
!> !> CDRVRF3 tests the LAPACK RFP routines: !> CTFSM !>
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | THRESH | !> THRESH is DOUBLE PRECISION !> The threshold value for the test ratios. A result is !> included in the output file if RESULT >= THRESH. To have !> every test ratio printed, use THRESH = 0. !> |
| [out] | A | !> A is COMPLEX*16 array, dimension (LDA,NMAX) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,NMAX). !> |
| [out] | ARF | !> ARF is COMPLEX array, dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | B1 | !> B1 is COMPLEX array, dimension (LDA,NMAX) !> |
| [out] | B2 | !> B2 is COMPLEX array, dimension (LDA,NMAX) !> |
| [out] | S_WORK_CLANGE | !> S_WORK_CLANGE is REAL array, dimension (NMAX) !> |
| [out] | C_WORK_CGEQRF | !> C_WORK_CGEQRF is COMPLEX array, dimension (NMAX) !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (NMAX) !> |
Definition at line 117 of file cdrvrf3.f.
| 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
!> !> CDRVRF4 tests the LAPACK RFP routines: !> CHFRK !>
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | 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. !> |
| [out] | C1 | !> C1 is COMPLEX array, dimension (LDC,NMAX) !> |
| [out] | C2 | !> C2 is COMPLEX array, dimension (LDC,NMAX) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array A. LDA >= max(1,NMAX). !> |
| [out] | CRF | !> CRF is COMPLEX array, dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | A | !> A is COMPLEX array, dimension (LDA,NMAX) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,NMAX). !> |
| [out] | S_WORK_CLANGE | !> S_WORK_CLANGE is REAL array, dimension (NMAX) !> |
Definition at line 112 of file cdrvrf4.f.
| 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
!> !> 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 N-by-NRHS 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(X-XACT) * RCOND ) / ( norm(XACT) * EPS ), !> where EPS is the machine precision, RCOND the condition number of A, and !> norm( . ) the 1-norm for (1,2,3) and the inf-norm for (4). !> Errors occur when INFO parameter is not as expected. Failures occur when !> a test ratios is greater than THRES. !>
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NNS | !> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !> |
| [in] | NSVAL | !> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right-hand sides NRHS. !> |
| [in] | NNT | !> NNT is INTEGER !> The number of values of MATRIX TYPE contained in the vector NTVAL. !> |
| [in] | NTVAL | !> NTVAL is INTEGER array, dimension (NNT) !> The values of matrix type (between 0 and 9 for PO/PP/PF matrices). !> |
| [in] | 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. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*MAXRHS) !> |
| [out] | BSAV | !> BSAV is COMPLEX array, dimension (NMAX*MAXRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*MAXRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*MAXRHS) !> |
| [out] | ARF | !> ARF is COMPLEX array, dimension ((NMAX*(NMAX+1))/2) !> |
| [out] | ARFINV | !> ARFINV is COMPLEX array, dimension ((NMAX*(NMAX+1))/2) !> |
| [out] | C_WORK_CLATMS | !> C_WORK_CLATMS is COMPLEX array, dimension ( 3*NMAX ) !> |
| [out] | C_WORK_CPOT02 | !> C_WORK_CPOT02 is COMPLEX array, dimension ( NMAX*MAXRHS ) !> |
| [out] | C_WORK_CPOT03 | !> C_WORK_CPOT03 is COMPLEX array, dimension ( NMAX*NMAX ) !> |
| [out] | S_WORK_CLATMS | !> S_WORK_CLATMS is REAL array, dimension ( NMAX ) !> |
| [out] | S_WORK_CLANHE | !> S_WORK_CLANHE is REAL array, dimension ( NMAX ) !> |
| [out] | S_WORK_CPOT01 | !> S_WORK_CPOT01 is REAL array, dimension ( NMAX ) !> |
| [out] | S_WORK_CPOT02 | !> S_WORK_CPOT02 is REAL array, dimension ( NMAX ) !> |
| [out] | S_WORK_CPOT03 | !> S_WORK_CPOT03 is REAL array, dimension ( NMAX ) !> |
Definition at line 238 of file cdrvrfp.f.
| 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
!> !> CDRVSP tests the driver routines CSPSV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 154 of file cdrvsp.f.
| 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
!> !> CDRVSY tests the driver routines CSYSV and -SVX. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
!> !> 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. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension !> (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (2*NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 150 of file cdrvsy.f.
| subroutine cdrvsy_aa | ( | 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_AA
!> !> CDRVSY_AA tests the driver routine CSYSV_AA. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is REAL array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is REAL array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is REAL array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is REAL array, dimension (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 150 of file cdrvsy_aa.f.
| subroutine cdrvsy_aa_2stage | ( | 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_AA_2STAGE
!> !> CDRVSY_AA_2STAGE tests the driver routine CSYSV_AA_2STAGE. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (NMAX*max(2,NRHS)) !> |
| [out] | RWORK | !> RWORK is COMPLEX array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 151 of file cdrvsy_aa_2stage.f.
| subroutine cdrvsy_rk | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| complex, dimension( * ) | a, | ||
| complex, dimension( * ) | afac, | ||
| complex, dimension( * ) | e, | ||
| complex, dimension( * ) | ainv, | ||
| complex, dimension( * ) | b, | ||
| complex, dimension( * ) | x, | ||
| complex, dimension( * ) | xact, | ||
| complex, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
CDRVSY_RK
!> !> CDRVSY_RK tests the driver routines CSYSV_RK. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | E | !> E is COMPLEX array, dimension (NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 154 of file cdrvsy_rk.f.
| 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
!> !> CDRVSY_ROOK tests the driver routines CSYSV_ROOK. !>
| [in] | 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. !> |
| [in] | NN | !> NN is INTEGER !> The number of values of N contained in the vector NVAL. !> |
| [in] | NVAL | !> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors to be generated for !> each linear system. !> |
| [in] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [in] | NMAX | !> NMAX is INTEGER !> The maximum value permitted for N, used in dimensioning the !> work arrays. !> |
| [out] | A | !> A is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | AINV | !> AINV is COMPLEX array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | X | !> X is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | XACT | !> XACT is COMPLEX array, dimension (NMAX*NRHS) !> |
| [out] | WORK | !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (NMAX+2*NRHS) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 149 of file cdrvsy_rook.f.
| 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. !>
Definition at line 95 of file cebchvxx.f.
| subroutine cerrge | ( | character*3 | path, |
| integer | nunit ) |
CERRGE
CERRGEX
!> !> CERRGE tests the error exits for the COMPLEX routines !> for general matrices. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
!> !> 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. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrge.f.
| subroutine cerrgt | ( | character*3 | path, |
| integer | nunit ) |
CERRGT
!> !> CERRGT tests the error exits for the COMPLEX tridiagonal !> routines. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrgt.f.
| subroutine cerrhe | ( | character*3 | path, |
| integer | nunit ) |
CERRHE
CERRHEX
!> !> CERRHE tests the error exits for the COMPLEX routines !> for Hermitian indefinite matrices. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
!> !> 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. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrhe.f.
| subroutine cerrlq | ( | character*3 | path, |
| integer | nunit ) |
CERRLQ
!> !> CERRLQ tests the error exits for the COMPLEX routines !> that use the LQ decomposition of a general matrix. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrlq.f.
| subroutine cerrls | ( | character*3 | path, |
| integer | nunit ) |
CERRLS
!> !> CERRLS tests the error exits for the COMPLEX least squares !> driver routines (CGELS, CGELSS, CGELSY, CGELSD). !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrls.f.
| subroutine cerrpo | ( | character*3 | path, |
| integer | nunit ) |
CERRPO
CERRPOX
!> !> CERRPO tests the error exits for the COMPLEX routines !> for Hermitian positive definite matrices. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
!> !> 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. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrpo.f.
| subroutine cerrps | ( | character*3 | path, |
| integer | nunit ) |
CERRPS
!> !> CERRPS tests the error exits for the COMPLEX routines !> for CPSTRF.. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrps.f.
| subroutine cerrql | ( | character*3 | path, |
| integer | nunit ) |
CERRQL
!> !> CERRQL tests the error exits for the COMPLEX routines !> that use the QL decomposition of a general matrix. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrql.f.
| subroutine cerrqp | ( | character*3 | path, |
| integer | nunit ) |
CERRQP
!> !> CERRQP tests the error exits for CGEQP3. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 53 of file cerrqp.f.
| subroutine cerrqr | ( | character*3 | path, |
| integer | nunit ) |
CERRQR
!> !> CERRQR tests the error exits for the COMPLEX routines !> that use the QR decomposition of a general matrix. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrqr.f.
| subroutine cerrqrt | ( | character*3 | path, |
| integer | nunit ) |
CERRQRT
!> !> CERRQRT tests the error exits for the COMPLEX routines !> that use the QRT decomposition of a general matrix. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrqrt.f.
| subroutine cerrqrtp | ( | character*3 | path, |
| integer | nunit ) |
CERRQRTP
!> !> CERRQRTP tests the error exits for the REAL routines !> that use the QRT decomposition of a triangular-pentagonal matrix. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrqrtp.f.
| subroutine cerrrfp | ( | integer | nunit | ) |
CERRRFP
!> !> 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 !>
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 51 of file cerrrfp.f.
| subroutine cerrrq | ( | character*3 | path, |
| integer | nunit ) |
CERRRQ
!> !> CERRRQ tests the error exits for the COMPLEX routines !> that use the RQ decomposition of a general matrix. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrrq.f.
| subroutine cerrsy | ( | character*3 | path, |
| integer | nunit ) |
CERRSY
CERRSYX
!> !> CERRSY tests the error exits for the COMPLEX routines !> for symmetric indefinite matrices. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
!> !> 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. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrsy.f.
| subroutine cerrtr | ( | character*3 | path, |
| integer | nunit ) |
CERRTR
!> !> CERRTR tests the error exits for the COMPLEX triangular routines. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 53 of file cerrtr.f.
| subroutine cerrtz | ( | character*3 | path, |
| integer | nunit ) |
CERRTZ
!> !> CERRTZ tests the error exits for CTZRZF. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 53 of file cerrtz.f.
| subroutine cerrunhr_col | ( | character(len=3) | path, |
| integer | nunit ) |
CERRUNHR_COL
!> !> CERRUNHR_COL tests the error exits for CUNHR_COL that does !> Householder reconstruction from the output of tall-skinny !> factorization CLATSQR. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 55 of file cerrunhr_col.f.
| subroutine cerrvx | ( | character*3 | path, |
| integer | nunit ) |
CERRVX
CERRVXX
!> !> CERRVX tests the error exits for the COMPLEX driver routines !> for solving linear systems of equations. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name for the routines to be tested. !> |
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 54 of file cerrvx.f.
| 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
!> !> 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. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | KL | !> KL is INTEGER !> The number of subdiagonals within the band of A. KL >= 0. !> |
| [in] | KU | !> KU is INTEGER !> The number of superdiagonals within the band of A. KU >= 0. !> |
| [in,out] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original matrix A in band storage, stored in rows 1 to !> KL+KU+1. !> |
| [in] | LDA | !> LDA is INTEGER. !> The leading dimension of the array A. LDA >= max(1,KL+KU+1). !> |
| [in] | AFAC | !> AFAC 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. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. !> LDAFAC >= max(1,2*KL*KU+1). !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (min(M,N)) !> The pivot indices from CGBTRF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (2*KL+KU+1) !> |
| [out] | RESID | !> RESID is REAL !> norm(L*U - A) / ( N * norm(A) * EPS ) !> |
Definition at line 124 of file cgbt01.f.
| 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, dimension( * ) | rwork, | ||
| real | resid ) |
CGBT02
!> !> CGBT02 computes the residual for a solution of a banded system of !> equations op(A)*X = B: !> RESID = norm(B - op(A)*X) / ( norm(op(A)) * norm(X) * EPS ), !> where op(A) = A, A**T, or A**H, depending on TRANS, and EPS is the !> machine epsilon. !>
| [in] | 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) !> |
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | KL | !> KL is INTEGER !> The number of subdiagonals within the band of A. KL >= 0. !> |
| [in] | KU | !> KU is INTEGER !> The number of superdiagonals within the band of A. KU >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B. NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original matrix A in band storage, stored in rows 1 to !> KL+KU+1. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,KL+KU+1). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. If TRANS = 'N', !> LDX >= max(1,N); if TRANS = 'T' or 'C', LDX >= max(1,M). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. IF TRANS = 'N', !> LDB >= max(1,M); if TRANS = 'T' or 'C', LDB >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (MAX(1,LRWORK)), !> where LRWORK >= M when TRANS = 'T' or 'C'; otherwise, RWORK !> is not referenced. !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(B - op(A)*X) / ( norm(op(A)) * norm(X) * EPS ). !> |
Definition at line 146 of file cgbt02.f.
| 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
!> !> 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, A**T, or A**H, 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 !>
| [in] | 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) !> |
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X, B, and XACT, and the !> order of the matrix A. N >= 0. !> |
| [in] | KL | !> KL is INTEGER !> The number of subdiagonals within the band of A. KL >= 0. !> |
| [in] | KU | !> KU is INTEGER !> The number of superdiagonals within the band of A. KU >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0. !> |
| [in] | AB | !> AB is COMPLEX array, dimension (LDAB,N) !> The original band matrix A, stored in rows 1 to KL+KU+1. !> The j-th column of A is stored in the j-th column of the !> array AB as follows: !> AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(n,j+kl). !> |
| [in] | LDAB | !> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KL+KU+1. !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 174 of file cgbt05.f.
| 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
!> !> Compute a minimum-norm solution !> min || A*X - B || !> using the LQ factorization !> A = L*Q !> computed by CGELQF. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= M >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B. NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> Details of the LQ factorization of the original matrix A as !> returned by CGELQF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= M. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (M) !> Details of the orthogonal matrix Q. !> |
| [in,out] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> On entry, the m-by-nrhs right hand side matrix B. !> On exit, the n-by-nrhs solution matrix X. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= N. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK must be at least NRHS, !> and should be at least NRHS*NB, where NB is the block size !> for this environment. !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
Definition at line 119 of file cgelqs.f.
| logical function cgennd | ( | integer | m, |
| integer | n, | ||
| complex, dimension( lda, * ) | a, | ||
| integer | lda ) |
CGENND
!> !> CGENND tests that its argument has a real, non-negative diagonal. !>
| [in] | M | !> M is INTEGER !> The number of rows in A. !> |
| [in] | N | !> N is INTEGER !> The number of columns in A. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA, N) !> The matrix. !> |
| [in] | LDA | !> LDA is INTEGER !> Leading dimension of A. !> |
Definition at line 67 of file cgennd.f.
| 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
!> !> Solve the least squares problem !> min || A*X - B || !> using the QL factorization !> A = Q*L !> computed by CGEQLF. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. M >= N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B. NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> Details of the QL factorization of the original matrix A as !> returned by CGEQLF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= M. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (N) !> Details of the orthogonal matrix Q. !> |
| [in,out] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> On entry, the m-by-nrhs right hand side matrix B. !> On exit, the n-by-nrhs solution matrix X, stored in rows !> m-n+1:m. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= M. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK must be at least NRHS, !> and should be at least NRHS*NB, where NB is the block size !> for this environment. !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
Definition at line 120 of file cgeqls.f.
| 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
!> !> Solve the least squares problem !> min || A*X - B || !> using the QR factorization !> A = Q*R !> computed by CGEQRF. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. M >= N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B. NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> Details of the QR factorization of the original matrix A as !> returned by CGEQRF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= M. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (N) !> Details of the orthogonal matrix Q. !> |
| [in,out] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> On entry, the m-by-nrhs right hand side matrix B. !> On exit, the n-by-nrhs solution matrix X. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= M. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK must be at least NRHS, !> and should be at least NRHS*NB, where NB is the block size !> for this environment. !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
Definition at line 119 of file cgeqrs.f.
| 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
!> !> Compute a minimum-norm solution !> min || A*X - B || !> using the RQ factorization !> A = R*Q !> computed by CGERQF. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= M >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B. NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> Details of the RQ factorization of the original matrix A as !> returned by CGERQF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= M. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (M) !> Details of the orthogonal matrix Q. !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK must be at least NRHS, !> and should be at least NRHS*NB, where NB is the block size !> for this environment. !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
Definition at line 120 of file cgerqs.f.
| 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
!> !> 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. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original M x N matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,M). !> |
| [in,out] | AFAC | !> AFAC 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. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,M). !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CGETRF. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESID | !> RESID is REAL !> norm(L*U - A) / ( N * norm(A) * EPS ) !> |
Definition at line 106 of file cget01.f.
| 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
!> !> CGET02 computes the residual for a solution of a system of linear !> equations op(A)*X = B: !> RESID = norm(B - op(A)*X) / ( norm(op(A)) * norm(X) * EPS ), !> where op(A) = A, A**T, or A**H, depending on TRANS, and EPS is the !> machine epsilon. !>
| [in] | 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) !> |
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B, the matrix of right hand sides. !> NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original M x N matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,M). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. If TRANS = 'N', !> LDX >= max(1,N); if TRANS = 'T' or 'C', LDX >= max(1,M). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. IF TRANS = 'N', !> LDB >= max(1,M); if TRANS = 'T' or 'C', LDB >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(B - op(A)*X) / ( norm(op(A)) * norm(X) * EPS ). !> |
Definition at line 132 of file cget02.f.
| 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
!> !> 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. !>
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original N x N matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | AINV | !> AINV is COMPLEX array, dimension (LDAINV,N) !> The inverse of the matrix A. !> |
| [in] | LDAINV | !> LDAINV is INTEGER !> The leading dimension of the array AINV. LDAINV >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LDWORK,N) !> |
| [in] | LDWORK | !> LDWORK is INTEGER !> The leading dimension of the array WORK. LDWORK >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RCOND | !> RCOND is REAL !> The reciprocal of the condition number of A, computed as !> ( 1/norm(A) ) / norm(AINV). !> |
| [out] | RESID | !> RESID is REAL !> norm(I - AINV*A) / ( N * norm(A) * norm(AINV) * EPS ) !> |
Definition at line 108 of file cget03.f.
| subroutine cget04 | ( | integer | n, |
| integer | nrhs, | ||
| complex, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| complex, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real | rcond, | ||
| real | resid ) |
CGET04
!> !> CGET04 computes the difference between a computed solution and the !> true solution to a system of linear equations. !> !> RESID = ( norm(X-XACT) * RCOND ) / ( norm(XACT) * EPS ), !> where RCOND is the reciprocal of the condition number and EPS is the !> machine epsilon. !>
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X and XACT. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X and XACT. NRHS >= 0. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | RCOND | !> RCOND is REAL !> The reciprocal of the condition number of the coefficient !> matrix in the system of equations. !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the NRHS solution vectors of !> ( norm(X-XACT) * RCOND ) / ( norm(XACT) * EPS ) !> |
Definition at line 101 of file cget04.f.
| 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
!> !> 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 ) !>
| [in] | 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) !> |
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X and XACT. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X and XACT. NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original n by n matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | CHKFERR | !> CHKFERR is LOGICAL !> Set to .TRUE. to check FERR, .FALSE. not to check FERR. !> When the test system is ill-conditioned, the !> solution in XACT may be incorrect. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 164 of file cget07.f.
| 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
!> !> 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. !>
| [in] | N | !> N is INTEGTER !> The order of the matrix A. N >= 0. !> |
| [in] | DL | !> DL is COMPLEX array, dimension (N-1) !> The (n-1) sub-diagonal elements of A. !> |
| [in] | D | !> D is COMPLEX array, dimension (N) !> The diagonal elements of A. !> |
| [in] | DU | !> DU is COMPLEX array, dimension (N-1) !> The (n-1) super-diagonal elements of A. !> |
| [in] | DLF | !> DLF is COMPLEX array, dimension (N-1) !> The (n-1) multipliers that define the matrix L from the !> LU factorization of A. !> |
| [in] | DF | !> DF is COMPLEX array, dimension (N) !> The n diagonal elements of the upper triangular matrix U from !> the LU factorization of A. !> |
| [in] | DUF | !> DUF is COMPLEX array, dimension (N-1) !> The (n-1) elements of the first super-diagonal of U. !> |
| [in] | DU2 | !> DU2 is COMPLEX array, dimension (N-2) !> The (n-2) elements of the second super-diagonal of U. !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices; for 1 <= i <= n, row i of the matrix was !> interchanged with row IPIV(i). IPIV(i) will always be either !> i or i+1; IPIV(i) = i indicates a row interchange was not !> required. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LDWORK,N) !> |
| [in] | LDWORK | !> LDWORK is INTEGER !> The leading dimension of the array WORK. LDWORK >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The scaled residual: norm(L*U - A) / (norm(A) * EPS) !> |
Definition at line 132 of file cgtt01.f.
| 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
!> !> CGTT02 computes the residual for the solution to a tridiagonal !> system of equations: !> RESID = norm(B - op(A)*X) / (norm(op(A)) * norm(X) * EPS), !> where EPS is the machine epsilon. !>
| [in] | 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) !> |
| [in] | N | !> N is INTEGTER !> The order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices B and X. NRHS >= 0. !> |
| [in] | DL | !> DL is COMPLEX array, dimension (N-1) !> The (n-1) sub-diagonal elements of A. !> |
| [in] | D | !> D is COMPLEX array, dimension (N) !> The diagonal elements of A. !> |
| [in] | DU | !> DU is COMPLEX array, dimension (N-1) !> The (n-1) super-diagonal elements of A. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | RESID | !> RESID is REAL !> norm(B - op(A)*X) / (norm(op(A)) * norm(X) * EPS) !> |
Definition at line 122 of file cgtt02.f.
| 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
!> !> 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 !>
| [in] | 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) !> |
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X and XACT. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X and XACT. NRHS >= 0. !> |
| [in] | DL | !> DL is COMPLEX array, dimension (N-1) !> The (n-1) sub-diagonal elements of A. !> |
| [in] | D | !> D is COMPLEX array, dimension (N) !> The diagonal elements of A. !> |
| [in] | DU | !> DU is COMPLEX array, dimension (N-1) !> The (n-1) super-diagonal elements of A. !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 163 of file cgtt05.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original Hermitian matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | AFAC | !> AFAC 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. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,N). !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CHETRF. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID 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 ) !> |
Definition at line 124 of file chet01.f.
| subroutine chet01_3 | ( | character | uplo, |
| integer | n, | ||
| complex, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| complex, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| complex, dimension( * ) | e, | ||
| integer, dimension( * ) | ipiv, | ||
| complex, dimension( ldc, * ) | c, | ||
| integer | ldc, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
CHET01_3
!> !> CHET01_3 reconstructs a Hermitian indefinite matrix A from its !> block L*D*L' or U*D*U' factorization computed by CHETRF_RK !> (or CHETRF_BK) and computes the residual !> norm( C - A ) / ( N * norm(A) * EPS ), !> where C is the reconstructed matrix and EPS is the machine epsilon. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX*16 array, dimension (LDA,N) !> The original Hermitian matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | AFAC | !> AFAC is COMPLEX array, dimension (LDAFAC,N) !> Diagonal of the block diagonal matrix D and factors U or L !> as computed by CHETRF_RK and CHETRF_BK: !> a) ONLY diagonal elements of the Hermitian block diagonal !> matrix D on the diagonal of A, i.e. D(k,k) = A(k,k); !> (superdiagonal (or subdiagonal) elements of D !> should be provided on entry in array E), and !> b) If UPLO = 'U': factor U in the superdiagonal part of A. !> If UPLO = 'L': factor L in the subdiagonal part of A. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. !> LDAFAC >= max(1,N). !> |
| [in] | E | !> E is COMPLEX array, dimension (N) !> On entry, contains the superdiagonal (or subdiagonal) !> elements of the Hermitian block diagonal matrix D !> with 1-by-1 or 2-by-2 diagonal blocks, where !> If UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced; !> If UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced. !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CHETRF_RK (or CHETRF_BK). !> |
| [out] | C | !> C is COMPLEX array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID 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 ) !> |
Definition at line 139 of file chet01_3.f.
| subroutine chet01_aa | ( | 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_AA
!> !> CHET01_AA 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 and EPS is the machine epsilon. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original hermitian matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | AFAC | !> AFAC 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. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,N). !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CHETRF. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is COMPLEX array, dimension (N) !> |
| [out] | RESID | !> RESID is COMPLEX !> If UPLO = 'L', norm(L*D*L' - A) / ( N * norm(A) * EPS ) !> If UPLO = 'U', norm(U*D*U' - A) / ( N * norm(A) * EPS ) !> |
Definition at line 122 of file chet01_aa.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original complex Hermitian matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | AFAC | !> AFAC 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. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,N). !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CSYTRF_ROOK. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID 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 ) !> |
Definition at line 123 of file chet01_rook.f.
| subroutine chkxer | ( | character*(*) | srnamt, |
| integer | infot, | ||
| integer | nout, | ||
| logical | lerr, | ||
| logical | ok ) |
CHKXER
!>
Definition at line 40 of file chkxer.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (N*(N+1)/2) !> The original Hermitian matrix A, stored as a packed !> triangular matrix. !> |
| [in] | AFAC | !> AFAC 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. !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CHPTRF. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID 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 ) !> |
Definition at line 112 of file chpt01.f.
| 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
!> !> CLAHILB generates an N by N scaled Hilbert matrix in A along with !> NRHS right-hand sides in B and solutions in X such that A*X=B. !> !> The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all !> entries are integers. The right-hand sides are the first NRHS !> columns of M * the identity matrix, and the solutions are the !> first NRHS columns of the inverse Hilbert matrix. !> !> The condition number of the Hilbert matrix grows exponentially with !> its size, roughly as O(e ** (3.5*N)). Additionally, the inverse !> Hilbert matrices beyond a relatively small dimension cannot be !> generated exactly without extra precision. Precision is exhausted !> when the largest entry in the inverse Hilbert matrix is greater than !> 2 to the power of the number of bits in the fraction of the data type !> used plus one, which is 24 for single precision. !> !> In single, the generated solution is exact for N <= 6 and has !> small componentwise error for 7 <= N <= 11. !>
| [in] | N | !> N is INTEGER !> The dimension of the matrix A. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The requested number of right-hand sides. !> |
| [out] | A | !> A is COMPLEX array, dimension (LDA, N) !> The generated scaled Hilbert matrix. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= N. !> |
| [out] | X | !> X is COMPLEX array, dimension (LDX, NRHS) !> The generated exact solutions. Currently, the first NRHS !> columns of the inverse Hilbert matrix. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= N. !> |
| [out] | B | !> B is REAL array, dimension (LDB, NRHS) !> The generated right-hand sides. Currently, the first NRHS !> columns of LCM(1, 2, ..., 2*N-1) * the identity matrix. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= N. !> |
| [out] | WORK | !> WORK is REAL array, dimension (N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> = 1: N is too large; the data is still generated but may not !> be not exact. !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name. !> |
Definition at line 132 of file clahilb.f.
| subroutine claipd | ( | integer | n, |
| complex, dimension( * ) | a, | ||
| integer | inda, | ||
| integer | vinda ) |
CLAIPD
!> !> 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. !>
| [in] | N | !> N is INTEGER !> The number of diagonal elements of A. !> |
| [in,out] | A | !> A is COMPLEX array, dimension !> (1+(N-1)*INDA+(N-2)*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. !> |
| [in] | INDA | !> INDA 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) !> |
| [in] | VINDA | !> VINDA 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 !> |
Definition at line 82 of file claipd.f.
| 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
!> !> 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. !>
| [in] | 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. !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices X and B. !> |
| [in] | ALPHA | !> ALPHA is REAL !> The scalar alpha. ALPHA must be 1. or -1.; otherwise, !> it is assumed to be 0. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The n diagonal elements of the tridiagonal matrix A. !> |
| [in] | E | !> E is COMPLEX array, dimension (N-1) !> The (n-1) subdiagonal or superdiagonal elements of A. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The N by NRHS matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(N,1). !> |
| [in] | BETA | !> BETA is REAL !> The scalar beta. BETA must be 0., 1., or -1.; otherwise, !> it is assumed to be 1. !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(N,1). !> |
Definition at line 127 of file claptm.f.
| 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
!> !> 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) = A, A**T, or A**H, depending on TRANS. !>
| [in] | 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, 2-D storage !> xPP: Hermitian positive definite packed !> xPB: Hermitian positive definite banded !> xHE: Hermitian indefinite, 2-D storage !> xHP: Hermitian indefinite packed !> xHB: Hermitian indefinite banded !> xSY: Symmetric indefinite, 2-D storage !> xSP: Symmetric indefinite packed !> xSB: Symmetric indefinite banded !> xTR: Triangular !> xTP: Triangular packed !> xTB: Triangular banded !> xQR: General m x n matrix !> xLQ: General m x n matrix !> xQL: General m x n matrix !> xRQ: General m x n matrix !> where the leading character indicates the precision. !> |
| [in] | XTYPE | !> XTYPE is CHARACTER*1 !> Specifies how the exact solution X will be determined: !> = 'N': New solution; generate a random X. !> = 'C': Computed; use value of X on entry. !> |
| [in] | UPLO | !> UPLO 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 !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Used only if A is nonsymmetric; specifies the operation !> applied to the matrix A. !> = 'N': B := A * X (No transpose) !> = 'T': B := A**T * X (Transpose) !> = 'C': B := A**H * X (Conjugate transpose) !> |
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | KL | !> KL is INTEGER !> Used only if A is a band matrix; specifies the number of !> subdiagonals of A if A is a general band matrix or if A is !> symmetric or triangular and UPLO = 'L'; specifies the number !> of superdiagonals of A if A is symmetric or triangular and !> UPLO = 'U'. 0 <= KL <= M-1. !> |
| [in] | KU | !> KU is INTEGER !> Used only if A is a general band matrix or if A is !> triangular. !> !> If PATH = xGB, specifies the number of superdiagonals of A, !> and 0 <= KU <= N-1. !> !> If PATH = xTR, xTP, or xTB, specifies whether or not the !> matrix has unit diagonal: !> = 1: matrix has non-unit diagonal (default) !> = 2: matrix has unit diagonal !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand side vectors in the system A*X = B. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The test matrix whose type is given by PATH. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. !> If PATH = xGB, LDA >= KL+KU+1. !> If PATH = xPB, xSB, xHB, or xTB, LDA >= KL+1. !> Otherwise, LDA >= max(1,M). !> |
| [in,out] | X | !> X 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. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. If TRANS = 'N', !> LDX >= max(1,N); if TRANS = 'T', LDX >= max(1,M). !> |
| [out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. If TRANS = 'N', !> LDB >= max(1,M); if TRANS = 'T', LDB >= max(1,N). !> |
| [in,out] | ISEED | !> ISEED is INTEGER array, dimension (4) !> The seed vector for the random number generator (used in !> CLATMS). Modified on exit. !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
Definition at line 206 of file clarhs.f.
| 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
!> !> CLATB4 sets parameters for the matrix generator based on the type of !> matrix to be generated. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name. !> |
| [in] | IMAT | !> IMAT is INTEGER !> An integer key describing which matrix to generate for this !> path. !> |
| [in] | M | !> M is INTEGER !> The number of rows in the matrix to be generated. !> |
| [in] | N | !> N is INTEGER !> The number of columns in the matrix to be generated. !> |
| [out] | TYPE | !> TYPE 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 !> |
| [out] | KL | !> KL is INTEGER !> The lower band width of the matrix to be generated. !> |
| [out] | KU | !> KU is INTEGER !> The upper band width of the matrix to be generated. !> |
| [out] | ANORM | !> ANORM is REAL !> The desired norm of the matrix to be generated. The diagonal !> matrix of singular values or eigenvalues is scaled by this !> value. !> |
| [out] | MODE | !> MODE is INTEGER !> A key indicating how to choose the vector of eigenvalues. !> |
| [out] | CNDNUM | !> CNDNUM is REAL !> The desired condition number. !> |
| [out] | DIST | !> DIST is CHARACTER*1 !> The type of distribution to be used by the random number !> generator. !> |
Definition at line 119 of file clatb4.f.
| subroutine clatb5 | ( | character*3 | path, |
| integer | imat, | ||
| integer | n, | ||
| character | type, | ||
| integer | kl, | ||
| integer | ku, | ||
| real | anorm, | ||
| integer | mode, | ||
| real | cndnum, | ||
| character | dist ) |
CLATB5
!> !> CLATB5 sets parameters for the matrix generator based on the type !> of matrix to be generated. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The LAPACK path name. !> |
| [in] | IMAT | !> IMAT is INTEGER !> An integer key describing which matrix to generate for this !> path. !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns in the matrix to be generated. !> |
| [out] | TYPE | !> TYPE is CHARACTER*1 !> The type of the matrix to be generated: !> = 'S': symmetric matrix !> = 'P': symmetric positive (semi)definite matrix !> = 'N': nonsymmetric matrix !> |
| [out] | KL | !> KL is INTEGER !> The lower band width of the matrix to be generated. !> |
| [out] | KU | !> KU is INTEGER !> The upper band width of the matrix to be generated. !> |
| [out] | ANORM | !> ANORM is REAL !> The desired norm of the matrix to be generated. The diagonal !> matrix of singular values or eigenvalues is scaled by this !> value. !> |
| [out] | MODE | !> MODE is INTEGER !> A key indicating how to choose the vector of eigenvalues. !> |
| [out] | CNDNUM | !> CNDNUM is REAL !> The desired condition number. !> |
| [out] | DIST | !> DIST is CHARACTER*1 !> The type of distribution to be used by the random number !> generator. !> |
Definition at line 112 of file clatb5.f.
| subroutine clatsp | ( | character | uplo, |
| integer | n, | ||
| complex, dimension( * ) | x, | ||
| integer, dimension( * ) | iseed ) |
CLATSP
!> !> 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 non-diagonalizable 2x2 block. !>
| [in] | UPLO | !> UPLO is CHARACTER !> Specifies whether the generated matrix is to be upper or !> lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | N | !> N is INTEGER !> The dimension of the matrix to be generated. !> |
| [out] | X | !> X 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. !> |
| [in,out] | ISEED | !> ISEED 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) !> |
Definition at line 83 of file clatsp.f.
| subroutine clatsy | ( | character | uplo, |
| integer | n, | ||
| complex, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| integer, dimension( * ) | iseed ) |
CLATSY
!> !> 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 non-diagonalizable 2x2 block. !>
| [in] | UPLO | !> UPLO is CHARACTER !> Specifies whether the generated matrix is to be upper or !> lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | N | !> N is INTEGER !> The dimension of the matrix to be generated. !> |
| [out] | X | !> X 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. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. !> |
| [in,out] | ISEED | !> ISEED 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) !> |
Definition at line 88 of file clatsy.f.
| 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
!> !> CLATTB generates a triangular test matrix in 2-dimensional storage. !> IMAT and UPLO uniquely specify the properties of the test matrix, !> which is returned in the array A. !>
| [in] | IMAT | !> IMAT is INTEGER !> An integer key describing which matrix to generate for this !> path. !> |
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A will be upper or lower !> triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies whether the matrix or its transpose will be used. !> = 'N': No transpose !> = 'T': Transpose !> = 'C': Conjugate transpose (= transpose) !> |
| [out] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in,out] | ISEED | !> ISEED is INTEGER array, dimension (4) !> The seed vector for the random number generator (used in !> CLATMS). Modified on exit. !> |
| [in] | N | !> N is INTEGER !> The order of the matrix to be generated. !> |
| [in] | KD | !> KD is INTEGER !> The number of superdiagonals or subdiagonals of the banded !> triangular matrix A. KD >= 0. !> |
| [out] | AB | !> AB 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+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j. !> If UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). !> |
| [in] | LDAB | !> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !> |
| [out] | B | !> B is COMPLEX array, dimension (N) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (2*N) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
Definition at line 139 of file clattb.f.
| 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
!> !> 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. !>
| [in] | IMAT | !> IMAT is INTEGER !> An integer key describing which matrix to generate for this !> path. !> |
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A will be upper or lower !> triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies whether the matrix or its transpose will be used. !> = 'N': No transpose !> = 'T': Transpose !> = 'C': Conjugate transpose !> |
| [out] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in,out] | ISEED | !> ISEED is INTEGER array, dimension (4) !> The seed vector for the random number generator (used in !> CLATMS). Modified on exit. !> |
| [in] | N | !> N is INTEGER !> The order of the matrix to be generated. !> |
| [out] | AP | !> AP is COMPLEX array, dimension (N*(N+1)/2) !> The upper or lower triangular matrix A, packed columnwise in !> a linear array. The j-th column of A is stored in the array !> AP as follows: !> if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j; !> if UPLO = 'L', !> AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n. !> |
| [out] | B | !> B is COMPLEX array, dimension (N) !> The right hand side vector, if IMAT > 10. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (2*N) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
Definition at line 129 of file clattp.f.
| 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
!> !> CLATTR generates a triangular test matrix in 2-dimensional storage. !> IMAT and UPLO uniquely specify the properties of the test matrix, !> which is returned in the array A. !>
| [in] | IMAT | !> IMAT is INTEGER !> An integer key describing which matrix to generate for this !> path. !> |
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A will be upper or lower !> triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies whether the matrix or its transpose will be used. !> = 'N': No transpose !> = 'T': Transpose !> = 'C': Conjugate transpose !> |
| [out] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in,out] | ISEED | !> ISEED is INTEGER array, dimension (4) !> The seed vector for the random number generator (used in !> CLATMS). Modified on exit. !> |
| [in] | N | !> N is INTEGER !> The order of the matrix to be generated. !> |
| [out] | A | !> A 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. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [out] | B | !> B is COMPLEX array, dimension (N) !> The right hand side vector, if IMAT > 10. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (2*N) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
Definition at line 136 of file clattr.f.
| 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
!> !> CLAVHE performs one of the matrix-vector 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') !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the factor stored in A is upper or lower !> triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies the operation to be performed: !> = 'N': x := A*x !> = 'C': x := A^H*x !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the diagonal blocks are unit !> matrices. If the diagonal blocks are assumed to be unit, !> then A = U or A = L, otherwise A = U*D or A = L*D. !> = 'U': Diagonal blocks are assumed to be unit matrices. !> = 'N': Diagonal blocks are assumed to be non-unit matrices. !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of vectors !> x to be multiplied by A. NRHS >= 0. !> |
| [in] | A | !> A 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 2-D triangular matrix. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | IPIV | !> IPIV 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 1-by-1 diagonal block. !> (If IPIV( k ) = k, no interchange was done). !> !> If IPIV(k) = IPIV(k-1) < 0, then rows and !> columns k-1 and -IPIV(k) were interchanged, !> D(k-1:k,k-1:k) is a 2-by-2 diagonal block. !> !> If UPLO = 'L': !> If IPIV(k) > 0, then rows and columns k and IPIV(k) !> were interchanged and D(k,k) is a 1-by-1 diagonal block. !> (If IPIV( k ) = k, no interchange was done). !> !> If IPIV(k) = IPIV(k+1) < 0, then rows and !> columns k+1 and -IPIV(k) were interchanged, !> D(k:k+1,k:k+1) is a 2-by-2 diagonal block. !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -k, the k-th argument had an illegal value !> |
Definition at line 151 of file clavhe.f.
| 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
!> !> CLAVHE_ROOK performs one of the matrix-vector 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') !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the factor stored in A is upper or lower !> triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies the operation to be performed: !> = 'N': x := A*x !> = 'C': x := A^H*x !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the diagonal blocks are unit !> matrices. If the diagonal blocks are assumed to be unit, !> then A = U or A = L, otherwise A = U*D or A = L*D. !> = 'U': Diagonal blocks are assumed to be unit matrices. !> = 'N': Diagonal blocks are assumed to be non-unit matrices. !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of vectors !> x to be multiplied by A. NRHS >= 0. !> |
| [in] | A | !> A 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 2-D triangular matrix. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [out] | IPIV | !> IPIV 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 1-by-1 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-1:k,k-1:k) is a 2-by-2 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 1-by-1 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 2-by-2 diagonal block. !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -k, the k-th argument had an illegal value !> |
Definition at line 154 of file clavhe_rook.f.
| 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
!> !> CLAVHP performs one of the matrix-vector 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 non-unit. !> 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 K-1 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 K-th argument !> has an illegal value. !>
Definition at line 129 of file clavhp.f.
| 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
!> !> CLAVSP performs one of the matrix-vector 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 non-unit. !> 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 K-1 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 K-th argument !> has an illegal value. !>
Definition at line 129 of file clavsp.f.
| 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
!> !> CLAVSY performs one of the matrix-vector operations !> x := A*x or x := A'*x, !> where x is an N element vector and A is one of the factors !> from the block U*D*U' or L*D*L' factorization computed by 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') !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the factor stored in A is upper or lower !> triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies the operation to be performed: !> = 'N': x := A*x !> = 'T': x := A'*x !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the diagonal blocks are unit !> matrices. If the diagonal blocks are assumed to be unit, !> then A = U or A = L, otherwise A = U*D or A = L*D. !> = 'U': Diagonal blocks are assumed to be unit matrices. !> = 'N': Diagonal blocks are assumed to be non-unit matrices. !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of vectors !> x to be multiplied by A. NRHS >= 0. !> |
| [in] | A | !> A 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 2-D triangular matrix. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | IPIV | !> IPIV 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 1-by-1 diagonal block. !> (If IPIV( k ) = k, no interchange was done). !> !> If IPIV(k) = IPIV(k-1) < 0, then rows and !> columns k-1 and -IPIV(k) were interchanged, !> D(k-1:k,k-1:k) is a 2-by-2 diagonal block. !> !> If UPLO = 'L': !> If IPIV(k) > 0, then rows and columns k and IPIV(k) !> were interchanged and D(k,k) is a 1-by-1 diagonal block. !> (If IPIV( k ) = k, no interchange was done). !> !> If IPIV(k) = IPIV(k+1) < 0, then rows and !> columns k+1 and -IPIV(k) were interchanged, !> D(k:k+1,k:k+1) is a 2-by-2 diagonal block. !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -k, the k-th argument had an illegal value !> |
Definition at line 151 of file clavsy.f.
| 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
!> !> CLAVSY_ROOK performs one of the matrix-vector operations !> x := A*x or x := A'*x, !> where x is an N element vector and A is one of the factors !> from the block U*D*U' or L*D*L' factorization computed by 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') !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the factor stored in A is upper or lower !> triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies the operation to be performed: !> = 'N': x := A*x !> = 'T': x := A'*x !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the diagonal blocks are unit !> matrices. If the diagonal blocks are assumed to be unit, !> then A = U or A = L, otherwise A = U*D or A = L*D. !> = 'U': Diagonal blocks are assumed to be unit matrices. !> = 'N': Diagonal blocks are assumed to be non-unit matrices. !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of vectors !> x to be multiplied by A. NRHS >= 0. !> |
| [in] | A | !> A 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 2-D triangular matrix. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | IPIV | !> IPIV 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 1-by-1 diagonal block. !> (If IPIV( k ) = k, no interchange was done). !> !> If IPIV(k) < 0 and IPIV(k-1) < 0, then rows and !> columns k and -IPIV(k) were interchanged and rows and !> columns k-1 and -IPIV(k-1) were inerchaged, !> D(k-1:k,k-1:k) is a 2-by-2 diagonal block. !> !> If UPLO = 'L': !> If IPIV(k) > 0, then rows and columns k and IPIV(k) !> were interchanged and D(k,k) is a 1-by-1 diagonal block. !> (If IPIV( k ) = k, no interchange was done). !> !> If IPIV(k) < 0 and IPIV(k+1) < 0, then rows and !> columns k and -IPIV(k) were interchanged and rows and !> columns k+1 and -IPIV(k+1) were inerchaged, !> D(k:k+1,k:k+1) is a 2-by-2 diagonal block. !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -k, the k-th argument had an illegal value !> |
Definition at line 153 of file clavsy_rook.f.
| 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
!> !> CLQT01 tests CGELQF, which computes the LQ factorization of an m-by-n !> matrix A, and partially tests CUNGLQ which forms the n-by-n !> orthogonal matrix Q. !> !> CLQT01 compares L with A*Q', and checks that Q is orthogonal. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the LQ factorization of A, as returned by CGELQF. !> See CGELQF for further details. !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,N) !> The n-by-n orthogonal matrix Q. !> |
| [out] | L | !> L is COMPLEX array, dimension (LDA,max(M,N)) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A, AF, Q and L. !> LDA >= max(M,N). !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by CGELQF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(M,N)) !> |
| [out] | RESULT | !> RESULT 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 ) !> |
Definition at line 124 of file clqt01.f.
| 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
!> !> CLQT02 tests CUNGLQ, which generates an m-by-n matrix Q with !> orthonornmal rows that is defined as the product of k elementary !> reflectors. !> !> Given the LQ factorization of an m-by-n matrix A, 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. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix Q to be generated. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix Q to be generated. !> N >= M >= 0. !> |
| [in] | K | !> K is INTEGER !> The number of elementary reflectors whose product defines the !> matrix Q. M >= K >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A which was factorized by CLQT01. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the LQ factorization of A, as returned by CGELQF. !> See CGELQF for further details. !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,N) !> |
| [out] | L | !> L is COMPLEX array, dimension (LDA,M) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A, AF, Q and L. LDA >= N. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (M) !> The scalar factors of the elementary reflectors corresponding !> to the LQ factorization in AF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT 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 ) !> |
Definition at line 133 of file clqt02.f.
| 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
!> !> 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. !>
| [in] | M | !> M is INTEGER !> The number of rows or columns of the matrix C; C is n-by-m if !> Q is applied from the left, or m-by-n if Q is applied from !> the right. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The order of the orthogonal matrix Q. N >= 0. !> |
| [in] | K | !> K is INTEGER !> The number of elementary reflectors whose product defines the !> orthogonal matrix Q. N >= K >= 0. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the LQ factorization of an m-by-n matrix, as !> returned by CGELQF. See CGELQF for further details. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDA,N) !> |
| [out] | CC | !> CC is COMPLEX array, dimension (LDA,N) !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,N) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays AF, C, CC, and Q. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors corresponding !> to the LQ factorization in AF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of WORK. LWORK must be at least M, and should be !> M*NB, where NB is the blocksize for this environment. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT is REAL array, dimension (4) !> The test ratios compare two techniques for multiplying a !> random matrix C by an n-by-n orthogonal matrix Q. !> RESULT(1) = norm( Q*C - Q*C ) / ( N * norm(C) * EPS ) !> RESULT(2) = norm( C*Q - C*Q ) / ( N * norm(C) * EPS ) !> RESULT(3) = norm( Q'*C - Q'*C )/ ( N * norm(C) * EPS ) !> RESULT(4) = norm( C*Q' - C*Q' )/ ( N * norm(C) * EPS ) !> |
Definition at line 134 of file clqt03.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | KD | !> KD is INTEGER !> The number of super-diagonals of the matrix A if UPLO = 'U', !> or the number of sub-diagonals if UPLO = 'L'. KD >= 0. !> |
| [in] | A | !> A 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. !> |
| [in] | LDA | !> LDA is INTEGER. !> The leading dimension of the array A. LDA >= max(1,KD+1). !> |
| [in] | AFAC | !> AFAC 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. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. !> LDAFAC >= max(1,KD+1). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS ) !> If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS ) !> |
Definition at line 118 of file cpbt01.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | KD | !> KD is INTEGER !> The number of super-diagonals of the matrix A if UPLO = 'U', !> or the number of sub-diagonals if UPLO = 'L'. KD >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides. NRHS >= 0. !> |
| [in] | A | !> A 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. !> |
| [in] | LDA | !> LDA is INTEGER. !> The leading dimension of the array A. LDA >= max(1,KD+1). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(B - A*X) / ( norm(A) * norm(X) * EPS ). !> |
Definition at line 134 of file cpbt02.f.
| 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
!> !> 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 !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X, B, and XACT, and the !> order of the matrix A. N >= 0. !> |
| [in] | KD | !> KD is INTEGER !> The number of super-diagonals of the matrix A if UPLO = 'U', !> or the number of sub-diagonals if UPLO = 'L'. KD >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0. !> |
| [in] | AB | !> AB 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 j-th column !> of A is stored in the j-th column of the array AB as follows: !> if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j; !> if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). !> |
| [in] | LDAB | !> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 169 of file cpbt05.f.
| subroutine cpot01 | ( | character | uplo, |
| integer | n, | ||
| complex, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| complex, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
CPOT01
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original Hermitian matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in,out] | AFAC | !> AFAC is COMPLEX array, dimension (LDAFAC,N) !> On entry, the factor L or U from the L * L**H or U**H * U !> factorization of A. !> Overwritten with the reconstructed matrix, and then with !> the difference L * L**H - A (or U**H * U - A). !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> If UPLO = 'L', norm(L * L**H - A) / ( N * norm(A) * EPS ) !> If UPLO = 'U', norm(U**H * U - A) / ( N * norm(A) * EPS ) !> |
Definition at line 105 of file cpot01.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B, the matrix of right hand sides. !> NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original Hermitian matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(B - A*X) / ( norm(A) * norm(X) * EPS ). !> |
Definition at line 125 of file cpot02.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original Hermitian matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in,out] | AINV | !> AINV 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. !> |
| [in] | LDAINV | !> LDAINV is INTEGER !> The leading dimension of the array AINV. LDAINV >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LDWORK,N) !> |
| [in] | LDWORK | !> LDWORK is INTEGER !> The leading dimension of the array WORK. LDWORK >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RCOND | !> RCOND is REAL !> The reciprocal of the condition number of A, computed as !> ( 1/norm(A) ) / norm(AINV). !> |
| [out] | RESID | !> RESID is REAL !> norm(I - A*AINV) / ( N * norm(A) * norm(AINV) * EPS ) !> |
Definition at line 124 of file cpot03.f.
| 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
!> !> 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 ) !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X, B, and XACT, and the !> order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0. !> |
| [in] | A | !> A 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. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 163 of file cpot05.f.
| subroutine cppt01 | ( | character | uplo, |
| integer | n, | ||
| complex, dimension( * ) | a, | ||
| complex, dimension( * ) | afac, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
CPPT01
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (N*(N+1)/2) !> The original Hermitian matrix A, stored as a packed !> triangular matrix. !> |
| [in,out] | AFAC | !> AFAC 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). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS ) !> If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS ) !> |
Definition at line 94 of file cppt01.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B, the matrix of right hand sides. !> NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (N*(N+1)/2) !> The original Hermitian matrix A, stored as a packed !> triangular matrix. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(B - A*X) / ( norm(A) * norm(X) * EPS ). !> |
Definition at line 121 of file cppt02.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (N*(N+1)/2) !> The original Hermitian matrix A, stored as a packed !> triangular matrix. !> |
| [in] | AINV | !> AINV is COMPLEX array, dimension (N*(N+1)/2) !> The (Hermitian) inverse of the matrix A, stored as a packed !> triangular matrix. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LDWORK,N) !> |
| [in] | LDWORK | !> LDWORK is INTEGER !> The leading dimension of the array WORK. LDWORK >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RCOND | !> RCOND is REAL !> The reciprocal of the condition number of A, computed as !> ( 1/norm(A) ) / norm(AINV). !> |
| [out] | RESID | !> RESID is REAL !> norm(I - A*AINV) / ( N * norm(A) * norm(AINV) * EPS ) !> |
Definition at line 108 of file cppt03.f.
| 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
!> !> 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 ) !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X, B, and XACT, and the !> order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0. !> |
| [in] | AP | !> AP 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 j-th column of A is stored !> in the array AP as follows: !> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; !> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 155 of file cppt05.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original Hermitian matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | AFAC | !> AFAC is COMPLEX array, dimension (LDAFAC,N) !> The factor L or U from the L*L' or U'*U !> factorization of A. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,N). !> |
| [out] | PERM | !> PERM 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) !> |
| [in] | LDPERM | !> LDPERM is INTEGER !> The leading dimension of the array PERM. !> LDAPERM >= max(1,N). !> |
| [in] | PIV | !> PIV is INTEGER array, dimension (N) !> PIV is such that the nonzero entries are !> P( PIV( K ), K ) = 1. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS ) !> If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS ) !> |
| [in] | RANK | !> RANK is INTEGER !> number of nonzero singular values of A. !> |
Definition at line 134 of file cpst01.f.
| subroutine cptt01 | ( | integer | n, |
| real, dimension( * ) | d, | ||
| complex, dimension( * ) | e, | ||
| real, dimension( * ) | df, | ||
| complex, dimension( * ) | ef, | ||
| complex, dimension( * ) | work, | ||
| real | resid ) |
CPTT01
!> !> 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. !>
| [in] | N | !> N is INTEGTER !> The order of the matrix A. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The n diagonal elements of the tridiagonal matrix A. !> |
| [in] | E | !> E is COMPLEX array, dimension (N-1) !> The (n-1) subdiagonal elements of the tridiagonal matrix A. !> |
| [in] | DF | !> DF is REAL array, dimension (N) !> The n diagonal elements of the factor L from the L*D*L' !> factorization of A. !> |
| [in] | EF | !> EF is COMPLEX array, dimension (N-1) !> The (n-1) subdiagonal elements of the factor L from the !> L*D*L' factorization of A. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (2*N) !> |
| [out] | RESID | !> RESID is REAL !> norm(L*D*L' - A) / (n * norm(A) * EPS) !> |
Definition at line 91 of file cptt01.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGTER !> The order of the matrix A. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices B and X. NRHS >= 0. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The n diagonal elements of the tridiagonal matrix A. !> |
| [in] | E | !> E is COMPLEX array, dimension (N-1) !> The (n-1) subdiagonal elements of the tridiagonal matrix A. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The n by nrhs matrix of solution vectors X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | RESID | !> RESID is REAL !> norm(B - A*X) / (norm(A) * norm(X) * EPS) !> |
Definition at line 114 of file cptt02.f.
| 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
!> !> 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 !>
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X, B, and XACT, and the !> order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The n diagonal elements of the tridiagonal matrix A. !> |
| [in] | E | !> E is COMPLEX array, dimension (N-1) !> The (n-1) subdiagonal elements of the tridiagonal matrix A. !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 148 of file cptt05.f.
| 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
!> !> CQLT01 tests CGEQLF, which computes the QL factorization of an m-by-n !> matrix A, and partially tests CUNGQL which forms the m-by-m !> orthogonal matrix Q. !> !> CQLT01 compares L with Q'*A, and checks that Q is orthogonal. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the QL factorization of A, as returned by CGEQLF. !> See CGEQLF for further details. !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,M) !> The m-by-m orthogonal matrix Q. !> |
| [out] | L | !> L is COMPLEX array, dimension (LDA,max(M,N)) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A, AF, Q and R. !> LDA >= max(M,N). !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by CGEQLF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT 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 ) !> |
Definition at line 124 of file cqlt01.f.
| 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
!> !> CQLT02 tests CUNGQL, which generates an m-by-n matrix Q with !> orthonornmal columns that is defined as the product of k elementary !> reflectors. !> !> Given the QL factorization of an m-by-n matrix A, CQLT02 generates !> the orthogonal matrix Q defined by the factorization of the last k !> columns of A; it compares L(m-n+1:m,n-k+1:n) with !> Q(1:m,m-n+1:m)'*A(1:m,n-k+1:n), and checks that the columns of Q are !> orthonormal. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix Q to be generated. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix Q to be generated. !> M >= N >= 0. !> |
| [in] | K | !> K is INTEGER !> The number of elementary reflectors whose product defines the !> matrix Q. N >= K >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A which was factorized by CQLT01. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the QL factorization of A, as returned by CGEQLF. !> See CGEQLF for further details. !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,N) !> |
| [out] | L | !> L is COMPLEX array, dimension (LDA,N) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A, AF, Q and L. LDA >= M. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (N) !> The scalar factors of the elementary reflectors corresponding !> to the QL factorization in AF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT 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 ) !> |
Definition at line 134 of file cqlt02.f.
| 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
!> !> 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. !>
| [in] | M | !> M is INTEGER !> The order of the orthogonal matrix Q. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of rows or columns of the matrix C; C is m-by-n if !> Q is applied from the left, or n-by-m if Q is applied from !> the right. N >= 0. !> |
| [in] | K | !> K is INTEGER !> The number of elementary reflectors whose product defines the !> orthogonal matrix Q. M >= K >= 0. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the QL factorization of an m-by-n matrix, as !> returned by CGEQLF. See CGEQLF for further details. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDA,N) !> |
| [out] | CC | !> CC is COMPLEX array, dimension (LDA,N) !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,M) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays AF, C, CC, and Q. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors corresponding !> to the QL factorization in AF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of WORK. LWORK must be at least M, and should be !> M*NB, where NB is the blocksize for this environment. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT is REAL array, dimension (4) !> The test ratios compare two techniques for multiplying a !> random matrix C by an m-by-m orthogonal matrix Q. !> RESULT(1) = norm( Q*C - Q*C ) / ( M * norm(C) * EPS ) !> RESULT(2) = norm( C*Q - C*Q ) / ( M * norm(C) * EPS ) !> RESULT(3) = norm( Q'*C - Q'*C )/ ( M * norm(C) * EPS ) !> RESULT(4) = norm( C*Q' - C*Q' )/ ( M * norm(C) * EPS ) !> |
Definition at line 134 of file cqlt03.f.
| 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
!> !> CQPT01 tests the QR-factorization with pivoting of a matrix A. The !> array AF contains the (possibly partial) QR-factorization of A, where !> the upper triangle of AF(1:k,1:k) is a partial triangular factor, !> the entries below the diagonal in the first k columns are the !> Householder vectors, and the rest of AF contains a partially updated !> matrix. !> !> This function returns ||A*P - Q*R||/(||norm(A)||*eps*M) !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrices A and AF. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrices A and AF. !> |
| [in] | K | !> K is INTEGER !> The number of columns of AF that have been reduced !> to upper triangular form. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA, N) !> The original matrix A. !> |
| [in] | AF | !> AF 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. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A and AF. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (K) !> Details of the Householder transformations as returned by !> CGEQPF. !> |
| [in] | JPVT | !> JPVT is INTEGER array, dimension (N) !> Pivot information as returned by CGEQPF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= M*N+N. !> |
Definition at line 118 of file cqpt01.f.
| 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
!> !> CQRT01 tests CGEQRF, which computes the QR factorization of an m-by-n !> matrix A, and partially tests CUNGQR which forms the m-by-m !> orthogonal matrix Q. !> !> CQRT01 compares R with Q'*A, and checks that Q is orthogonal. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the QR factorization of A, as returned by CGEQRF. !> See CGEQRF for further details. !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,M) !> The m-by-m orthogonal matrix Q. !> |
| [out] | R | !> R is COMPLEX array, dimension (LDA,max(M,N)) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A, AF, Q and R. !> LDA >= max(M,N). !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by CGEQRF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT 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 ) !> |
Definition at line 124 of file cqrt01.f.
| 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
!> !> CQRT01P tests CGEQRFP, which computes the QR factorization of an m-by-n !> matrix A, and partially tests CUNGQR which forms the m-by-m !> orthogonal matrix Q. !> !> CQRT01P compares R with Q'*A, and checks that Q is orthogonal. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the QR factorization of A, as returned by CGEQRFP. !> See CGEQRFP for further details. !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,M) !> The m-by-m orthogonal matrix Q. !> |
| [out] | R | !> R is COMPLEX array, dimension (LDA,max(M,N)) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A, AF, Q and R. !> LDA >= max(M,N). !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by CGEQRFP. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT 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 ) !> |
Definition at line 124 of file cqrt01p.f.
| 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
!> !> CQRT02 tests CUNGQR, which generates an m-by-n matrix Q with !> orthonornmal columns that is defined as the product of k elementary !> reflectors. !> !> Given the QR factorization of an m-by-n matrix A, 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. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix Q to be generated. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix Q to be generated. !> M >= N >= 0. !> |
| [in] | K | !> K is INTEGER !> The number of elementary reflectors whose product defines the !> matrix Q. N >= K >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A which was factorized by CQRT01. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the QR factorization of A, as returned by CGEQRF. !> See CGEQRF for further details. !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,N) !> |
| [out] | R | !> R is COMPLEX array, dimension (LDA,N) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A, AF, Q and R. LDA >= M. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (N) !> The scalar factors of the elementary reflectors corresponding !> to the QR factorization in AF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT 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 ) !> |
Definition at line 133 of file cqrt02.f.
| 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
!> !> 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. !>
| [in] | M | !> M is INTEGER !> The order of the orthogonal matrix Q. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of rows or columns of the matrix C; C is m-by-n if !> Q is applied from the left, or n-by-m if Q is applied from !> the right. N >= 0. !> |
| [in] | K | !> K is INTEGER !> The number of elementary reflectors whose product defines the !> orthogonal matrix Q. M >= K >= 0. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the QR factorization of an m-by-n matrix, as !> returned by CGEQRF. See CGEQRF for further details. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDA,N) !> |
| [out] | CC | !> CC is COMPLEX array, dimension (LDA,N) !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,M) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays AF, C, CC, and Q. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors corresponding !> to the QR factorization in AF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of WORK. LWORK must be at least M, and should be !> M*NB, where NB is the blocksize for this environment. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT is REAL array, dimension (4) !> The test ratios compare two techniques for multiplying a !> random matrix C by an m-by-m orthogonal matrix Q. !> RESULT(1) = norm( Q*C - Q*C ) / ( M * norm(C) * EPS ) !> RESULT(2) = norm( C*Q - C*Q ) / ( M * norm(C) * EPS ) !> RESULT(3) = norm( Q'*C - Q'*C )/ ( M * norm(C) * EPS ) !> RESULT(4) = norm( C*Q' - C*Q' )/ ( M * norm(C) * EPS ) !> |
Definition at line 134 of file cqrt03.f.
| subroutine cqrt04 | ( | integer | m, |
| integer | n, | ||
| integer | nb, | ||
| real, dimension(6) | result ) |
CQRT04
!> !> CQRT04 tests CGEQRT and CGEMQRT. !>
| [in] | M | !> M is INTEGER !> Number of rows in test matrix. !> |
| [in] | N | !> N is INTEGER !> Number of columns in test matrix. !> |
| [in] | NB | !> NB is INTEGER !> Block size of test matrix. NB <= Min(M,N). !> |
| [out] | RESULT | !> RESULT 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 | !> |
Definition at line 72 of file cqrt04.f.
| subroutine cqrt05 | ( | integer | m, |
| integer | n, | ||
| integer | l, | ||
| integer | nb, | ||
| real, dimension(6) | result ) |
CQRT05
!> !> CQRT05 tests CTPQRT and CTPMQRT. !>
| [in] | M | !> M is INTEGER !> Number of rows in lower part of the test matrix. !> |
| [in] | N | !> N is INTEGER !> Number of columns in test matrix. !> |
| [in] | L | !> L is INTEGER !> The number of rows of the upper trapezoidal part the !> lower test matrix. 0 <= L <= M. !> |
| [in] | NB | !> NB is INTEGER !> Block size of test matrix. NB <= N. !> |
| [out] | RESULT | !> RESULT 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 | !> |
Definition at line 79 of file cqrt05.f.
| real function cqrt11 | ( | integer | m, |
| integer | k, | ||
| complex, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| complex, dimension( * ) | tau, | ||
| complex, dimension( lwork ) | work, | ||
| integer | lwork ) |
CQRT11
!> !> 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 m-vector of the form !> [ 0 ... 0 1 x(k) ]', where x(k) is a vector of length m-k stored !> in A(k+1:m,k). !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. !> |
| [in] | K | !> K is INTEGER !> The number of columns of A whose subdiagonal entries !> contain information about orthogonal transformations. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,K) !> The (possibly partial) output of a QR reduction routine. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (K) !> The scaling factors tau for the elementary transformations as !> computed by the QR factorization routine. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= M*M + M. !> |
Definition at line 97 of file cqrt11.f.
| 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
!> !> 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)) !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The M-by-N matrix A. Only the upper trapezoid is referenced. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. !> |
| [in] | S | !> S is REAL array, dimension (min(M,N)) !> The singular values of the matrix A. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= M*N + 2*min(M,N) + !> max(M,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (4*min(M,N)) !> |
Definition at line 95 of file cqrt12.f.
| subroutine cqrt13 | ( | integer | scale, |
| integer | m, | ||
| integer | n, | ||
| complex, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real | norma, | ||
| integer, dimension( 4 ) | iseed ) |
CQRT13
!> !> CQRT13 generates a full-rank matrix that may be scaled to have large !> or small norm. !>
| [in] | SCALE | !> SCALE is INTEGER !> SCALE = 1: normally scaled matrix !> SCALE = 2: matrix scaled up !> SCALE = 3: matrix scaled down !> |
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. !> |
| [in] | N | !> N is INTEGER !> The number of columns of A. !> |
| [out] | A | !> A is COMPLEX array, dimension (LDA,N) !> The M-by-N matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. !> |
| [out] | NORMA | !> NORMA is REAL !> The one-norm of A. !> |
| [in,out] | ISEED | !> ISEED is integer array, dimension (4) !> Seed for random number generator !> |
Definition at line 90 of file cqrt13.f.
| 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
!> !> 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. !>
| [in] | 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'. !> |
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of X. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The M-by-N matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> If TRANS = 'N', the N-by-NRHS matrix X. !> IF TRANS = 'C', the M-by-NRHS matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. !> |
| [out] | WORK | !> WORK is COMPLEX array dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> length of workspace array required !> If TRANS = 'N', LWORK >= (M+NRHS)*(N+2); !> if TRANS = 'C', LWORK >= (N+NRHS)*(M+2). !> |
Definition at line 114 of file cqrt14.f.
| 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
!> !> CQRT15 generates a matrix with full or deficient rank and of various !> norms. !>
| [in] | SCALE | !> SCALE is INTEGER !> SCALE = 1: normally scaled matrix !> SCALE = 2: matrix scaled up !> SCALE = 3: matrix scaled down !> |
| [in] | RKSEL | !> RKSEL is INTEGER !> RKSEL = 1: full rank matrix !> RKSEL = 2: rank-deficient matrix !> |
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. !> |
| [in] | N | !> N is INTEGER !> The number of columns of A. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B. !> |
| [out] | A | !> A is COMPLEX array, dimension (LDA,N) !> The M-by-N matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. !> |
| [out] | B | !> B is COMPLEX array, dimension (LDB, NRHS) !> A matrix that is in the range space of matrix A. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. !> |
| [out] | S | !> S is REAL array, dimension MIN(M,N) !> Singular values of A. !> |
| [out] | RANK | !> RANK is INTEGER !> number of nonzero singular values of A. !> |
| [out] | NORMA | !> NORMA is REAL !> one-norm norm of A. !> |
| [out] | NORMB | !> NORMB is REAL !> one-norm norm of B. !> |
| [in,out] | ISEED | !> ISEED is integer array, dimension (4) !> seed for random number generator. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> length of work space required. !> LWORK >= MAX(M+MIN(M,N),NRHS*MIN(M,N),2*N+M) !> |
Definition at line 147 of file cqrt15.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B, the matrix of right hand sides. !> NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original M x N matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,M). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. If TRANS = 'N', !> LDX >= max(1,N); if TRANS = 'T' or 'C', LDX >= max(1,M). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. IF TRANS = 'N', !> LDB >= max(1,M); if TRANS = 'T' or 'C', LDB >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(B - A*X) / ( max(m,n) * norm(A) * norm(X) * EPS ). !> |
Definition at line 131 of file cqrt16.f.
| 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
!> !> CQRT17 computes the ratio !> !> norm(R**H * op(A)) / ( norm(A) * alpha * max(M,N,NRHS) * EPS ), !> !> where R = B - op(A)*X, op(A) is A or A**H, depending on TRANS, EPS !> is the machine epsilon, and !> !> alpha = norm(B) if IRESID = 1 (zero-residual problem) !> alpha = norm(R) if IRESID = 2 (otherwise). !> !> The norm used is the 1-norm. !>
| [in] | 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**H. !> |
| [in] | IRESID | !> IRESID is INTEGER !> IRESID = 1 indicates zero-residual problem. !> IRESID = 2 indicates non-zero residual. !> |
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. !> If TRANS = 'N', the number of rows of the matrix B. !> If TRANS = 'C', the number of rows of the matrix X. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. !> If TRANS = 'N', the number of rows of the matrix X. !> If TRANS = 'C', the number of rows of the matrix B. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X and B. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= M. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> If TRANS = 'N', the n-by-nrhs matrix X. !> If TRANS = 'C', the m-by-nrhs matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. !> If TRANS = 'N', LDX >= N. !> If TRANS = 'C', LDX >= M. !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> If TRANS = 'N', the m-by-nrhs matrix B. !> If TRANS = 'C', the n-by-nrhs matrix B. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. !> If TRANS = 'N', LDB >= M. !> If TRANS = 'C', LDB >= N. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDB,NRHS) !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= NRHS*(M+N). !> |
Definition at line 151 of file cqrt17.f.
| 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
!> !> CRQT01 tests CGERQF, which computes the RQ factorization of an m-by-n !> matrix A, and partially tests CUNGRQ which forms the n-by-n !> orthogonal matrix Q. !> !> CRQT01 compares R with A*Q', and checks that Q is orthogonal. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the RQ factorization of A, as returned by CGERQF. !> See CGERQF for further details. !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,N) !> The n-by-n orthogonal matrix Q. !> |
| [out] | R | !> R is COMPLEX array, dimension (LDA,max(M,N)) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A, AF, Q and L. !> LDA >= max(M,N). !> |
| [out] | TAU | !> TAU is COMPLEX array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by CGERQF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (max(M,N)) !> |
| [out] | RESULT | !> RESULT 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 ) !> |
Definition at line 124 of file crqt01.f.
| 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
!> !> CRQT02 tests CUNGRQ, which generates an m-by-n matrix Q with !> orthonornmal rows that is defined as the product of k elementary !> reflectors. !> !> Given the RQ factorization of an m-by-n matrix A, CRQT02 generates !> the orthogonal matrix Q defined by the factorization of the last k !> rows of A; it compares R(m-k+1:m,n-m+1:n) with !> A(m-k+1:m,1:n)*Q(n-m+1:n,1:n)', and checks that the rows of Q are !> orthonormal. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix Q to be generated. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix Q to be generated. !> N >= M >= 0. !> |
| [in] | K | !> K is INTEGER !> The number of elementary reflectors whose product defines the !> matrix Q. M >= K >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The m-by-n matrix A which was factorized by CRQT01. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the RQ factorization of A, as returned by CGERQF. !> See CGERQF for further details. !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,N) !> |
| [out] | R | !> R is COMPLEX array, dimension (LDA,M) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A, AF, Q and L. LDA >= N. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (M) !> The scalar factors of the elementary reflectors corresponding !> to the RQ factorization in AF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The dimension of the array WORK. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT 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 ) !> |
Definition at line 134 of file crqt02.f.
| 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
!> !> 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. !>
| [in] | M | !> M is INTEGER !> The number of rows or columns of the matrix C; C is n-by-m if !> Q is applied from the left, or m-by-n if Q is applied from !> the right. M >= 0. !> |
| [in] | N | !> N is INTEGER !> The order of the orthogonal matrix Q. N >= 0. !> |
| [in] | K | !> K is INTEGER !> The number of elementary reflectors whose product defines the !> orthogonal matrix Q. N >= K >= 0. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> Details of the RQ factorization of an m-by-n matrix, as !> returned by CGERQF. See CGERQF for further details. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDA,N) !> |
| [out] | CC | !> CC is COMPLEX array, dimension (LDA,N) !> |
| [out] | Q | !> Q is COMPLEX array, dimension (LDA,N) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays AF, C, CC, and Q. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors corresponding !> to the RQ factorization in AF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of WORK. LWORK must be at least M, and should be !> M*NB, where NB is the blocksize for this environment. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESULT | !> RESULT is REAL array, dimension (4) !> The test ratios compare two techniques for multiplying a !> random matrix C by an n-by-n orthogonal matrix Q. !> RESULT(1) = norm( Q*C - Q*C ) / ( N * norm(C) * EPS ) !> RESULT(2) = norm( C*Q - C*Q ) / ( N * norm(C) * EPS ) !> RESULT(3) = norm( Q'*C - Q'*C )/ ( N * norm(C) * EPS ) !> RESULT(4) = norm( C*Q' - C*Q' )/ ( N * norm(C) * EPS ) !> |
Definition at line 134 of file crqt03.f.
| 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
!> !> CRZT01 returns !> || A - R*Q || / ( M * eps * ||A|| ) !> for an upper trapezoidal A that was factored with CTZRZF. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrices A and AF. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrices A and AF. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original upper trapezoidal M by N matrix A. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> The output of CTZRZF for input matrix A. !> The lower triangle is not referenced. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays A and AF. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (M) !> Details of the Householder transformations as returned by !> CTZRZF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= m*n + m. !> |
Definition at line 96 of file crzt01.f.
| real function crzt02 | ( | integer | m, |
| integer | n, | ||
| complex, dimension( lda, * ) | af, | ||
| integer | lda, | ||
| complex, dimension( * ) | tau, | ||
| complex, dimension( lwork ) | work, | ||
| integer | lwork ) |
CRZT02
!> !> CRZT02 returns !> || I - Q'*Q || / ( M * eps) !> where the matrix Q is defined by the Householder transformations !> generated by CTZRZF. !>
| [in] | M | !> M is INTEGER !> The number of rows of the matrix AF. !> |
| [in] | N | !> N is INTEGER !> The number of columns of the matrix AF. !> |
| [in] | AF | !> AF is COMPLEX array, dimension (LDA,N) !> The output of CTZRZF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array AF. !> |
| [in] | TAU | !> TAU is COMPLEX array, dimension (M) !> Details of the Householder transformations as returned by !> CTZRZF. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> Length of WORK array. LWORK >= N*N+N. !> |
Definition at line 89 of file crzt02.f.
| 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
!> !> CSBMV performs the matrix-vector 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 super-diagonals. !>
!> 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 super-diagonals 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 super-diagonal 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 sub-diagonal 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. !>
Definition at line 150 of file csbmv.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (N*(N+1)/2) !> The original symmetric matrix A, stored as a packed !> triangular matrix. !> |
| [in] | AFAC | !> AFAC 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. !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CSPTRF. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID 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 ) !> |
Definition at line 111 of file cspt01.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B, the matrix of right hand sides. !> NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (N*(N+1)/2) !> The original complex symmetric matrix A, stored as a packed !> triangular matrix. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(B - A*X) / ( norm(A) * norm(X) * EPS ). !> |
Definition at line 121 of file cspt02.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (N*(N+1)/2) !> The original complex symmetric matrix A, stored as a packed !> triangular matrix. !> |
| [in] | AINV | !> AINV is COMPLEX array, dimension (N*(N+1)/2) !> The (symmetric) inverse of the matrix A, stored as a packed !> triangular matrix. !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LDW,N) !> |
| [in] | LDW | !> LDW is INTEGER !> The leading dimension of the array WORK. LDW >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RCOND | !> RCOND is REAL !> The reciprocal of the condition number of A, computed as !> ( 1/norm(A) ) / norm(AINV). !> |
| [out] | RESID | !> RESID is REAL !> norm(I - A*AINV) / ( N * norm(A) * norm(AINV) * EPS ) !> |
Definition at line 108 of file cspt03.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original complex symmetric matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | AFAC | !> AFAC 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. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,N). !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CSYTRF. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID 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 ) !> |
Definition at line 123 of file csyt01.f.
| subroutine csyt01_3 | ( | character | uplo, |
| integer | n, | ||
| complex, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| complex, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| complex, dimension( * ) | e, | ||
| integer, dimension( * ) | ipiv, | ||
| complex, dimension( ldc, * ) | c, | ||
| integer | ldc, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
CSYT01_3
!> !> CSYT01_3 reconstructs a symmetric indefinite matrix A from its !> block L*D*L' or U*D*U' factorization computed by CSYTRF_RK !> (or CSYTRF_BK) and computes the residual !> norm( C - A ) / ( N * norm(A) * EPS ), !> where C is the reconstructed matrix and EPS is the machine epsilon. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original symmetric matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | AFAC | !> AFAC is COMPLEX array, dimension (LDAFAC,N) !> Diagonal of the block diagonal matrix D and factors U or L !> as computed by CSYTRF_RK and CSYTRF_BK: !> a) ONLY diagonal elements of the symmetric block diagonal !> matrix D on the diagonal of A, i.e. D(k,k) = A(k,k); !> (superdiagonal (or subdiagonal) elements of D !> should be provided on entry in array E), and !> b) If UPLO = 'U': factor U in the superdiagonal part of A. !> If UPLO = 'L': factor L in the subdiagonal part of A. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. !> LDAFAC >= max(1,N). !> |
| [in] | E | !> E is COMPLEX array, dimension (N) !> On entry, contains the superdiagonal (or subdiagonal) !> elements of the symmetric block diagonal matrix D !> with 1-by-1 or 2-by-2 diagonal blocks, where !> If UPLO = 'U': E(i) = D(i-1,i),i=2:N, E(1) not referenced; !> If UPLO = 'L': E(i) = D(i+1,i),i=1:N-1, E(N) not referenced. !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CSYTRF_RK (or CSYTRF_BK). !> |
| [out] | C | !> C is COMPLEX array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID 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 ) !> |
Definition at line 139 of file csyt01_3.f.
| subroutine csyt01_aa | ( | 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
!> !> CSYT01 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 and EPS is the machine epsilon. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is REAL array, dimension (LDA,N) !> The original hermitian matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | AFAC | !> AFAC is REAL 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. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,N). !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CSYTRF. !> |
| [out] | C | !> C is REAL array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID 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 ) !> |
Definition at line 122 of file csyt01_aa.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original complex symmetric matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | AFAC | !> AFAC 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. !> |
| [in] | LDAFAC | !> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,N). !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from CSYTRF_ROOK. !> |
| [out] | C | !> C is COMPLEX array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID 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 ) !> |
Definition at line 123 of file csyt01_rook.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of B, the matrix of right hand sides. !> NRHS >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original complex symmetric matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in,out] | B | !> B 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. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(B - A*X) / ( norm(A) * norm(X) * EPS ). !> |
Definition at line 125 of file csyt02.f.
| 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
!> !> 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. !>
| [in] | 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 !> |
| [in] | N | !> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !> |
| [in] | A | !> A is COMPLEX array, dimension (LDA,N) !> The original complex symmetric matrix A. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N) !> |
| [in,out] | AINV | !> AINV 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. !> |
| [in] | LDAINV | !> LDAINV is INTEGER !> The leading dimension of the array AINV. LDAINV >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (LDWORK,N) !> |
| [in] | LDWORK | !> LDWORK is INTEGER !> The leading dimension of the array WORK. LDWORK >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RCOND | !> RCOND is REAL !> The reciprocal of the condition number of A, computed as !> RCOND = 1/ (norm(A) * norm(AINV)). !> |
| [out] | RESID | !> RESID is REAL !> norm(I - A*AINV) / ( N * norm(A) * norm(AINV) * EPS ) !> |
Definition at line 124 of file csyt03.f.
| 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
!> !> CTBT02 computes the residual for the computed solution to a !> triangular system of linear equations op(A)*X = B, when A is a !> triangular band matrix. The test ratio is the maximum over !> norm(b - op(A)*x) / ( ||op(A)||_1 * norm(x) * EPS ), !> where op(A) = A, A**T, or A**H, b is the column of B, x is the !> solution vector, and EPS is the machine epsilon. !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS 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) !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | KD | !> KD is INTEGER !> The number of superdiagonals or subdiagonals of the !> triangular band matrix A. KD >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices X and B. NRHS >= 0. !> |
| [in] | AB | !> AB 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 j-th column of A is stored !> in the j-th column of the array AB as follows: !> if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j; !> if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). !> |
| [in] | LDAB | !> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= max(1,KD+1). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (N) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(op(A)*x - b) / ( norm(op(A)) * norm(x) * EPS ). !> |
Definition at line 157 of file ctbt02.f.
| 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
!> !> 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. !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS 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) !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | KD | !> KD is INTEGER !> The number of superdiagonals or subdiagonals of the !> triangular band matrix A. KD >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices X and B. NRHS >= 0. !> |
| [in] | AB | !> AB 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 j-th column of A is stored !> in the j-th column of the array AB as follows: !> if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j; !> if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). !> |
| [in] | LDAB | !> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !> |
| [in] | SCALE | !> SCALE is REAL !> The scaling factor s used in solving the triangular system. !> |
| [in] | CNORM | !> CNORM is REAL array, dimension (N) !> The 1-norms of the columns of A, not counting the diagonal. !> |
| [in] | TSCAL | !> TSCAL is REAL !> The scaling factor used in computing the 1-norms in CNORM. !> CNORM actually contains the column norms of TSCAL*A. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(op(A)*x - s*b) / ( norm(op(A)) * norm(x) * EPS ). !> |
Definition at line 174 of file ctbt03.f.
| 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
!> !> 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 !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies the form of the system of equations. !> = 'N': A * X = B (No transpose) !> = 'T': A'* X = B (Transpose) !> = 'C': A'* X = B (Conjugate transpose = Transpose) !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X, B, and XACT, and the !> order of the matrix A. N >= 0. !> |
| [in] | KD | !> KD is INTEGER !> The number of super-diagonals of the matrix A if UPLO = 'U', !> or the number of sub-diagonals if UPLO = 'L'. KD >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0. !> |
| [in] | AB | !> AB 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 j-th column of A is stored !> in the j-th column of the array AB as follows: !> if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j; !> if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). !> If DIAG = 'U', the diagonal elements of A are not referenced !> and are assumed to be 1. !> |
| [in] | LDAB | !> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 187 of file ctbt05.f.
| 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
!> !> 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 non-zero to decide if !> underflow in the estimate is justified. !>
| [in] | 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)) ). !> |
| [in] | RCONDC | !> RCONDC is REAL !> The estimate of the reciprocal condition number computed by !> CTBCON. !> |
| [in] | UPLO | !> UPLO is CHARACTER !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | DIAG | !> DIAG is CHARACTER !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | KD | !> KD is INTEGER !> The number of superdiagonals or subdiagonals of the !> triangular band matrix A. KD >= 0. !> |
| [in] | AB | !> AB 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 j-th column of A is stored !> in the j-th column of the array AB as follows: !> if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j; !> if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). !> |
| [in] | LDAB | !> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RAT | !> RAT 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. !> |
Definition at line 124 of file ctbt06.f.
| subroutine ctpt01 | ( | character | uplo, |
| character | diag, | ||
| integer | n, | ||
| complex, dimension( * ) | ap, | ||
| complex, dimension( * ) | ainvp, | ||
| real | rcond, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
CTPT01
!> !> 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. !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | AP | !> AP is COMPLEX array, dimension (N*(N+1)/2) !> The original upper or lower triangular matrix A, packed !> columnwise in a linear array. The j-th column of A is stored !> in the array AP as follows: !> if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j; !> if UPLO = 'L', !> AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n. !> |
| [in] | AINVP | !> AINVP 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. !> |
| [out] | RCOND | !> RCOND is REAL !> The reciprocal condition number of A, computed as !> 1/(norm(A) * norm(AINV)). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> norm(A*AINV - I) / ( N * norm(A) * norm(AINV) * EPS ) !> |
Definition at line 108 of file ctpt01.f.
| 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
!> !> CTPT02 computes the residual for the computed solution to a !> triangular system of linear equations op(A)*X = B, when the !> triangular matrix A is stored in packed format. The test ratio is !> the maximum over !> norm(b - op(A)*x) / ( ||op(A)||_1 * norm(x) * EPS ), !> where op(A) = A, A**T, or A**H, b is the column of B, x is the !> solution vector, and EPS is the machine epsilon. !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS 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) !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices X and B. NRHS >= 0. !> |
| [in] | AP | !> AP is COMPLEX array, dimension (N*(N+1)/2) !> The upper or lower triangular matrix A, packed columnwise in !> a linear array. The j-th column of A is stored in the array !> AP as follows: !> if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j; !> if UPLO = 'L', !> AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (N) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(op(A)*B - B) / ( norm(op(A)) * norm(X) * EPS ). !> |
Definition at line 145 of file ctpt02.f.
| 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
!> !> 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. !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS 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) !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices X and B. NRHS >= 0. !> |
| [in] | AP | !> AP is COMPLEX array, dimension (N*(N+1)/2) !> The upper or lower triangular matrix A, packed columnwise in !> a linear array. The j-th column of A is stored in the array !> AP as follows: !> if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j; !> if UPLO = 'L', !> AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n. !> |
| [in] | SCALE | !> SCALE is REAL !> The scaling factor s used in solving the triangular system. !> |
| [in] | CNORM | !> CNORM is REAL array, dimension (N) !> The 1-norms of the columns of A, not counting the diagonal. !> |
| [in] | TSCAL | !> TSCAL is REAL !> The scaling factor used in computing the 1-norms in CNORM. !> CNORM actually contains the column norms of TSCAL*A. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(op(A)*x - s*b) / ( norm(op(A)) * norm(x) * EPS ). !> |
Definition at line 160 of file ctpt03.f.
| 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
!> !> 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 ) !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies the form of the system of equations. !> = 'N': A * X = B (No transpose) !> = 'T': A'* X = B (Transpose) !> = 'C': A'* X = B (Conjugate transpose = Transpose) !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X, B, and XACT, and the !> order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0. !> |
| [in] | AP | !> AP is COMPLEX array, dimension (N*(N+1)/2) !> The upper or lower triangular matrix A, packed columnwise in !> a linear array. The j-th column of A is stored in the array !> AP as follows: !> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; !> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. !> If DIAG = 'U', the diagonal elements of A are not referenced !> and are assumed to be 1. !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 173 of file ctpt05.f.
| subroutine ctpt06 | ( | real | rcond, |
| real | rcondc, | ||
| character | uplo, | ||
| character | diag, | ||
| integer | n, | ||
| complex, dimension( * ) | ap, | ||
| real, dimension( * ) | rwork, | ||
| real | rat ) |
CTPT06
!> !> 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 non-zero to decide if !> underflow in the estimate is justified. !>
| [in] | 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)) ). !> |
| [in] | RCONDC | !> RCONDC is REAL !> The estimate of the reciprocal condition number computed by !> CTPCON. !> |
| [in] | UPLO | !> UPLO is CHARACTER !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | DIAG | !> DIAG is CHARACTER !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | AP | !> AP is COMPLEX array, dimension (N*(N+1)/2) !> The upper or lower triangular matrix A, packed columnwise in !> a linear array. The j-th column of A is stored in the array !> AP as follows: !> if UPLO = 'U', AP((j-1)*j/2 + i) = A(i,j) for 1<=i<=j; !> if UPLO = 'L', !> AP((j-1)*(n-j) + j*(j+1)/2 + i-j) = A(i,j) for j<=i<=n. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RAT | !> RAT 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. !> |
Definition at line 111 of file ctpt06.f.
| 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
!> !> 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. !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | A | !> A 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. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | AINV | !> AINV 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. !> |
| [in] | LDAINV | !> LDAINV is INTEGER !> The leading dimension of the array AINV. LDAINV >= max(1,N). !> |
| [out] | RCOND | !> RCOND is REAL !> The reciprocal condition number of A, computed as !> 1/(norm(A) * norm(AINV)). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> norm(A*AINV - I) / ( N * norm(A) * norm(AINV) * EPS ) !> |
Definition at line 123 of file ctrt01.f.
| 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
!> !> CTRT02 computes the residual for the computed solution to a !> triangular system of linear equations op(A)*X = B, where A is a !> triangular matrix. The test ratio is the maximum over !> norm(b - op(A)*x) / ( ||op(A)||_1 * norm(x) * EPS ), !> where op(A) = A, A**T, or A**H, b is the column of B, x is the !> solution vector, and EPS is the machine epsilon. !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS 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) !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices X and B. NRHS >= 0. !> |
| [in] | A | !> A 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. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (N) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(op(A)*X - B) / ( norm(op(A)) * norm(X) * EPS ). !> |
Definition at line 153 of file ctrt02.f.
| 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
!> !> 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. !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS 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) !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrices X and B. NRHS >= 0. !> |
| [in] | A | !> A 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. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | SCALE | !> SCALE is REAL !> The scaling factor s used in solving the triangular system. !> |
| [in] | CNORM | !> CNORM is REAL array, dimension (N) !> The 1-norms of the columns of A, not counting the diagonal. !> |
| [in] | TSCAL | !> TSCAL is REAL !> The scaling factor used in computing the 1-norms in CNORM. !> CNORM actually contains the column norms of TSCAL*A. !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors for the system of linear !> equations. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | WORK | !> WORK is COMPLEX array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> The maximum over the number of right hand sides of !> norm(op(A)*x - s*b) / ( norm(op(A)) * norm(x) * EPS ). !> |
Definition at line 169 of file ctrt03.f.
| 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
!> !> 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 ) !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> Specifies the form of the system of equations. !> = 'N': A * X = B (No transpose) !> = 'T': A'* X = B (Transpose) !> = 'C': A'* X = B (Conjugate transpose = Transpose) !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The number of rows of the matrices X, B, and XACT, and the !> order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0. !> |
| [in] | A | !> A 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. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | B | !> B is COMPLEX array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in] | X | !> X is COMPLEX array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [in] | XACT | !> XACT is COMPLEX array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT. !> |
| [in] | LDXACT | !> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N). !> |
| [in] | FERR | !> FERR 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. !> |
| [in] | BERR | !> BERR 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). !> |
| [out] | RESLTS | !> RESLTS 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 + (*) ) !> |
Definition at line 180 of file ctrt05.f.
| subroutine ctrt06 | ( | real | rcond, |
| real | rcondc, | ||
| character | uplo, | ||
| character | diag, | ||
| integer | n, | ||
| complex, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | rwork, | ||
| real | rat ) |
CTRT06
!> !> 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 non-zero to decide if !> underflow in the estimate is justified. !>
| [in] | 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)) ). !> |
| [in] | RCONDC | !> RCONDC is REAL !> The estimate of the reciprocal condition number computed by !> CTRCON. !> |
| [in] | UPLO | !> UPLO is CHARACTER !> Specifies whether the matrix A is upper or lower triangular. !> = 'U': Upper triangular !> = 'L': Lower triangular !> |
| [in] | DIAG | !> DIAG is CHARACTER !> Specifies whether or not the matrix A is unit triangular. !> = 'N': Non-unit triangular !> = 'U': Unit triangular !> |
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | A | !> A 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. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (N) !> |
| [out] | RAT | !> RAT 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. !> |
Definition at line 120 of file ctrt06.f.
| subroutine cunhr_col01 | ( | integer | m, |
| integer | n, | ||
| integer | mb1, | ||
| integer | nb1, | ||
| integer | nb2, | ||
| real, dimension(6) | result ) |
CUNHR_COL01
!> !> CUNHR_COL01 tests CUNGTSQR and CUNHR_COL using CLATSQR, CGEMQRT. !> Therefore, CLATSQR (part of CGEQR), CGEMQRT (part of CGEMQR) !> have to be tested before this test. !> !>
| [in] | M | !> M is INTEGER !> Number of rows in test matrix. !> |
| [in] | N | !> N is INTEGER !> Number of columns in test matrix. !> |
| [in] | MB1 | !> MB1 is INTEGER !> Number of row in row block in an input test matrix. !> |
| [in] | NB1 | !> NB1 is INTEGER !> Number of columns in column block an input test matrix. !> |
| [in] | NB2 | !> NB2 is INTEGER !> Number of columns in column block in an output test matrix. !> |
| [out] | RESULT | !> RESULT is REAL array, dimension (6) !> Results of each of the six tests below. !> !> A is a m-by-n test input matrix to be factored. !> so that A = Q_gr * ( R ) !> ( 0 ), !> !> Q_qr is an implicit m-by-m unitary Q matrix, the result !> of factorization in blocked WY-representation, !> stored in CGEQRT output format. !> !> R is a n-by-n upper-triangular matrix, !> !> 0 is a (m-n)-by-n zero matrix, !> !> Q is an explicit m-by-m unitary matrix Q = Q_gr * I !> !> C is an m-by-n random matrix, !> !> D is an n-by-m random matrix. !> !> The six tests are: !> !> RESULT(1) = |R - (Q**H) * A| / ( eps * m * |A| ) !> is equivalent to test for | A - Q * R | / (eps * m * |A|), !> !> RESULT(2) = |I - (Q**H) * Q| / ( eps * m ), !> !> RESULT(3) = | Q_qr * C - Q * C | / (eps * m * |C|), !> !> RESULT(4) = | (Q_gr**H) * C - (Q**H) * C | / (eps * m * |C|) !> !> RESULT(5) = | D * Q_qr - D * Q | / (eps * m * |D|) !> !> RESULT(6) = | D * (Q_qr**H) - D * (Q**H) | / (eps * m * |D|), !> !> where: !> Q_qr * C, (Q_gr**H) * C, D * Q_qr, D * (Q_qr**H) are !> computed using CGEMQRT, !> !> Q * C, (Q**H) * C, D * Q, D * (Q**H) are !> computed using CGEMM. !> |
Definition at line 118 of file cunhr_col01.f.
| subroutine cunhr_col02 | ( | integer | m, |
| integer | n, | ||
| integer | mb1, | ||
| integer | nb1, | ||
| integer | nb2, | ||
| real, dimension(6) | result ) |
CUNHR_COL02
!> !> CUNHR_COL02 tests CUNGTSQR_ROW and CUNHR_COL inside CGETSQRHRT !> (which calls CLATSQR, CUNGTSQR_ROW and CUNHR_COL) using CGEMQRT. !> Therefore, CLATSQR (part of CGEQR), CGEMQRT (part of CGEMQR) !> have to be tested before this test. !> !>
| [in] | M | !> M is INTEGER !> Number of rows in test matrix. !> |
| [in] | N | !> N is INTEGER !> Number of columns in test matrix. !> |
| [in] | MB1 | !> MB1 is INTEGER !> Number of row in row block in an input test matrix. !> |
| [in] | NB1 | !> NB1 is INTEGER !> Number of columns in column block an input test matrix. !> |
| [in] | NB2 | !> NB2 is INTEGER !> Number of columns in column block in an output test matrix. !> |
| [out] | RESULT | !> RESULT is REAL array, dimension (6) !> Results of each of the six tests below. !> !> A is a m-by-n test input matrix to be factored. !> so that A = Q_gr * ( R ) !> ( 0 ), !> !> Q_qr is an implicit m-by-m unitary Q matrix, the result !> of factorization in blocked WY-representation, !> stored in CGEQRT output format. !> !> R is a n-by-n upper-triangular matrix, !> !> 0 is a (m-n)-by-n zero matrix, !> !> Q is an explicit m-by-m unitary matrix Q = Q_gr * I !> !> C is an m-by-n random matrix, !> !> D is an n-by-m random matrix. !> !> The six tests are: !> !> RESULT(1) = |R - (Q**H) * A| / ( eps * m * |A| ) !> is equivalent to test for | A - Q * R | / (eps * m * |A|), !> !> RESULT(2) = |I - (Q**H) * Q| / ( eps * m ), !> !> RESULT(3) = | Q_qr * C - Q * C | / (eps * m * |C|), !> !> RESULT(4) = | (Q_gr**H) * C - (Q**H) * C | / (eps * m * |C|) !> !> RESULT(5) = | D * Q_qr - D * Q | / (eps * m * |D|) !> !> RESULT(6) = | D * (Q_qr**H) - D * (Q**H) | / (eps * m * |D|), !> !> where: !> Q_qr * C, (Q_gr**H) * C, D * Q_qr, D * (Q_qr**H) are !> computed using CGEMQRT, !> !> Q * C, (Q**H) * C, D * Q, D * (Q**H) are !> computed using CGEMM. !> |
Definition at line 119 of file cunhr_col02.f.