Functions | |
| program | schkaa |
| SCHKAA | |
| subroutine | schkeq (thresh, nout) |
| SCHKEQ | |
| subroutine | schkgb (dotype, nm, mval, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, a, la, afac, lafac, b, x, xact, work, rwork, iwork, nout) |
| SCHKGB | |
| subroutine | schkge (dotype, nm, mval, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| SCHKGE | |
| subroutine | schkgt (dotype, nn, nval, nns, nsval, thresh, tsterr, a, af, b, x, xact, work, rwork, iwork, nout) |
| SCHKGT | |
| subroutine | schklq (dotype, nm, mval, nn, nval, nnb, nbval, nxval, nrhs, thresh, tsterr, nmax, a, af, aq, al, ac, b, x, xact, tau, work, rwork, nout) |
| SCHKLQ | |
| subroutine | schkorhr_col (thresh, tsterr, nm, mval, nn, nval, nnb, nbval, nout) |
| SCHKORHR_COL | |
| subroutine | schkpb (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| SCHKPB | |
| subroutine | schkpo (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| SCHKPO | |
| subroutine | schkpp (dotype, nn, nval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| SCHKPP | |
| subroutine | schkps (dotype, nn, nval, nnb, nbval, nrank, rankval, thresh, tsterr, nmax, a, afac, perm, piv, work, rwork, nout) |
| SCHKPS | |
| subroutine | schkpt (dotype, nn, nval, nns, nsval, thresh, tsterr, a, d, e, b, x, xact, work, rwork, nout) |
| SCHKPT | |
| subroutine | schkq3 (dotype, nm, mval, nn, nval, nnb, nbval, nxval, thresh, a, copya, s, tau, work, iwork, nout) |
| SCHKQ3 | |
| subroutine | schkql (dotype, nm, mval, nn, nval, nnb, nbval, nxval, nrhs, thresh, tsterr, nmax, a, af, aq, al, ac, b, x, xact, tau, work, rwork, nout) |
| SCHKQL | |
| subroutine | schkqr (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) |
| SCHKQR | |
| subroutine | schkqrt (thresh, tsterr, nm, mval, nn, nval, nnb, nbval, nout) |
| SCHKQRT | |
| subroutine | schkqrtp (thresh, tsterr, nm, mval, nn, nval, nnb, nbval, nout) |
| SCHKQRTP | |
| program | schkrfp |
| SCHKRFP | |
| subroutine | schkrq (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) |
| SCHKRQ | |
| subroutine | schksp (dotype, nn, nval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| SCHKSP | |
| subroutine | schksy (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| SCHKSY | |
| subroutine | schksy_rook (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| SCHKSY_ROOK | |
| subroutine | schktb (dotype, nn, nval, nns, nsval, thresh, tsterr, nmax, ab, ainv, b, x, xact, work, rwork, iwork, nout) |
| SCHKTB | |
| subroutine | schktp (dotype, nn, nval, nns, nsval, thresh, tsterr, nmax, ap, ainvp, b, x, xact, work, rwork, iwork, nout) |
| SCHKTP | |
| subroutine | schktr (dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, ainv, b, x, xact, work, rwork, iwork, nout) |
| SCHKTR | |
| subroutine | schktz (dotype, nm, mval, nn, nval, thresh, tsterr, a, copya, s, tau, work, nout) |
| SCHKTZ | |
| subroutine | sdrvgb (dotype, nn, nval, nrhs, thresh, tsterr, a, la, afb, lafb, asav, b, bsav, x, xact, s, work, rwork, iwork, nout) |
| SDRVGB | |
| subroutine | sdrvge (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, asav, b, bsav, x, xact, s, work, rwork, iwork, nout) |
| SDRVGE | |
| subroutine | sdrvgt (dotype, nn, nval, nrhs, thresh, tsterr, a, af, b, x, xact, work, rwork, iwork, nout) |
| SDRVGT | |
| subroutine | sdrvls (dotype, nm, mval, nn, nval, nns, nsval, nnb, nbval, nxval, thresh, tsterr, a, copya, b, copyb, c, s, copys, nout) |
| SDRVLS | |
| subroutine | sdrvpb (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, asav, b, bsav, x, xact, s, work, rwork, iwork, nout) |
| SDRVPB | |
| subroutine | sdrvpo (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, asav, b, bsav, x, xact, s, work, rwork, iwork, nout) |
| SDRVPO | |
| subroutine | sdrvpp (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, asav, b, bsav, x, xact, s, work, rwork, iwork, nout) |
| SDRVPP | |
| subroutine | sdrvpt (dotype, nn, nval, nrhs, thresh, tsterr, a, d, e, b, x, xact, work, rwork, nout) |
| SDRVPT | |
| subroutine | sdrvrf1 (nout, nn, nval, thresh, a, lda, arf, work) |
| SDRVRF1 | |
| subroutine | sdrvrf2 (nout, nn, nval, a, lda, arf, ap, asav) |
| SDRVRF2 | |
| subroutine | sdrvrf3 (nout, nn, nval, thresh, a, lda, arf, b1, b2, s_work_slange, s_work_sgeqrf, tau) |
| SDRVRF3 | |
| subroutine | sdrvrf4 (nout, nn, nval, thresh, c1, c2, ldc, crf, a, lda, s_work_slange) |
| SDRVRF4 | |
| subroutine | sdrvrfp (nout, nn, nval, nns, nsval, nnt, ntval, thresh, a, asav, afac, ainv, b, bsav, xact, x, arf, arfinv, s_work_slatms, s_work_spot01, s_temp_spot02, s_temp_spot03, s_work_slansy, s_work_spot02, s_work_spot03) |
| SDRVRFP | |
| subroutine | sdrvsp (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| SDRVSP | |
| subroutine | sdrvsy (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout) |
| SDRVSY | |
| subroutine | sdrvsy_rk (dotype, nn, nval, nrhs, thresh, tsterr, nmax, a, afac, e, ainv, b, x, xact, work, rwork, iwork, nout) |
| SDRVSY_RK | |
| subroutine | sebchvxx (thresh, path) |
| SEBCHVXX | |
| subroutine | serrge (path, nunit) |
| SERRGE | |
| subroutine | serrgt (path, nunit) |
| SERRGT | |
| subroutine | serrlq (path, nunit) |
| SERRLQ | |
| subroutine | serrls (path, nunit) |
| SERRLS | |
| subroutine | serrpo (path, nunit) |
| SERRPO | |
| subroutine | serrps (path, nunit) |
| SERRPS | |
| subroutine | serrql (path, nunit) |
| SERRQL | |
| subroutine | serrqp (path, nunit) |
| SERRQP | |
| subroutine | serrqr (path, nunit) |
| SERRQR | |
| subroutine | serrqrt (path, nunit) |
| SERRQRT | |
| subroutine | serrqrtp (path, nunit) |
| SERRQRTP | |
| subroutine | serrrfp (nunit) |
| SERRRFP | |
| subroutine | serrrq (path, nunit) |
| SERRRQ | |
| subroutine | serrsy (path, nunit) |
| SERRSY | |
| subroutine | serrtr (path, nunit) |
| SERRTR | |
| subroutine | serrtz (path, nunit) |
| SERRTZ | |
| subroutine | serrvx (path, nunit) |
| SERRVX | |
| subroutine | sgbt01 (m, n, kl, ku, a, lda, afac, ldafac, ipiv, work, resid) |
| SGBT01 | |
| subroutine | sgbt02 (trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, rwork, resid) |
| SGBT02 | |
| subroutine | sgbt05 (trans, n, kl, ku, nrhs, ab, ldab, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) |
| SGBT05 | |
| subroutine | sgelqs (m, n, nrhs, a, lda, tau, b, ldb, work, lwork, info) |
| SGELQS | |
| logical function | sgennd (m, n, a, lda) |
| SGENND | |
| subroutine | sgeqls (m, n, nrhs, a, lda, tau, b, ldb, work, lwork, info) |
| SGEQLS | |
| subroutine | sgeqrs (m, n, nrhs, a, lda, tau, b, ldb, work, lwork, info) |
| SGEQRS | |
| subroutine | sgerqs (m, n, nrhs, a, lda, tau, b, ldb, work, lwork, info) |
| SGERQS | |
| subroutine | sget01 (m, n, a, lda, afac, ldafac, ipiv, rwork, resid) |
| SGET01 | |
| subroutine | sget02 (trans, m, n, nrhs, a, lda, x, ldx, b, ldb, rwork, resid) |
| SGET02 | |
| subroutine | sget03 (n, a, lda, ainv, ldainv, work, ldwork, rwork, rcond, resid) |
| SGET03 | |
| subroutine | sget04 (n, nrhs, x, ldx, xact, ldxact, rcond, resid) |
| SGET04 | |
| real function | sget06 (rcond, rcondc) |
| SGET06 | |
| subroutine | sget07 (trans, n, nrhs, a, lda, b, ldb, x, ldx, xact, ldxact, ferr, chkferr, berr, reslts) |
| SGET07 | |
| subroutine | sgtt01 (n, dl, d, du, dlf, df, duf, du2, ipiv, work, ldwork, rwork, resid) |
| SGTT01 | |
| subroutine | sgtt02 (trans, n, nrhs, dl, d, du, x, ldx, b, ldb, resid) |
| SGTT02 | |
| subroutine | sgtt05 (trans, n, nrhs, dl, d, du, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) |
| SGTT05 | |
| subroutine | slahilb (n, nrhs, a, lda, x, ldx, b, ldb, work, info) |
| SLAHILB | |
| subroutine | slaord (job, n, x, incx) |
| SLAORD | |
| subroutine | slaptm (n, nrhs, alpha, d, e, x, ldx, beta, b, ldb) |
| SLAPTM | |
| subroutine | slarhs (path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info) |
| SLARHS | |
| subroutine | slatb4 (path, imat, m, n, type, kl, ku, anorm, mode, cndnum, dist) |
| SLATB4 | |
| subroutine | slatb5 (path, imat, n, type, kl, ku, anorm, mode, cndnum, dist) |
| SLATB5 | |
| subroutine | slattb (imat, uplo, trans, diag, iseed, n, kd, ab, ldab, b, work, info) |
| SLATTB | |
| subroutine | slattp (imat, uplo, trans, diag, iseed, n, a, b, work, info) |
| SLATTP | |
| subroutine | slattr (imat, uplo, trans, diag, iseed, n, a, lda, b, work, info) |
| SLATTR | |
| subroutine | slavsp (uplo, trans, diag, n, nrhs, a, ipiv, b, ldb, info) |
| SLAVSP | |
| subroutine | slavsy (uplo, trans, diag, n, nrhs, a, lda, ipiv, b, ldb, info) |
| SLAVSY | |
| subroutine | slavsy_rook (uplo, trans, diag, n, nrhs, a, lda, ipiv, b, ldb, info) |
| SLAVSY_ROOK | |
| subroutine | slqt01 (m, n, a, af, q, l, lda, tau, work, lwork, rwork, result) |
| SLQT01 | |
| subroutine | slqt02 (m, n, k, a, af, q, l, lda, tau, work, lwork, rwork, result) |
| SLQT02 | |
| subroutine | slqt03 (m, n, k, af, c, cc, q, lda, tau, work, lwork, rwork, result) |
| SLQT03 | |
| subroutine | sorhr_col01 (m, n, mb1, nb1, nb2, result) |
| SORHR_COL01 | |
| subroutine | sorhr_col02 (m, n, mb1, nb1, nb2, result) |
| SORHR_COL02 | |
| subroutine | spbt01 (uplo, n, kd, a, lda, afac, ldafac, rwork, resid) |
| SPBT01 | |
| subroutine | spbt02 (uplo, n, kd, nrhs, a, lda, x, ldx, b, ldb, rwork, resid) |
| SPBT02 | |
| subroutine | spbt05 (uplo, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) |
| SPBT05 | |
| subroutine | spot01 (uplo, n, a, lda, afac, ldafac, rwork, resid) |
| SPOT01 | |
| subroutine | spot02 (uplo, n, nrhs, a, lda, x, ldx, b, ldb, rwork, resid) |
| SPOT02 | |
| subroutine | spot03 (uplo, n, a, lda, ainv, ldainv, work, ldwork, rwork, rcond, resid) |
| SPOT03 | |
| subroutine | spot05 (uplo, n, nrhs, a, lda, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) |
| SPOT05 | |
| subroutine | sppt01 (uplo, n, a, afac, rwork, resid) |
| SPPT01 | |
| subroutine | sppt02 (uplo, n, nrhs, a, x, ldx, b, ldb, rwork, resid) |
| SPPT02 | |
| subroutine | sppt03 (uplo, n, a, ainv, work, ldwork, rwork, rcond, resid) |
| SPPT03 | |
| subroutine | sppt05 (uplo, n, nrhs, ap, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) |
| SPPT05 | |
| subroutine | spst01 (uplo, n, a, lda, afac, ldafac, perm, ldperm, piv, rwork, resid, rank) |
| SPST01 | |
| subroutine | sptt01 (n, d, e, df, ef, work, resid) |
| SPTT01 | |
| subroutine | sptt02 (n, nrhs, d, e, x, ldx, b, ldb, resid) |
| SPTT02 | |
| subroutine | sptt05 (n, nrhs, d, e, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) |
| SPTT05 | |
| subroutine | sqlt01 (m, n, a, af, q, l, lda, tau, work, lwork, rwork, result) |
| SQLT01 | |
| subroutine | sqlt02 (m, n, k, a, af, q, l, lda, tau, work, lwork, rwork, result) |
| SQLT02 | |
| subroutine | sqlt03 (m, n, k, af, c, cc, q, lda, tau, work, lwork, rwork, result) |
| SQLT03 | |
| real function | sqpt01 (m, n, k, a, af, lda, tau, jpvt, work, lwork) |
| SQPT01 | |
| subroutine | sqrt01 (m, n, a, af, q, r, lda, tau, work, lwork, rwork, result) |
| SQRT01 | |
| subroutine | sqrt01p (m, n, a, af, q, r, lda, tau, work, lwork, rwork, result) |
| SQRT01P | |
| subroutine | sqrt02 (m, n, k, a, af, q, r, lda, tau, work, lwork, rwork, result) |
| SQRT02 | |
| subroutine | sqrt03 (m, n, k, af, c, cc, q, lda, tau, work, lwork, rwork, result) |
| SQRT03 | |
| subroutine | sqrt04 (m, n, nb, result) |
| SQRT04 | |
| subroutine | sqrt05 (m, n, l, nb, result) |
| SQRT05 | |
| real function | sqrt11 (m, k, a, lda, tau, work, lwork) |
| SQRT11 | |
| real function | sqrt12 (m, n, a, lda, s, work, lwork) |
| SQRT12 | |
| subroutine | sqrt13 (scale, m, n, a, lda, norma, iseed) |
| SQRT13 | |
| real function | sqrt14 (trans, m, n, nrhs, a, lda, x, ldx, work, lwork) |
| SQRT14 | |
| subroutine | sqrt15 (scale, rksel, m, n, nrhs, a, lda, b, ldb, s, rank, norma, normb, iseed, work, lwork) |
| SQRT15 | |
| subroutine | sqrt16 (trans, m, n, nrhs, a, lda, x, ldx, b, ldb, rwork, resid) |
| SQRT16 | |
| real function | sqrt17 (trans, iresid, m, n, nrhs, a, lda, x, ldx, b, ldb, c, work, lwork) |
| SQRT17 | |
| subroutine | srqt01 (m, n, a, af, q, r, lda, tau, work, lwork, rwork, result) |
| SRQT01 | |
| subroutine | srqt02 (m, n, k, a, af, q, r, lda, tau, work, lwork, rwork, result) |
| SRQT02 | |
| subroutine | srqt03 (m, n, k, af, c, cc, q, lda, tau, work, lwork, rwork, result) |
| SRQT03 | |
| real function | srzt01 (m, n, a, af, lda, tau, work, lwork) |
| SRZT01 | |
| real function | srzt02 (m, n, af, lda, tau, work, lwork) |
| SRZT02 | |
| subroutine | sspt01 (uplo, n, a, afac, ipiv, c, ldc, rwork, resid) |
| SSPT01 | |
| subroutine | ssyt01 (uplo, n, a, lda, afac, ldafac, ipiv, c, ldc, rwork, resid) |
| SSYT01 | |
| subroutine | ssyt01_3 (uplo, n, a, lda, afac, ldafac, e, ipiv, c, ldc, rwork, resid) |
| SSYT01_3 | |
| subroutine | ssyt01_rook (uplo, n, a, lda, afac, ldafac, ipiv, c, ldc, rwork, resid) |
| SSYT01_ROOK | |
| subroutine | stbt02 (uplo, trans, diag, n, kd, nrhs, ab, ldab, x, ldx, b, ldb, work, resid) |
| STBT02 | |
| subroutine | stbt03 (uplo, trans, diag, n, kd, nrhs, ab, ldab, scale, cnorm, tscal, x, ldx, b, ldb, work, resid) |
| STBT03 | |
| subroutine | stbt05 (uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) |
| STBT05 | |
| subroutine | stbt06 (rcond, rcondc, uplo, diag, n, kd, ab, ldab, work, rat) |
| STBT06 | |
| subroutine | stpt01 (uplo, diag, n, ap, ainvp, rcond, work, resid) |
| STPT01 | |
| subroutine | stpt02 (uplo, trans, diag, n, nrhs, ap, x, ldx, b, ldb, work, resid) |
| STPT02 | |
| subroutine | stpt03 (uplo, trans, diag, n, nrhs, ap, scale, cnorm, tscal, x, ldx, b, ldb, work, resid) |
| STPT03 | |
| subroutine | stpt05 (uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) |
| STPT05 | |
| subroutine | stpt06 (rcond, rcondc, uplo, diag, n, ap, work, rat) |
| STPT06 | |
| subroutine | strt01 (uplo, diag, n, a, lda, ainv, ldainv, rcond, work, resid) |
| STRT01 | |
| subroutine | strt02 (uplo, trans, diag, n, nrhs, a, lda, x, ldx, b, ldb, work, resid) |
| STRT02 | |
| subroutine | strt03 (uplo, trans, diag, n, nrhs, a, lda, scale, cnorm, tscal, x, ldx, b, ldb, work, resid) |
| STRT03 | |
| subroutine | strt05 (uplo, trans, diag, n, nrhs, a, lda, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) |
| STRT05 | |
| subroutine | strt06 (rcond, rcondc, uplo, diag, n, a, lda, work, rat) |
| STRT06 | |
This is the group of real LAPACK TESTING LIN routines.
| program schkaa |
SCHKAA
!> !> SCHKAA is the main test program for the REAL LAPACK !> linear equation routines !> !> The program must be driven by a short data file. The first 15 records !> (not including the first comment line) specify problem dimensions !> and program options using list-directed input. The remaining lines !> specify the LAPACK test paths and the number of matrix types to use !> in testing. An annotated example of a data file can be obtained by !> deleting the first 3 characters from the following 40 lines: !> Data file for testing REAL LAPACK linear eqn. routines !> 7 Number of values of M !> 0 1 2 3 5 10 16 Values of M (row dimension) !> 7 Number of values of N !> 0 1 2 3 5 10 16 Values of N (column dimension) !> 1 Number of values of NRHS !> 2 Values of NRHS (number of right hand sides) !> 5 Number of values of NB !> 1 3 3 3 20 Values of NB (the blocksize) !> 1 0 5 9 1 Values of NX (crossover point) !> 3 Number of values of RANK !> 30 50 90 Values of rank (as a % of N) !> 20.0 Threshold value of test ratio !> T Put T to test the LAPACK routines !> T Put T to test the driver routines !> T Put T to test the error exits !> SGE 11 List types on next line if 0 < NTYPES < 11 !> SGB 8 List types on next line if 0 < NTYPES < 8 !> SGT 12 List types on next line if 0 < NTYPES < 12 !> SPO 9 List types on next line if 0 < NTYPES < 9 !> SPS 9 List types on next line if 0 < NTYPES < 9 !> SPP 9 List types on next line if 0 < NTYPES < 9 !> SPB 8 List types on next line if 0 < NTYPES < 8 !> SPT 12 List types on next line if 0 < NTYPES < 12 !> SSY 10 List types on next line if 0 < NTYPES < 10 !> SSR 10 List types on next line if 0 < NTYPES < 10 !> SSK 10 List types on next line if 0 < NTYPES < 10 !> SSA 10 List types on next line if 0 < NTYPES < 10 !> SS2 10 List types on next line if 0 < NTYPES < 10 !> SSP 10 List types on next line if 0 < NTYPES < 10 !> STR 18 List types on next line if 0 < NTYPES < 18 !> STP 18 List types on next line if 0 < NTYPES < 18 !> STB 17 List types on next line if 0 < NTYPES < 17 !> SQR 8 List types on next line if 0 < NTYPES < 8 !> SRQ 8 List types on next line if 0 < NTYPES < 8 !> SLQ 8 List types on next line if 0 < NTYPES < 8 !> SQL 8 List types on next line if 0 < NTYPES < 8 !> SQP 6 List types on next line if 0 < NTYPES < 6 !> STZ 3 List types on next line if 0 < NTYPES < 3 !> SLS 6 List types on next line if 0 < NTYPES < 6 !> SEQ !> SQT !> SQX !> STS !> SHH !>
!> 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 schkeq | ( | real | thresh, |
| integer | nout ) |
SCHKEQ
!> !> SCHKEQ tests SGEEQU, SGBEQU, SPOEQU, SPPEQU and SPBEQU !>
| [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 schkeq.f.
| subroutine schkgb | ( | 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, | ||
| real, dimension( * ) | a, | ||
| integer | la, | ||
| real, dimension( * ) | afac, | ||
| integer | lafac, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKGB
!> !> SCHKGB tests SGBTRF, -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 REAL 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 REAL 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 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,NMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (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 188 of file schkgb.f.
| subroutine schkge | ( | 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, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKGE
!> !> SCHKGE tests SGETRF, -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 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(2*NMAX,2*NSMAX+NWORK)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 182 of file schkge.f.
| subroutine schkgt | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | af, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKGT
!> !> SCHKGT tests SGTTRF, -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 REAL array, dimension (NMAX*4) !> |
| [out] | AF | !> AF is REAL array, dimension (NMAX*4) !> |
| [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 144 of file schkgt.f.
| subroutine schklq | ( | 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, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | af, | ||
| real, dimension( * ) | aq, | ||
| real, dimension( * ) | al, | ||
| real, dimension( * ) | ac, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer | nout ) |
SCHKLQ
!> !> SCHKLQ tests SGELQF, SORGLQ and SORMLQ. !>
| [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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AF | !> AF is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AQ | !> AQ is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AL | !> AL is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AC | !> AC 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] | TAU | !> TAU is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is REAL 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 schklq.f.
| subroutine schkorhr_col | ( | real | thresh, |
| logical | tsterr, | ||
| integer | nm, | ||
| integer, dimension( * ) | mval, | ||
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nout ) |
SCHKORHR_COL
!> !> SCHKORHR_COL tests: !> 1) SORGTSQR and SORHR_COL using SLATSQR, SGEMQRT, !> 2) SORGTSQR_ROW and SORHR_COL inside DGETSQRHRT !> (which calls SLATSQR, SORGTSQR_ROW and SORHR_COL) using SGEMQRT. !> Therefore, SLATSQR (part of SGEQR), SGEMQRT (part of SGEMQR) !> 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 schkorhr_col.f.
| subroutine schkpb | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKPB
!> !> SCHKPB tests SPBTRF, -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)) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 169 of file schkpb.f.
| subroutine schkpo | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKPO
!> !> SCHKPO tests SPOTRF, -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 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 (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 169 of file schkpo.f.
| subroutine schkpp | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKPP
!> !> SCHKPP tests SPPTRF, -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 REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AINV | !> AINV is REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [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 (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 160 of file schkpp.f.
| subroutine schkps | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nrank, | ||
| integer, dimension( * ) | rankval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | perm, | ||
| integer, dimension( * ) | piv, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer | nout ) |
SCHKPS
!> !> SCHKPS tests SPSTRF. !>
| [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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | PERM | !> PERM is REAL array, dimension (NMAX*NMAX) !> |
| [out] | PIV | !> PIV is INTEGER array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is REAL 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 schkps.f.
| subroutine schkpt | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer | nout ) |
SCHKPT
!> !> SCHKPT tests SPTTRF, -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 REAL array, dimension (NMAX*2) !> |
| [out] | D | !> D is REAL array, dimension (NMAX*2) !> |
| [out] | E | !> E is REAL array, dimension (NMAX*2) !> |
| [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 144 of file schkpt.f.
| subroutine schkq3 | ( | logical, dimension( * ) | dotype, |
| integer | nm, | ||
| integer, dimension( * ) | mval, | ||
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer, dimension( * ) | nxval, | ||
| real | thresh, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | copya, | ||
| real, dimension( * ) | s, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( * ) | work, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKQ3
!> !> SCHKQ3 tests SGEQP3. !>
| [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 REAL 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 REAL array, dimension (MMAX*NMAX) !> |
| [out] | S | !> S is REAL array, dimension !> (min(MMAX,NMAX)) !> |
| [out] | TAU | !> TAU is REAL array, dimension (MMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (MMAX*NMAX + 4*NMAX + MMAX) !> |
| [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 schkq3.f.
| subroutine schkql | ( | 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, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | af, | ||
| real, dimension( * ) | aq, | ||
| real, dimension( * ) | al, | ||
| real, dimension( * ) | ac, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer | nout ) |
SCHKQL
!> !> SCHKQL tests SGEQLF, SORGQL and SORMQL. !>
| [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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AF | !> AF is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AQ | !> AQ is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AL | !> AL is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AC | !> AC 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] | TAU | !> TAU is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is REAL 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 schkql.f.
| subroutine schkqr | ( | 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, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | af, | ||
| real, dimension( * ) | aq, | ||
| real, dimension( * ) | ar, | ||
| real, dimension( * ) | ac, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKQR
!> !> SCHKQR tests SGEQRF, SORGQR and SORMQR. !>
| [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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AF | !> AF is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AQ | !> AQ is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AR | !> AR is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AC | !> AC 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] | TAU | !> TAU is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is REAL 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 schkqr.f.
| subroutine schkqrt | ( | real | thresh, |
| logical | tsterr, | ||
| integer | nm, | ||
| integer, dimension( * ) | mval, | ||
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nout ) |
SCHKQRT
!> !> SCHKQRT tests SGEQRT and SGEMQRT. !>
| [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 98 of file schkqrt.f.
| subroutine schkqrtp | ( | real | thresh, |
| logical | tsterr, | ||
| integer | nm, | ||
| integer, dimension( * ) | mval, | ||
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nout ) |
SCHKQRTP
!> !> SCHKQRTP tests STPQRT and STPMQRT. !>
| [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 schkqrtp.f.
| program schkrfp |
SCHKRFP
!> !> SCHKRFP is the main test program for the REAL 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 schkrq | ( | 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, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | af, | ||
| real, dimension( * ) | aq, | ||
| real, dimension( * ) | ar, | ||
| real, dimension( * ) | ac, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKRQ
!> !> SCHKRQ tests SGERQF, SORGRQ and SORMRQ. !>
| [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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AF | !> AF is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AQ | !> AQ is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AR | !> AR is REAL array, dimension (NMAX*NMAX) !> |
| [out] | AC | !> AC 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] | TAU | !> TAU is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is REAL 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 schkrq.f.
| subroutine schksp | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKSP
!> !> SCHKSP tests SSPTRF, -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 REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AINV | !> AINV is REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [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(2,NSMAX)) !> |
| [out] | RWORK | !> RWORK is REAL array, !> dimension (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 160 of file schksp.f.
| subroutine schksy | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKSY
!> !> SCHKSY tests SSYTRF, -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 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 schksy.f.
| subroutine schksy_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, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKSY_ROOK
!> !> SCHKSY_ROOK tests SSYTRF_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 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 168 of file schksy_rook.f.
| subroutine schktb | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | ab, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKTB
!> !> SCHKTB tests STBTRS, -RFS, and -CON, and SLATBS. !>
| [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 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 (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 152 of file schktb.f.
| subroutine schktp | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | ap, | ||
| real, dimension( * ) | ainvp, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKTP
!> !> SCHKTP tests STPTRI, -TRS, -RFS, and -CON, and SLATPS !>
| [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 REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AINVP | !> AINVP is REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [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] | IWORK | !> IWORK is INTEGER array, dimension (NMAX) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(NMAX,2*NSMAX)) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 154 of file schktp.f.
| subroutine schktr | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nnb, | ||
| integer, dimension( * ) | nbval, | ||
| integer | nns, | ||
| integer, dimension( * ) | nsval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SCHKTR
!> !> SCHKTR tests STRTRI, -TRS, -RFS, and -CON, and SLATRS !>
| [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 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 (NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 164 of file schktr.f.
| subroutine schktz | ( | logical, dimension( * ) | dotype, |
| integer | nm, | ||
| integer, dimension( * ) | mval, | ||
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | copya, | ||
| real, dimension( * ) | s, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( * ) | work, | ||
| integer | nout ) |
SCHKTZ
!> !> SCHKTZ tests STZRZF. !>
| [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 REAL 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 REAL array, dimension (MMAX*NMAX) !> |
| [out] | S | !> S is REAL array, dimension !> (min(MMAX,NMAX)) !> |
| [out] | TAU | !> TAU is REAL array, dimension (MMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (MMAX*NMAX + 4*NMAX + MMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 130 of file schktz.f.
| subroutine sdrvgb | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| real, dimension( * ) | a, | ||
| integer | la, | ||
| real, dimension( * ) | afb, | ||
| integer | lafb, | ||
| real, dimension( * ) | asav, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | bsav, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | s, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SDRVGB
SDRVGBX
!> !> SDRVGB tests the driver routines SGBSV 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 REAL 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 REAL 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 REAL array, dimension (LA) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV 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] | S | !> S is REAL array, dimension (2*NMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (NMAX*max(3,NRHS,NMAX)) !> |
| [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. !> |
!> !> SDRVGB tests the driver routines SGBSV, -SVX, and -SVXX. !> !> Note that this file is used only when the XBLAS are available, !> otherwise sdrvgb.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 REAL 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 REAL 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 REAL array, dimension (LA) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV 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] | S | !> S is REAL array, dimension (2*NMAX) !> |
| [out] | WORK | !> WORK is REAL 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 (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 169 of file sdrvgb.f.
| subroutine sdrvge | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | asav, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | bsav, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | s, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SDRVGE
SDRVGEX
!> !> SDRVGE tests the driver routines SGESV 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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is REAL array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV 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] | S | !> S is REAL array, dimension (2*NMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (2*NRHS+NMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
!> !> SDRVGE tests the driver routines SGESV, -SVX, and -SVXX. !> !> Note that this file is used only when the XBLAS are available, !> otherwise sdrvge.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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is REAL array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV 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] | S | !> S is REAL array, dimension (2*NMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (NMAX*max(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (2*NRHS+NMAX) !> |
| [out] | IWORK | !> IWORK is INTEGER array, dimension (2*NMAX) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 161 of file sdrvge.f.
| subroutine sdrvgt | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | af, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SDRVGT
!> !> SDRVGT tests SGTSV 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 REAL array, dimension (NMAX*4) !> |
| [out] | AF | !> AF is REAL array, dimension (NMAX*4) !> |
| [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(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(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 sdrvgt.f.
| subroutine sdrvls | ( | 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, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | copya, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | copyb, | ||
| real, dimension( * ) | c, | ||
| real, dimension( * ) | s, | ||
| real, dimension( * ) | copys, | ||
| integer | nout ) |
SDRVLS
!> !> SDRVLS tests the least squares driver routines SGELS, SGETSLS, SGELSS, SGELSY, !> and SGELSD. !>
| [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 orthogonal matrices !> and D has random entries (> 0.1) taken from a uniform !> distribution (0,1). A is full rank. !> j=2: The same of 1, but A is scaled up. !> j=3: The same of 1, but A is scaled down. !> j=4: A = U*D*V where U and V are random orthogonal matrices !> and D has 3*min(M,N)/4 random entries (> 0.1) taken !> from a uniform distribution (0,1) and the remaining !> entries set to 0. A is rank-deficient. !> j=5: The same of 4, but A is scaled up. !> j=6: The same of 5, but A is scaled down. !> |
| [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] | 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] | 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. !> |
| [in] | TSTERR | !> TSTERR is LOGICAL !> Flag that indicates whether error exits are to be tested. !> |
| [out] | A | !> A is REAL 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 REAL array, dimension (MMAX*NMAX) !> |
| [out] | B | !> B is REAL 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 REAL array, dimension (MMAX*NSMAX) !> |
| [out] | C | !> C is REAL 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 sdrvls.f.
| subroutine sdrvpb | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | asav, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | bsav, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | s, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SDRVPB
!> !> SDRVPB tests the driver routines SPBSV 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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is REAL array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV 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] | S | !> S is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (NMAX*max(3,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 161 of file sdrvpb.f.
| subroutine sdrvpo | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | asav, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | bsav, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | s, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SDRVPO
SDRVPOX
!> !> SDRVPO tests the driver routines SPOSV 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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is REAL array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV 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] | S | !> S is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (NMAX*max(3,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. !> |
!> !> SDRVPO tests the driver routines SPOSV, -SVX, and -SVXX. !> !> Note that this file is used only when the XBLAS are available, !> otherwise sdrvpo.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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV is REAL array, dimension (NMAX*NMAX) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV 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] | S | !> S is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (NMAX*max(3,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 161 of file sdrvpo.f.
| subroutine sdrvpp | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | asav, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | bsav, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | s, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SDRVPP
!> !> SDRVPP tests the driver routines SPPSV 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 REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | ASAV | !> ASAV is REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | B | !> B is REAL array, dimension (NMAX*NRHS) !> |
| [out] | BSAV | !> BSAV 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] | S | !> S is REAL array, dimension (NMAX) !> |
| [out] | WORK | !> WORK is REAL array, dimension !> (NMAX*max(3,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 164 of file sdrvpp.f.
| subroutine sdrvpt | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer | nout ) |
SDRVPT
!> !> SDRVPT tests SPTSV 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 REAL array, dimension (NMAX*2) !> |
| [out] | D | !> D is REAL array, dimension (NMAX*2) !> |
| [out] | E | !> E is REAL array, dimension (NMAX*2) !> |
| [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(3,NRHS)) !> |
| [out] | RWORK | !> RWORK is REAL array, dimension !> (max(NMAX,2*NRHS)) !> |
| [in] | NOUT | !> NOUT is INTEGER !> The unit number for output. !> |
Definition at line 138 of file sdrvpt.f.
| subroutine sdrvrf1 | ( | integer | nout, |
| integer | nn, | ||
| integer, dimension( nn ) | nval, | ||
| real | thresh, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | arf, | ||
| real, dimension( * ) | work ) |
SDRVRF1
!> !> SDRVRF1 tests the LAPACK RFP routines: !> SLANSF !>
| [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 REAL array, dimension (LDA,NMAX) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,NMAX). !> |
| [out] | ARF | !> ARF is REAL array, dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | WORK | !> WORK is REAL array, dimension ( NMAX ) !> |
Definition at line 93 of file sdrvrf1.f.
| subroutine sdrvrf2 | ( | integer | nout, |
| integer | nn, | ||
| integer, dimension( nn ) | nval, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | arf, | ||
| real, dimension(*) | ap, | ||
| real, dimension( lda, * ) | asav ) |
SDRVRF2
!> !> SDRVRF2 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 REAL array, dimension (LDA,NMAX) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,NMAX). !> |
| [out] | ARF | !> ARF is REAL array, dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | AP | !> AP is REAL array, dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | ASAV | !> ASAV is REAL array, dimension (LDA,NMAX) !> |
Definition at line 88 of file sdrvrf2.f.
| subroutine sdrvrf3 | ( | integer | nout, |
| integer | nn, | ||
| integer, dimension( nn ) | nval, | ||
| real | thresh, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | arf, | ||
| real, dimension( lda, * ) | b1, | ||
| real, dimension( lda, * ) | b2, | ||
| real, dimension( * ) | s_work_slange, | ||
| real, dimension( * ) | s_work_sgeqrf, | ||
| real, dimension( * ) | tau ) |
SDRVRF3
!> !> SDRVRF3 tests the LAPACK RFP routines: !> STFSM !>
| [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 REAL array, dimension (LDA,NMAX) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,NMAX). !> |
| [out] | ARF | !> ARF is REAL array, dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | B1 | !> B1 is REAL array, dimension (LDA,NMAX) !> |
| [out] | B2 | !> B2 is REAL array, dimension (LDA,NMAX) !> |
| [out] | S_WORK_SLANGE | !> S_WORK_SLANGE is REAL array, dimension (NMAX) !> |
| [out] | S_WORK_SGEQRF | !> S_WORK_SGEQRF is REAL array, dimension (NMAX) !> |
| [out] | TAU | !> TAU is REAL array, dimension (NMAX) !> |
Definition at line 116 of file sdrvrf3.f.
| subroutine sdrvrf4 | ( | integer | nout, |
| integer | nn, | ||
| integer, dimension( nn ) | nval, | ||
| real | thresh, | ||
| real, dimension( ldc, * ) | c1, | ||
| real, dimension( ldc, *) | c2, | ||
| integer | ldc, | ||
| real, dimension( * ) | crf, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | s_work_slange ) |
SDRVRF4
!> !> SDRVRF4 tests the LAPACK RFP routines: !> SSFRK !>
| [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 REAL array, !> dimension (LDC,NMAX) !> |
| [out] | C2 | !> C2 is REAL array, !> dimension (LDC,NMAX) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array A. !> LDA >= max(1,NMAX). !> |
| [out] | CRF | !> CRF is REAL array, !> dimension ((NMAX*(NMAX+1))/2). !> |
| [out] | A | !> A is REAL array, !> dimension (LDA,NMAX) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,NMAX). !> |
| [out] | S_WORK_SLANGE | !> S_WORK_SLANGE is REAL array, dimension (NMAX) !> |
Definition at line 116 of file sdrvrf4.f.
| subroutine sdrvrfp | ( | integer | nout, |
| integer | nn, | ||
| integer, dimension( nn ) | nval, | ||
| integer | nns, | ||
| integer, dimension( nns ) | nsval, | ||
| integer | nnt, | ||
| integer, dimension( nnt ) | ntval, | ||
| real | thresh, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | asav, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | bsav, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | arf, | ||
| real, dimension( * ) | arfinv, | ||
| real, dimension( * ) | s_work_slatms, | ||
| real, dimension( * ) | s_work_spot01, | ||
| real, dimension( * ) | s_temp_spot02, | ||
| real, dimension( * ) | s_temp_spot03, | ||
| real, dimension( * ) | s_work_slansy, | ||
| real, dimension( * ) | s_work_spot02, | ||
| real, dimension( * ) | s_work_spot03 ) |
SDRVRFP
!> !> SDRVRFP tests the LAPACK RFP routines: !> SPFTRF, SPFTRS, and SPFTRI. !> !> This testing routine follow the same tests as DDRVPO (test for the full !> format Symmetric Positive Definite solver). !> !> The tests are performed in Full Format, conversion back and forth from !> full format to RFP format are performed using the routines STRTTF and !> STFTTR. !> !> 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 SPFTRF, 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 SPFTRF 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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | ASAV | !> ASAV 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*MAXRHS) !> |
| [out] | BSAV | !> BSAV is REAL array, dimension (NMAX*MAXRHS) !> |
| [out] | XACT | !> XACT is REAL array, dimension (NMAX*MAXRHS) !> |
| [out] | X | !> X is REAL array, dimension (NMAX*MAXRHS) !> |
| [out] | ARF | !> ARF is REAL array, dimension ((NMAX*(NMAX+1))/2) !> |
| [out] | ARFINV | !> ARFINV is REAL array, dimension ((NMAX*(NMAX+1))/2) !> |
| [out] | S_WORK_SLATMS | !> S_WORK_SLATMS is REAL array, dimension ( 3*NMAX ) !> |
| [out] | S_WORK_SPOT01 | !> S_WORK_SPOT01 is REAL array, dimension ( NMAX ) !> |
| [out] | S_TEMP_SPOT02 | !> S_TEMP_SPOT02 is REAL array, dimension ( NMAX*MAXRHS ) !> |
| [out] | S_TEMP_SPOT03 | !> S_TEMP_SPOT03 is REAL array, dimension ( NMAX*NMAX ) !> |
| [out] | S_WORK_SLANSY | !> S_WORK_SLANSY is REAL array, dimension ( NMAX ) !> |
| [out] | S_WORK_SPOT02 | !> S_WORK_SPOT02 is REAL array, dimension ( NMAX ) !> |
| [out] | S_WORK_SPOT03 | !> S_WORK_SPOT03 is REAL array, dimension ( NMAX ) !> |
Definition at line 232 of file sdrvrfp.f.
| subroutine sdrvsp | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SDRVSP
!> !> SDRVSP tests the driver routines SSPSV 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 REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [out] | AINV | !> AINV is REAL array, dimension !> (NMAX*(NMAX+1)/2) !> |
| [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 153 of file sdrvsp.f.
| subroutine sdrvsy | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SDRVSY
SDRVSYX
!> !> SDRVSY tests the driver routines SSYSV 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 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. !> |
!> !> SDRVSY tests the driver routines SSYSV, -SVX, and -SVXX !> !> Note that this file is used only when the XBLAS are available, !> otherwise sdrvsy.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 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 149 of file sdrvsy.f.
| subroutine sdrvsy_rk | ( | logical, dimension( * ) | dotype, |
| integer | nn, | ||
| integer, dimension( * ) | nval, | ||
| integer | nrhs, | ||
| real | thresh, | ||
| logical | tsterr, | ||
| integer | nmax, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | e, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | x, | ||
| real, dimension( * ) | xact, | ||
| real, dimension( * ) | work, | ||
| real, dimension( * ) | rwork, | ||
| integer, dimension( * ) | iwork, | ||
| integer | nout ) |
SDRVSY_RK
!> SDRVSY_RK tests the driver routines SSYSV_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 REAL array, dimension (NMAX*NMAX) !> |
| [out] | AFAC | !> AFAC is REAL array, dimension (NMAX*NMAX) !> |
| [out] | E | !> E is REAL array, dimension (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 153 of file sdrvsy_rk.f.
| subroutine sebchvxx | ( | real | thresh, |
| character*3 | path ) |
SEBCHVXX
!> !> SEBCHVXX will run S**SVXX on a series of Hilbert matrices and then !> compare the error bounds returned by SGESVXX 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, SGESVXX 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 SGESVXX. Let RCONDc be the RCOND returned by SGESVXX !> 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 )). !> !> 7. 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 sebchvxx.f.
| subroutine serrge | ( | character*3 | path, |
| integer | nunit ) |
SERRGE
SERRGEX
!> !> SERRGE tests the error exits for the REAL 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. !> |
!> !> SERRGE tests the error exits for the REAL routines !> for general matrices. !> !> Note that this file is used only when the XBLAS are available, !> otherwise serrge.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 serrge.f.
| subroutine serrgt | ( | character*3 | path, |
| integer | nunit ) |
SERRGT
!> !> SERRGT tests the error exits for the REAL 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 serrgt.f.
| subroutine serrlq | ( | character*3 | path, |
| integer | nunit ) |
SERRLQ
!> !> SERRLQ tests the error exits for the REAL 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 serrlq.f.
| subroutine serrls | ( | character*3 | path, |
| integer | nunit ) |
SERRLS
!> !> SERRLS tests the error exits for the REAL least squares !> driver routines (SGELS, SGELSS, SGELSY, SGELSD). !>
| [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 serrls.f.
| subroutine serrpo | ( | character*3 | path, |
| integer | nunit ) |
SERRPO
SERRPOX
!> !> SERRPO tests the error exits for the REAL routines !> for symmetric 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. !> |
!> !> SERRPO tests the error exits for the REAL routines !> for symmetric positive definite matrices. !> !> Note that this file is used only when the XBLAS are available, !> otherwise serrpo.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 serrpo.f.
| subroutine serrps | ( | character*3 | path, |
| integer | nunit ) |
SERRPS
!> !> SERRPS tests the error exits for the REAL routines !> for SPSTRF.. !>
| [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 serrps.f.
| subroutine serrql | ( | character*3 | path, |
| integer | nunit ) |
SERRQL
!> !> SERRQL tests the error exits for the REAL 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 serrql.f.
| subroutine serrqp | ( | character*3 | path, |
| integer | nunit ) |
SERRQP
!> !> SERRQP tests the error exits for SGEQP3. !>
| [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 serrqp.f.
| subroutine serrqr | ( | character*3 | path, |
| integer | nunit ) |
SERRQR
!> !> SERRQR tests the error exits for the REAL 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 serrqr.f.
| subroutine serrqrt | ( | character*3 | path, |
| integer | nunit ) |
SERRQRT
!> !> SERRQRT tests the error exits for the REAL 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 serrqrt.f.
| subroutine serrqrtp | ( | character*3 | path, |
| integer | nunit ) |
SERRQRTP
!> !> SERRQRTP 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 serrqrtp.f.
| subroutine serrrfp | ( | integer | nunit | ) |
SERRRFP
!> !> SERRRFP tests the error exits for the REAL driver routines !> for solving linear systems of equations. !> !> SDRVRFP tests the REAL LAPACK RFP routines: !> STFSM, STFTRI, SSFRK, STFTTP, STFTTR, SPFTRF, SPFTRS, STPTTF, !> STPTTR, STRTTF, and STRTTP !>
| [in] | NUNIT | !> NUNIT is INTEGER !> The unit number for output. !> |
Definition at line 51 of file serrrfp.f.
| subroutine serrrq | ( | character*3 | path, |
| integer | nunit ) |
SERRRQ
!> !> SERRRQ tests the error exits for the REAL 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 serrrq.f.
| subroutine serrsy | ( | character*3 | path, |
| integer | nunit ) |
SERRSY
SERRSYX
!> !> SERRSY tests the error exits for the REAL 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. !> |
!> !> SERRSY tests the error exits for the REAL routines !> for symmetric indefinite matrices. !> !> Note that this file is used only when the XBLAS are available, !> otherwise serrsy.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 serrsy.f.
| subroutine serrtr | ( | character*3 | path, |
| integer | nunit ) |
SERRTR
!> !> SERRTR tests the error exits for the REAL 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 54 of file serrtr.f.
| subroutine serrtz | ( | character*3 | path, |
| integer | nunit ) |
SERRTZ
!> !> SERRTZ tests the error exits for STZRZF. !>
| [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 serrtz.f.
| subroutine serrvx | ( | character*3 | path, |
| integer | nunit ) |
SERRVX
SERRVXX
!> !> SERRVX tests the error exits for the REAL 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 serrvx.f.
| subroutine sgbt01 | ( | integer | m, |
| integer | n, | ||
| integer | kl, | ||
| integer | ku, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
SGBT01
!> !> SGBT01 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 REAL 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 REAL 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 !> SGBTRF. 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 SGBTRF 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 SGBTRF. !> |
| [out] | WORK | !> WORK is REAL 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 sgbt01.f.
| subroutine sgbt02 | ( | character | trans, |
| integer | m, | ||
| integer | n, | ||
| integer | kl, | ||
| integer | ku, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SGBT02
!> !> SGBT02 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 or A**T, depending on TRANS, and EPS is the !> machine epsilon. !> The norm used is the 1-norm. !>
| [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] | 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 REAL 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 REAL 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 REAL 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 147 of file sgbt02.f.
| subroutine sgbt05 | ( | character | trans, |
| integer | n, | ||
| integer | kl, | ||
| integer | ku, | ||
| integer | nrhs, | ||
| real, dimension( ldab, * ) | ab, | ||
| integer | ldab, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
SGBT05
!> !> SGBT05 tests the error bounds from iterative refinement for the !> computed solution to a system of equations op(A)*X = B, where A is a !> general band matrix of order n with kl subdiagonals and ku !> superdiagonals and op(A) = A or A**T, depending on TRANS. !> !> RESLTS(1) = test of the error bound !> = norm(X - XACT) / ( norm(X) * FERR ) !> !> A large value is returned if this ratio is not less than one. !> !> RESLTS(2) = residual from the iterative refinement routine !> = the maximum of BERR / ( NZ*EPS + (*) ), where !> (*) = NZ*UNFL / (min_i (abs(op(A))*abs(X) +abs(b))_i ) !> and NZ = max. number of nonzeros in any row of A, plus 1 !>
| [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 REAL 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 REAL 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 REAL 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 REAL 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 sgbt05.f.
| subroutine sgelqs | ( | integer | m, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| integer | info ) |
SGELQS
!> !> Compute a minimum-norm solution !> min || A*X - B || !> using the LQ factorization !> A = L*Q !> computed by SGELQF. !>
| [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 REAL array, dimension (LDA,N) !> Details of the LQ factorization of the original matrix A as !> returned by SGELQF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= M. !> |
| [in] | TAU | !> TAU is REAL array, dimension (M) !> Details of the orthogonal matrix Q. !> |
| [in,out] | B | !> B is REAL 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 REAL 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 sgelqs.f.
| logical function sgennd | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda ) |
SGENND
!> !> SGENND tests that its argument has a 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 REAL array, dimension (LDA, N) !> The matrix. !> |
| [in] | LDA | !> LDA is INTEGER !> Leading dimension of A. !> |
Definition at line 67 of file sgennd.f.
| subroutine sgeqls | ( | integer | m, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| integer | info ) |
SGEQLS
!> !> Solve the least squares problem !> min || A*X - B || !> using the QL factorization !> A = Q*L !> computed by SGEQLF. !>
| [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 REAL array, dimension (LDA,N) !> Details of the QL factorization of the original matrix A as !> returned by SGEQLF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= M. !> |
| [in] | TAU | !> TAU is REAL array, dimension (N) !> Details of the orthogonal matrix Q. !> |
| [in,out] | B | !> B is REAL 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 REAL 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 sgeqls.f.
| subroutine sgeqrs | ( | integer | m, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| integer | info ) |
SGEQRS
!> !> Solve the least squares problem !> min || A*X - B || !> using the QR factorization !> A = Q*R !> computed by SGEQRF. !>
| [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 REAL array, dimension (LDA,N) !> Details of the QR factorization of the original matrix A as !> returned by SGEQRF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= M. !> |
| [in] | TAU | !> TAU is REAL array, dimension (N) !> Details of the orthogonal matrix Q. !> |
| [in,out] | B | !> B is REAL 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 REAL 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 sgeqrs.f.
| subroutine sgerqs | ( | integer | m, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| integer | info ) |
SGERQS
!> !> Compute a minimum-norm solution !> min || A*X - B || !> using the RQ factorization !> A = R*Q !> computed by SGERQF. !>
| [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 REAL array, dimension (LDA,N) !> Details of the RQ factorization of the original matrix A as !> returned by SGERQF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= M. !> |
| [in] | TAU | !> TAU is REAL array, dimension (M) !> Details of the orthogonal matrix Q. !> |
| [in,out] | B | !> B is REAL 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 REAL 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 sgerqs.f.
| subroutine sget01 | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SGET01
!> !> SGET01 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 REAL 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 REAL 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 SGETRF. !> 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 SGETRF. !> |
| [out] | RWORK | !> RWORK is REAL array, dimension (M) !> |
| [out] | RESID | !> RESID is REAL !> norm(L*U - A) / ( N * norm(A) * EPS ) !> |
Definition at line 105 of file sget01.f.
| subroutine sget02 | ( | character | trans, |
| integer | m, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SGET02
!> !> SGET02 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 or A**T, depending on TRANS, and EPS is the !> machine epsilon. !> The norm used is the 1-norm. !>
| [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] | 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 REAL 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 REAL 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 REAL 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 133 of file sget02.f.
| subroutine sget03 | ( | integer | n, |
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldainv, * ) | ainv, | ||
| integer | ldainv, | ||
| real, dimension( ldwork, * ) | work, | ||
| integer | ldwork, | ||
| real, dimension( * ) | rwork, | ||
| real | rcond, | ||
| real | resid ) |
SGET03
!> !> SGET03 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 REAL 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 REAL 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 REAL 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 107 of file sget03.f.
| subroutine sget04 | ( | integer | n, |
| integer | nrhs, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real | rcond, | ||
| real | resid ) |
SGET04
!> !> SGET04 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 REAL 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 REAL 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 sget04.f.
| real function sget06 | ( | real | rcond, |
| real | rcondc ) |
SGET06
!> !> SGET06 computes a test ratio to compare two values for RCOND. !>
| [in] | RCOND | !> RCOND is REAL !> The estimate of the reciprocal of the condition number of A, !> as computed by SGECON. !> |
| [in] | RCONDC | !> RCONDC is REAL !> The reciprocal of the condition number of A, computed as !> ( 1/norm(A) ) / norm(inv(A)). !> |
Definition at line 54 of file sget06.f.
| subroutine sget07 | ( | character | trans, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| logical | chkferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
SGET07
!> !> SGET07 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 REAL 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 REAL 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 REAL 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 REAL 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 163 of file sget07.f.
| subroutine sgtt01 | ( | integer | n, |
| real, dimension( * ) | dl, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | du, | ||
| real, dimension( * ) | dlf, | ||
| real, dimension( * ) | df, | ||
| real, dimension( * ) | duf, | ||
| real, dimension( * ) | du2, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( ldwork, * ) | work, | ||
| integer | ldwork, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SGTT01
!> !> SGTT01 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 REAL array, dimension (N-1) !> The (n-1) sub-diagonal elements of A. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The diagonal elements of A. !> |
| [in] | DU | !> DU is REAL array, dimension (N-1) !> The (n-1) super-diagonal elements of A. !> |
| [in] | DLF | !> DLF is REAL array, dimension (N-1) !> The (n-1) multipliers that define the matrix L from the !> LU factorization of A. !> |
| [in] | DF | !> DF is REAL array, dimension (N) !> The n diagonal elements of the upper triangular matrix U from !> the LU factorization of A. !> |
| [in] | DUF | !> DUF is REAL array, dimension (N-1) !> The (n-1) elements of the first super-diagonal of U. !> |
| [in] | DU2 | !> DU2 is REAL 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 REAL 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 sgtt01.f.
| subroutine sgtt02 | ( | character | trans, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( * ) | dl, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | du, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real | resid ) |
SGTT02
!> !> SGTT02 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. !> The norm used is the 1-norm. !>
| [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 = 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 REAL array, dimension (N-1) !> The (n-1) sub-diagonal elements of A. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The diagonal elements of A. !> |
| [in] | DU | !> DU is REAL array, dimension (N-1) !> The (n-1) super-diagonal elements of A. !> |
| [in] | X | !> X is REAL 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 REAL 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 123 of file sgtt02.f.
| subroutine sgtt05 | ( | character | trans, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( * ) | dl, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | du, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
SGTT05
!> !> SGTT05 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 REAL array, dimension (N-1) !> The (n-1) sub-diagonal elements of A. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The diagonal elements of A. !> |
| [in] | DU | !> DU is REAL array, dimension (N-1) !> The (n-1) super-diagonal elements of A. !> |
| [in] | B | !> B is REAL 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 REAL 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 REAL 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 sgtt05.f.
| subroutine slahilb | ( | integer | n, |
| integer | nrhs, | ||
| real, dimension(lda, n) | a, | ||
| integer | lda, | ||
| real, dimension(ldx, nrhs) | x, | ||
| integer | ldx, | ||
| real, dimension(ldb, nrhs) | b, | ||
| integer | ldb, | ||
| real, dimension(n) | work, | ||
| integer | info ) |
SLAHILB
!> !> SLAHILB 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 REAL 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 REAL 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 !> |
Definition at line 123 of file slahilb.f.
| subroutine slaord | ( | character | job, |
| integer | n, | ||
| real, dimension( * ) | x, | ||
| integer | incx ) |
SLAORD
!> !> SLAORD sorts the elements of a vector x in increasing or decreasing !> order. !>
| [in] | JOB | !> JOB is CHARACTER !> = 'I': Sort in increasing order !> = 'D': Sort in decreasing order !> |
| [in] | N | !> N is INTEGER !> The length of the vector X. !> |
| [in,out] | X | !> X is REAL array, dimension !> (1+(N-1)*INCX) !> On entry, the vector of length n to be sorted. !> On exit, the vector x is sorted in the prescribed order. !> |
| [in] | INCX | !> INCX is INTEGER !> The spacing between successive elements of X. INCX >= 0. !> |
Definition at line 72 of file slaord.f.
| subroutine slaptm | ( | integer | n, |
| integer | nrhs, | ||
| real | alpha, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real | beta, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb ) |
SLAPTM
!> !> SLAPTM multiplies an N by NRHS matrix X by a symmetric tridiagonal !> matrix A and stores the result in a matrix B. The operation has the !> form !> !> B := alpha * A * X + beta * B !> !> where alpha may be either 1. or -1. and beta may be 0., 1., or -1. !>
| [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 REAL array, dimension (N-1) !> The (n-1) subdiagonal or superdiagonal elements of A. !> |
| [in] | X | !> X is REAL 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 REAL 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 115 of file slaptm.f.
| subroutine slarhs | ( | character*3 | path, |
| character | xtype, | ||
| character | uplo, | ||
| character | trans, | ||
| integer | m, | ||
| integer | n, | ||
| integer | kl, | ||
| integer | ku, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| integer, dimension( 4 ) | iseed, | ||
| integer | info ) |
SLARHS
!> !> SLARHS 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 or A**T, depending on TRANS. !>
| [in] | PATH | !> PATH is CHARACTER*3 !> The type of the real matrix A. PATH may be given in any !> combination of upper and lower case. Valid types include !> xGE: General m x n matrix !> xGB: General banded matrix !> xPO: Symmetric positive definite, 2-D storage !> xPP: Symmetric positive definite packed !> xPB: Symmetric positive definite banded !> xSY: Symmetric indefinite, 2-D storage !> xSP: Symmetric indefinite packed !> xSB: Symmetric indefinite banded !> xTR: Triangular !> xTP: Triangular packed !> xTB: Triangular banded !> xQR: General m x n matrix !> xLQ: General m x n matrix !> xQL: General m x n matrix !> xRQ: General m x n matrix !> where the leading character indicates the precision. !> |
| [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 !> Specifies whether the upper or lower triangular part of the !> matrix A is stored, if A is symmetric. !> = '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 = Transpose) !> |
| [in] | M | !> M is INTEGER !> The number or 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 REAL 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) REAL 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 REAL 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 !> SLATMS). 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 203 of file slarhs.f.
| subroutine slatb4 | ( | character*3 | path, |
| integer | imat, | ||
| integer | m, | ||
| integer | n, | ||
| character | type, | ||
| integer | kl, | ||
| integer | ku, | ||
| real | anorm, | ||
| integer | mode, | ||
| real | cndnum, | ||
| character | dist ) |
SLATB4
!> !> SLATB4 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 !> = '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 118 of file slatb4.f.
| subroutine slatb5 | ( | character*3 | path, |
| integer | imat, | ||
| integer | n, | ||
| character | type, | ||
| integer | kl, | ||
| integer | ku, | ||
| real | anorm, | ||
| integer | mode, | ||
| real | cndnum, | ||
| character | dist ) |
SLATB5
!> !> SLATB5 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 slatb5.f.
| subroutine slattb | ( | integer | imat, |
| character | uplo, | ||
| character | trans, | ||
| character | diag, | ||
| integer, dimension( 4 ) | iseed, | ||
| integer | n, | ||
| integer | kd, | ||
| real, dimension( ldab, * ) | ab, | ||
| integer | ldab, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | work, | ||
| integer | info ) |
SLATTB
!> !> SLATTB 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 !> SLATMS). 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 REAL 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 REAL array, dimension (N) !> |
| [out] | WORK | !> WORK is REAL array, dimension (2*N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -k, the k-th argument had an illegal value !> |
Definition at line 133 of file slattb.f.
| subroutine slattp | ( | integer | imat, |
| character | uplo, | ||
| character | trans, | ||
| character | diag, | ||
| integer, dimension( 4 ) | iseed, | ||
| integer | n, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | work, | ||
| integer | info ) |
SLATTP
!> !> SLATTP 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 (= 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 !> SLATMS). Modified on exit. !> |
| [in] | N | !> N is INTEGER !> The order of the matrix to be generated. !> |
| [out] | A | !> A is REAL 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 REAL array, dimension (N) !> The right hand side vector, if IMAT > 10. !> |
| [out] | WORK | !> WORK is REAL array, dimension (3*N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -k, the k-th argument had an illegal value !> |
Definition at line 123 of file slattp.f.
| subroutine slattr | ( | integer | imat, |
| character | uplo, | ||
| character | trans, | ||
| character | diag, | ||
| integer, dimension( 4 ) | iseed, | ||
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | b, | ||
| real, dimension( * ) | work, | ||
| integer | info ) |
SLATTR
!> !> SLATTR generates a triangular test matrix. !> 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 !> SLATMS). Modified on exit. !> |
| [in] | N | !> N is INTEGER !> The order of the matrix to be generated. !> |
| [out] | A | !> A is REAL array, dimension (LDA,N) !> The triangular matrix A. If UPLO = 'U', the leading n by n !> upper triangular part of the array A contains the upper !> triangular matrix, and the strictly lower triangular part of !> A is not referenced. If UPLO = 'L', the leading n by n lower !> triangular part of the array A contains the lower triangular !> matrix, and the strictly upper triangular part of A is not !> referenced. If DIAG = 'U', the diagonal elements of A are !> set so that A(k,k) = k for 1 <= k <= n. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [out] | B | !> B is REAL array, dimension (N) !> The right hand side vector, if IMAT > 10. !> |
| [out] | WORK | !> WORK is REAL array, dimension (3*N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -k, the k-th argument had an illegal value !> |
Definition at line 131 of file slattr.f.
| subroutine slavsp | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( * ) | a, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| integer | info ) |
SLAVSP
!> !> SLAVSP 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 SSPTRF. !> !> If TRANS = 'N', multiplies by U or U * D (or L or L * D) !> If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L' ) !> If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L' ) !>
| [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 !> = 'C': 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 REAL array, dimension (N*(N+1)/2) !> The block diagonal matrix D and the multipliers used to !> obtain the factor U or L, stored as a packed triangular !> matrix as computed by SSPTRF. !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from SSPTRF. !> |
| [in,out] | B | !> B is REAL 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 128 of file slavsp.f.
| subroutine slavsy | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| integer | info ) |
SLAVSY
!> !> SLAVSY 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 SSYTRF. !> !> If TRANS = 'N', multiplies by U or U * D (or L or L * D) !> If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L') !> If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L') !>
| [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 !> = 'C': 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 REAL array, dimension (LDA,N) !> The block diagonal matrix D and the multipliers used to !> obtain the factor U or L as computed by SSYTRF. !> 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 SSYTRF. !> !> 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 REAL 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 slavsy.f.
| subroutine slavsy_rook | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| integer | info ) |
SLAVSY_ROOK
!> !> SLAVSY_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 SSYTRF_ROOK. !> !> If TRANS = 'N', multiplies by U or U * D (or L or L * D) !> If TRANS = 'T', multiplies by U' or D * U' (or L' or D * L') !> If TRANS = 'C', multiplies by U' or D * U' (or L' or D * L') !>
| [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 !> = 'C': 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 REAL array, dimension (LDA,N) !> The block diagonal matrix D and the multipliers used to !> obtain the factor U or L as computed by SSYTRF_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 SSYTRF_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 REAL 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 155 of file slavsy_rook.f.
| subroutine slqt01 | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | q, | ||
| real, dimension( lda, * ) | l, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SLQT01
!> !> SLQT01 tests SGELQF, which computes the LQ factorization of an m-by-n !> matrix A, and partially tests SORGLQ which forms the n-by-n !> orthogonal matrix Q. !> !> SLQT01 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 REAL array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is REAL array, dimension (LDA,N) !> Details of the LQ factorization of A, as returned by SGELQF. !> See SGELQF for further details. !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,N) !> The n-by-n orthogonal matrix Q. !> |
| [out] | L | !> L is REAL 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 REAL array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by SGELQF. !> |
| [out] | WORK | !> WORK is REAL 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 slqt01.f.
| subroutine slqt02 | ( | integer | m, |
| integer | n, | ||
| integer | k, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | q, | ||
| real, dimension( lda, * ) | l, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SLQT02
!> !> SLQT02 tests SORGLQ, 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, SLQT02 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 REAL array, dimension (LDA,N) !> The m-by-n matrix A which was factorized by SLQT01. !> |
| [in] | AF | !> AF is REAL array, dimension (LDA,N) !> Details of the LQ factorization of A, as returned by SGELQF. !> See SGELQF for further details. !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,N) !> |
| [out] | L | !> L is REAL 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 REAL array, dimension (M) !> The scalar factors of the elementary reflectors corresponding !> to the LQ factorization in AF. !> |
| [out] | WORK | !> WORK is REAL 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 slqt02.f.
| subroutine slqt03 | ( | integer | m, |
| integer | n, | ||
| integer | k, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | c, | ||
| real, dimension( lda, * ) | cc, | ||
| real, dimension( lda, * ) | q, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SLQT03
!> !> SLQT03 tests SORMLQ, which computes Q*C, Q'*C, C*Q or C*Q'. !> !> SLQT03 compares the results of a call to SORMLQ with the results of !> forming Q explicitly by a call to SORGLQ and then performing matrix !> multiplication by a call to SGEMM. !>
| [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 REAL array, dimension (LDA,N) !> Details of the LQ factorization of an m-by-n matrix, as !> returned by SGELQF. See SGELQF for further details. !> |
| [out] | C | !> C is REAL array, dimension (LDA,N) !> |
| [out] | CC | !> CC is REAL array, dimension (LDA,N) !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,N) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays AF, C, CC, and Q. !> |
| [in] | TAU | !> TAU is REAL array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors corresponding !> to the LQ factorization in AF. !> |
| [out] | WORK | !> WORK is REAL 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 slqt03.f.
| subroutine sorhr_col01 | ( | integer | m, |
| integer | n, | ||
| integer | mb1, | ||
| integer | nb1, | ||
| integer | nb2, | ||
| real, dimension(6) | result ) |
SORHR_COL01
!> !> SORHR_COL01 tests SORGTSQR and SORHR_COL using SLATSQR, SGEMQRT. !> Therefore, SLATSQR (part of SGEQR), SGEMQRT (part of SGEMQR) !> 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 orthogonal Q matrix, the result !> of factorization in blocked WY-representation, !> stored in SGEQRT 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 orthogonal 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 SGEMQRT, !> !> Q * C, (Q**H) * C, D * Q, D * (Q**H) are !> computed using SGEMM. !> |
Definition at line 118 of file sorhr_col01.f.
| subroutine sorhr_col02 | ( | integer | m, |
| integer | n, | ||
| integer | mb1, | ||
| integer | nb1, | ||
| integer | nb2, | ||
| real, dimension(6) | result ) |
SORHR_COL02
!> !> SORHR_COL02 tests SORGTSQR_ROW and SORHR_COL inside SGETSQRHRT !> (which calls SLATSQR, SORGTSQR_ROW and SORHR_COL) using SGEMQRT. !> Therefore, SLATSQR (part of SGEQR), SGEMQRT (part of SGEMQR) !> 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 orthogonal Q matrix, the result !> of factorization in blocked WY-representation, !> stored in SGEQRT 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 orthogonal 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 SGEMQRT, !> !> Q * C, (Q**H) * C, D * Q, D * (Q**H) are !> computed using SGEMM. !> |
Definition at line 119 of file sorhr_col02.f.
| subroutine spbt01 | ( | character | uplo, |
| integer | n, | ||
| integer | kd, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SPBT01
!> !> SPBT01 reconstructs a symmetric positive definite band matrix A from !> its L*L' or U'*U factorization and computes the residual !> norm( L*L' - A ) / ( N * norm(A) * EPS ) or !> norm( U'*U - A ) / ( N * norm(A) * EPS ), !> where EPS is the machine epsilon, L' is the conjugate transpose of !> L, and U' is the conjugate transpose of U. !>
| [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] | 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 REAL array, dimension (LDA,N) !> The original symmetric band matrix A. If UPLO = 'U', the !> upper triangular part of A is stored as a band matrix; if !> UPLO = 'L', the lower triangular part of A is stored. The !> columns of the appropriate triangle are stored in the columns !> of A and the diagonals of the triangle are stored in the rows !> of A. See SPBTRF for further details. !> |
| [in] | LDA | !> LDA is INTEGER. !> The leading dimension of the array A. LDA >= max(1,KD+1). !> |
| [in] | AFAC | !> AFAC is REAL 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 SPBTRF. !> |
| [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 117 of file spbt01.f.
| subroutine spbt02 | ( | character | uplo, |
| integer | n, | ||
| integer | kd, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SPBT02
!> !> SPBT02 computes the residual for a solution of a symmetric banded !> system of equations A*x = b: !> RESID = norm( B - A*X ) / ( norm(A) * norm(X) * EPS) !> where EPS is the machine precision. !>
| [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] | 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 REAL array, dimension (LDA,N) !> The original symmetric band matrix A. If UPLO = 'U', the !> upper triangular part of A is stored as a band matrix; if !> UPLO = 'L', the lower triangular part of A is stored. The !> columns of the appropriate triangle are stored in the columns !> of A and the diagonals of the triangle are stored in the rows !> of A. See SPBTRF for further details. !> |
| [in] | LDA | !> LDA is INTEGER. !> The leading dimension of the array A. LDA >= max(1,KD+1). !> |
| [in] | X | !> X is REAL 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 REAL 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 spbt02.f.
| subroutine spbt05 | ( | character | uplo, |
| integer | n, | ||
| integer | kd, | ||
| integer | nrhs, | ||
| real, dimension( ldab, * ) | ab, | ||
| integer | ldab, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
SPBT05
!> !> SPBT05 tests the error bounds from iterative refinement for the !> computed solution to a system of equations A*X = B, where A is a !> symmetric band matrix. !> !> RESLTS(1) = test of the error bound !> = norm(X - XACT) / ( norm(X) * FERR ) !> !> A large value is returned if this ratio is not less than one. !> !> RESLTS(2) = residual from the iterative refinement routine !> = the maximum of BERR / ( NZ*EPS + (*) ), where !> (*) = NZ*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i ) !> and NZ = max. number of nonzeros in any row of A, plus 1 !>
| [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 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 REAL array, dimension (LDAB,N) !> The upper or lower triangle of the symmetric band matrix A, !> stored in the first KD+1 rows of the array. The j-th column !> of A is stored in the j-th column of the array AB as follows: !> if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j; !> if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). !> |
| [in] | LDAB | !> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !> |
| [in] | B | !> B is REAL 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 REAL 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 REAL 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 spbt05.f.
| subroutine spot01 | ( | character | uplo, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SPOT01
!> !> SPOT01 reconstructs a symmetric positive definite matrix A from !> its L*L' or U'*U factorization and computes the residual !> norm( L*L' - A ) / ( N * norm(A) * EPS ) or !> norm( U'*U - A ) / ( N * norm(A) * EPS ), !> where EPS is the machine epsilon. !>
| [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 REAL 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,out] | AFAC | !> AFAC is REAL array, dimension (LDAFAC,N) !> On entry, the factor L or U from the L * L**T or U**T * U !> factorization of A. !> Overwritten with the reconstructed matrix, and then with !> the difference L * L**T - A (or U**T * 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**T - A) / ( N * norm(A) * EPS ) !> If UPLO = 'U', norm(U**T * U - A) / ( N * norm(A) * EPS ) !> |
Definition at line 103 of file spot01.f.
| subroutine spot02 | ( | character | uplo, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SPOT02
!> !> SPOT02 computes the residual for the solution of a symmetric system !> of linear equations A*x = b: !> !> RESID = norm(B - A*X) / ( norm(A) * norm(X) * EPS ), !> !> where EPS is the machine epsilon. !>
| [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 REAL 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] | X | !> X is REAL 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 REAL 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 spot02.f.
| subroutine spot03 | ( | character | uplo, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldainv, * ) | ainv, | ||
| integer | ldainv, | ||
| real, dimension( ldwork, * ) | work, | ||
| integer | ldwork, | ||
| real, dimension( * ) | rwork, | ||
| real | rcond, | ||
| real | resid ) |
SPOT03
!> !> SPOT03 computes the residual for a symmetric matrix times its !> inverse: !> norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ), !> where EPS is the machine epsilon. !>
| [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 REAL 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,out] | AINV | !> AINV is REAL 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 REAL 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 123 of file spot03.f.
| subroutine spot05 | ( | character | uplo, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
SPOT05
!> !> SPOT05 tests the error bounds from iterative refinement for the !> computed solution to a system of equations A*X = B, where A is a !> symmetric n by n matrix. !> !> RESLTS(1) = test of the error bound !> = norm(X - XACT) / ( norm(X) * FERR ) !> !> A large value is returned if this ratio is not less than one. !> !> RESLTS(2) = residual from the iterative refinement routine !> = the maximum of BERR / ( (n+1)*EPS + (*) ), where !> (*) = (n+1)*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i ) !>
| [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 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 REAL array, dimension (LDA,N) !> The symmetric matrix A. If UPLO = 'U', the leading n by n !> upper triangular part of A contains the upper triangular part !> of the matrix A, and the strictly lower triangular part of A !> is not referenced. If UPLO = 'L', the leading n by n lower !> triangular part of A contains the lower triangular part of !> the matrix A, and the strictly upper triangular part of A is !> not referenced. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !> |
| [in] | B | !> B is REAL 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 REAL 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 REAL 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 162 of file spot05.f.
| subroutine sppt01 | ( | character | uplo, |
| integer | n, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SPPT01
!> !> SPPT01 reconstructs a symmetric positive definite packed matrix A !> from its L*L' or U'*U factorization and computes the residual !> norm( L*L' - A ) / ( N * norm(A) * EPS ) or !> norm( U'*U - A ) / ( N * norm(A) * EPS ), !> where EPS is the machine epsilon. !>
| [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 REAL array, dimension (N*(N+1)/2) !> The original symmetric matrix A, stored as a packed !> triangular matrix. !> |
| [in,out] | AFAC | !> AFAC is REAL 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 92 of file sppt01.f.
| subroutine sppt02 | ( | character | uplo, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( * ) | a, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SPPT02
!> !> SPPT02 computes the residual in the solution of a symmetric system !> of linear equations A*x = b when packed storage is used for the !> coefficient matrix. The ratio computed is !> !> RESID = norm(B - A*X) / ( norm(A) * norm(X) * EPS), !> !> where EPS is the machine precision. !>
| [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 REAL array, dimension (N*(N+1)/2) !> The original symmetric matrix A, stored as a packed !> triangular matrix. !> |
| [in] | X | !> X is REAL 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 REAL 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 120 of file sppt02.f.
| subroutine sppt03 | ( | character | uplo, |
| integer | n, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | ainv, | ||
| real, dimension( ldwork, * ) | work, | ||
| integer | ldwork, | ||
| real, dimension( * ) | rwork, | ||
| real | rcond, | ||
| real | resid ) |
SPPT03
!> !> SPPT03 computes the residual for a symmetric packed matrix times its !> inverse: !> norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ), !> where EPS is the machine epsilon. !>
| [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 REAL array, dimension (N*(N+1)/2) !> The original symmetric matrix A, stored as a packed !> triangular matrix. !> |
| [in] | AINV | !> AINV is REAL array, dimension (N*(N+1)/2) !> The (symmetric) inverse of the matrix A, stored as a packed !> triangular matrix. !> |
| [out] | WORK | !> WORK is REAL 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 sppt03.f.
| subroutine sppt05 | ( | character | uplo, |
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( * ) | ap, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
SPPT05
!> !> SPPT05 tests the error bounds from iterative refinement for the !> computed solution to a system of equations A*X = B, where A is a !> symmetric matrix in packed storage format. !> !> RESLTS(1) = test of the error bound !> = norm(X - XACT) / ( norm(X) * FERR ) !> !> A large value is returned if this ratio is not less than one. !> !> RESLTS(2) = residual from the iterative refinement routine !> = the maximum of BERR / ( (n+1)*EPS + (*) ), where !> (*) = (n+1)*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i ) !>
| [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 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 REAL array, dimension (N*(N+1)/2) !> The upper or lower triangle of the symmetric matrix A, packed !> columnwise in a linear array. The j-th column of A is stored !> in the array AP as follows: !> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; !> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. !> |
| [in] | B | !> B is REAL 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 REAL 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 REAL 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 154 of file sppt05.f.
| subroutine spst01 | ( | character | uplo, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| real, dimension( ldperm, * ) | perm, | ||
| integer | ldperm, | ||
| integer, dimension( * ) | piv, | ||
| real, dimension( * ) | rwork, | ||
| real | resid, | ||
| integer | rank ) |
SPST01
!> !> SPST01 reconstructs a symmetric positive semidefinite matrix A !> from its L or U factors and the permutation matrix P and computes !> the residual !> norm( P*L*L'*P' - A ) / ( N * norm(A) * EPS ) or !> norm( P*U'*U*P' - A ) / ( N * norm(A) * EPS ), !> where EPS is the machine epsilon. !>
| [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 REAL 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 REAL 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 REAL 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 132 of file spst01.f.
| subroutine sptt01 | ( | integer | n, |
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( * ) | df, | ||
| real, dimension( * ) | ef, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
SPTT01
!> !> SPTT01 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 REAL 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 REAL 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 REAL array, dimension (2*N) !> |
| [out] | RESID | !> RESID is REAL !> norm(L*D*L' - A) / (n * norm(A) * EPS) !> |
Definition at line 90 of file sptt01.f.
| subroutine sptt02 | ( | integer | n, |
| integer | nrhs, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real | resid ) |
SPTT02
!> !> SPTT02 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] | 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 REAL array, dimension (N-1) !> The (n-1) subdiagonal elements of the tridiagonal matrix A. !> |
| [in] | X | !> X is REAL 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 REAL 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 103 of file sptt02.f.
| subroutine sptt05 | ( | integer | n, |
| integer | nrhs, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
SPTT05
!> !> SPTT05 tests the error bounds from iterative refinement for the !> computed solution to a system of equations A*X = B, where A is a !> symmetric tridiagonal matrix of order n. !> !> RESLTS(1) = test of the error bound !> = norm(X - XACT) / ( norm(X) * FERR ) !> !> A large value is returned if this ratio is not less than one. !> !> RESLTS(2) = residual from the iterative refinement routine !> = the maximum of BERR / ( NZ*EPS + (*) ), where !> (*) = NZ*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i ) !> and NZ = max. number of nonzeros in any row of A, plus 1 !>
| [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 REAL array, dimension (N-1) !> The (n-1) subdiagonal elements of the tridiagonal matrix A. !> |
| [in] | B | !> B is REAL 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 REAL 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 REAL 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 sptt05.f.
| subroutine sqlt01 | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | q, | ||
| real, dimension( lda, * ) | l, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SQLT01
!> !> SQLT01 tests SGEQLF, which computes the QL factorization of an m-by-n !> matrix A, and partially tests SORGQL which forms the m-by-m !> orthogonal matrix Q. !> !> SQLT01 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 REAL array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is REAL array, dimension (LDA,N) !> Details of the QL factorization of A, as returned by SGEQLF. !> See SGEQLF for further details. !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,M) !> The m-by-m orthogonal matrix Q. !> |
| [out] | L | !> L is REAL 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 REAL array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by SGEQLF. !> |
| [out] | WORK | !> WORK is REAL 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 sqlt01.f.
| subroutine sqlt02 | ( | integer | m, |
| integer | n, | ||
| integer | k, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | q, | ||
| real, dimension( lda, * ) | l, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SQLT02
!> !> SQLT02 tests SORGQL, 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, SQLT02 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 REAL array, dimension (LDA,N) !> The m-by-n matrix A which was factorized by SQLT01. !> |
| [in] | AF | !> AF is REAL array, dimension (LDA,N) !> Details of the QL factorization of A, as returned by SGEQLF. !> See SGEQLF for further details. !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,N) !> |
| [out] | L | !> L is REAL 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 REAL array, dimension (N) !> The scalar factors of the elementary reflectors corresponding !> to the QL factorization in AF. !> |
| [out] | WORK | !> WORK is REAL 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 sqlt02.f.
| subroutine sqlt03 | ( | integer | m, |
| integer | n, | ||
| integer | k, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | c, | ||
| real, dimension( lda, * ) | cc, | ||
| real, dimension( lda, * ) | q, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SQLT03
!> !> SQLT03 tests SORMQL, which computes Q*C, Q'*C, C*Q or C*Q'. !> !> SQLT03 compares the results of a call to SORMQL with the results of !> forming Q explicitly by a call to SORGQL and then performing matrix !> multiplication by a call to SGEMM. !>
| [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 REAL array, dimension (LDA,N) !> Details of the QL factorization of an m-by-n matrix, as !> returned by SGEQLF. See SGEQLF for further details. !> |
| [out] | C | !> C is REAL array, dimension (LDA,N) !> |
| [out] | CC | !> CC is REAL array, dimension (LDA,N) !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,M) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays AF, C, CC, and Q. !> |
| [in] | TAU | !> TAU is REAL array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors corresponding !> to the QL factorization in AF. !> |
| [out] | WORK | !> WORK is REAL 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 sqlt03.f.
| real function sqpt01 | ( | integer | m, |
| integer | n, | ||
| integer | k, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| integer, dimension( * ) | jpvt, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork ) |
SQPT01
!> !> SQPT01 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 REAL array, dimension (LDA, N) !> The original matrix A. !> |
| [in] | AF | !> AF is REAL array, dimension (LDA,N) !> The (possibly partial) output of SGEQPF. 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 REAL array, dimension (K) !> Details of the Householder transformations as returned by !> SGEQPF. !> |
| [in] | JPVT | !> JPVT is INTEGER array, dimension (N) !> Pivot information as returned by SGEQPF. !> |
| [out] | WORK | !> WORK is REAL array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= M*N+N. !> |
Definition at line 118 of file sqpt01.f.
| subroutine sqrt01 | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | q, | ||
| real, dimension( lda, * ) | r, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SQRT01
!> !> SQRT01 tests SGEQRF, which computes the QR factorization of an m-by-n !> matrix A, and partially tests SORGQR which forms the m-by-m !> orthogonal matrix Q. !> !> SQRT01 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 REAL array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is REAL array, dimension (LDA,N) !> Details of the QR factorization of A, as returned by SGEQRF. !> See SGEQRF for further details. !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,M) !> The m-by-m orthogonal matrix Q. !> |
| [out] | R | !> R is REAL 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 REAL array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by SGEQRF. !> |
| [out] | WORK | !> WORK is REAL 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 sqrt01.f.
| subroutine sqrt01p | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | q, | ||
| real, dimension( lda, * ) | r, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SQRT01P
!> !> SQRT01P tests SGEQRFP, which computes the QR factorization of an m-by-n !> matrix A, and partially tests SORGQR which forms the m-by-m !> orthogonal matrix Q. !> !> SQRT01P 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 REAL array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is REAL array, dimension (LDA,N) !> Details of the QR factorization of A, as returned by SGEQRFP. !> See SGEQRFP for further details. !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,M) !> The m-by-m orthogonal matrix Q. !> |
| [out] | R | !> R is REAL 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 REAL array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by SGEQRFP. !> |
| [out] | WORK | !> WORK is REAL 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 sqrt01p.f.
| subroutine sqrt02 | ( | integer | m, |
| integer | n, | ||
| integer | k, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | q, | ||
| real, dimension( lda, * ) | r, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SQRT02
!> !> SQRT02 tests SORGQR, 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, SQRT02 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 REAL array, dimension (LDA,N) !> The m-by-n matrix A which was factorized by SQRT01. !> |
| [in] | AF | !> AF is REAL array, dimension (LDA,N) !> Details of the QR factorization of A, as returned by SGEQRF. !> See SGEQRF for further details. !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,N) !> |
| [out] | R | !> R is REAL 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 REAL array, dimension (N) !> The scalar factors of the elementary reflectors corresponding !> to the QR factorization in AF. !> |
| [out] | WORK | !> WORK is REAL 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 sqrt02.f.
| subroutine sqrt03 | ( | integer | m, |
| integer | n, | ||
| integer | k, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | c, | ||
| real, dimension( lda, * ) | cc, | ||
| real, dimension( lda, * ) | q, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SQRT03
!> !> SQRT03 tests SORMQR, which computes Q*C, Q'*C, C*Q or C*Q'. !> !> SQRT03 compares the results of a call to SORMQR with the results of !> forming Q explicitly by a call to SORGQR and then performing matrix !> multiplication by a call to SGEMM. !>
| [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 REAL array, dimension (LDA,N) !> Details of the QR factorization of an m-by-n matrix, as !> returned by SGEQRF. See SGEQRF for further details. !> |
| [out] | C | !> C is REAL array, dimension (LDA,N) !> |
| [out] | CC | !> CC is REAL array, dimension (LDA,N) !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,M) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays AF, C, CC, and Q. !> |
| [in] | TAU | !> TAU is REAL array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors corresponding !> to the QR factorization in AF. !> |
| [out] | WORK | !> WORK is REAL 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 sqrt03.f.
| subroutine sqrt04 | ( | integer | m, |
| integer | n, | ||
| integer | nb, | ||
| real, dimension(6) | result ) |
SQRT04
!> !> SQRT04 tests SGEQRT and SGEMQRT. !>
| [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 sqrt04.f.
| subroutine sqrt05 | ( | integer | m, |
| integer | n, | ||
| integer | l, | ||
| integer | nb, | ||
| real, dimension(6) | result ) |
SQRT05
!> !> SQRT05 tests STPQRT and STPMQRT. !>
| [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 sqrt05.f.
| real function sqrt11 | ( | integer | m, |
| integer | k, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork ) |
SQRT11
!> !> SQRT11 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 REAL 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 REAL array, dimension (K) !> The scaling factors tau for the elementary transformations as !> computed by the QR factorization routine. !> |
| [out] | WORK | !> WORK is REAL array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= M*M + M. !> |
Definition at line 97 of file sqrt11.f.
| real function sqrt12 | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | s, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork ) |
SQRT12
!> !> SQRT12 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 REAL 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 REAL array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= max(M*N + 4*min(M,N) + !> max(M,N), M*N+2*MIN( M, N )+4*N). !> |
Definition at line 88 of file sqrt12.f.
| subroutine sqrt13 | ( | integer | scale, |
| integer | m, | ||
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real | norma, | ||
| integer, dimension( 4 ) | iseed ) |
SQRT13
!> !> SQRT13 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 REAL 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 sqrt13.f.
| real function sqrt14 | ( | character | trans, |
| integer | m, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork ) |
SQRT14
!> !> SQRT14 checks whether X is in the row space of A or A'. It does so !> by scaling both X and A such that their norms are in the range !> [sqrt(eps), 1/sqrt(eps)], then computing a QR factorization of [A,X] !> (if TRANS = 'T') or an LQ factorization of [A',X]' (if TRANS = 'N'), !> and returning the norm of the trailing triangle, scaled by !> MAX(M,N,NRHS)*eps. !>
| [in] | TRANS | !> TRANS is CHARACTER*1 !> = 'N': No transpose, check for X in the row space of A !> = 'T': Transpose, check for X in the row space of A'. !> |
| [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 REAL 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 REAL array, dimension (LDX,NRHS) !> If TRANS = 'N', the N-by-NRHS matrix X. !> IF TRANS = 'T', the M-by-NRHS matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. !> |
| [out] | WORK | !> WORK is REAL array dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> length of workspace array required !> If TRANS = 'N', LWORK >= (M+NRHS)*(N+2); !> if TRANS = 'T', LWORK >= (N+NRHS)*(M+2). !> |
Definition at line 114 of file sqrt14.f.
| subroutine sqrt15 | ( | integer | scale, |
| integer | rksel, | ||
| integer | m, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | s, | ||
| integer | rank, | ||
| real | norma, | ||
| real | normb, | ||
| integer, dimension( 4 ) | iseed, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork ) |
SQRT15
!> !> SQRT15 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 REAL 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 REAL 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 of A. !> |
| [out] | NORMB | !> NORMB is REAL !> one-norm of B. !> |
| [in,out] | ISEED | !> ISEED is integer array, dimension (4) !> seed for random number generator. !> |
| [out] | WORK | !> WORK is REAL 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 146 of file sqrt15.f.
| subroutine sqrt16 | ( | character | trans, |
| integer | m, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SQRT16
!> !> SQRT16 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'*x = b, where A' is the transpose of A !> = 'C': A'*x = b, where A' is the 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 REAL 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 REAL 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 REAL 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 sqrt16.f.
| real function sqrt17 | ( | character | trans, |
| integer | iresid, | ||
| integer | m, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldb, * ) | c, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork ) |
SQRT17
!> !> SQRT17 computes the ratio !> !> norm(R**T * op(A)) / ( norm(A) * alpha * max(M,N,NRHS) * EPS ), !> !> where R = B - op(A)*X, op(A) is A or A**T, 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. !> = 'T': Transpose, op(A) = A**T. !> |
| [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 = 'T', 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 = 'T', 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 REAL 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 REAL array, dimension (LDX,NRHS) !> If TRANS = 'N', the n-by-nrhs matrix X. !> If TRANS = 'T', 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 = 'T', LDX >= M. !> |
| [in] | B | !> B is REAL array, dimension (LDB,NRHS) !> If TRANS = 'N', the m-by-nrhs matrix B. !> If TRANS = 'T', 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 = 'T', LDB >= N. !> |
| [out] | C | !> C is REAL array, dimension (LDB,NRHS) !> |
| [out] | WORK | !> WORK is REAL array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= NRHS*(M+N). !> |
Definition at line 151 of file sqrt17.f.
| subroutine srqt01 | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | q, | ||
| real, dimension( lda, * ) | r, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SRQT01
!> !> SRQT01 tests SGERQF, which computes the RQ factorization of an m-by-n !> matrix A, and partially tests SORGRQ which forms the n-by-n !> orthogonal matrix Q. !> !> SRQT01 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 REAL array, dimension (LDA,N) !> The m-by-n matrix A. !> |
| [out] | AF | !> AF is REAL array, dimension (LDA,N) !> Details of the RQ factorization of A, as returned by SGERQF. !> See SGERQF for further details. !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,N) !> The n-by-n orthogonal matrix Q. !> |
| [out] | R | !> R is REAL 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 REAL array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors, as returned !> by SGERQF. !> |
| [out] | WORK | !> WORK is REAL 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 srqt01.f.
| subroutine srqt02 | ( | integer | m, |
| integer | n, | ||
| integer | k, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | q, | ||
| real, dimension( lda, * ) | r, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SRQT02
!> !> SRQT02 tests SORGRQ, 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, SRQT02 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 REAL array, dimension (LDA,N) !> The m-by-n matrix A which was factorized by SRQT01. !> |
| [in] | AF | !> AF is REAL array, dimension (LDA,N) !> Details of the RQ factorization of A, as returned by SGERQF. !> See SGERQF for further details. !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,N) !> |
| [out] | R | !> R is REAL 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 REAL array, dimension (M) !> The scalar factors of the elementary reflectors corresponding !> to the RQ factorization in AF. !> |
| [out] | WORK | !> WORK is REAL 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 srqt02.f.
| subroutine srqt03 | ( | integer | m, |
| integer | n, | ||
| integer | k, | ||
| real, dimension( lda, * ) | af, | ||
| real, dimension( lda, * ) | c, | ||
| real, dimension( lda, * ) | cc, | ||
| real, dimension( lda, * ) | q, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork, | ||
| real, dimension( * ) | rwork, | ||
| real, dimension( * ) | result ) |
SRQT03
!> !> SRQT03 tests SORMRQ, which computes Q*C, Q'*C, C*Q or C*Q'. !> !> SRQT03 compares the results of a call to SORMRQ with the results of !> forming Q explicitly by a call to SORGRQ and then performing matrix !> multiplication by a call to SGEMM. !>
| [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 REAL array, dimension (LDA,N) !> Details of the RQ factorization of an m-by-n matrix, as !> returned by SGERQF. See SGERQF for further details. !> |
| [out] | C | !> C is REAL array, dimension (LDA,N) !> |
| [out] | CC | !> CC is REAL array, dimension (LDA,N) !> |
| [out] | Q | !> Q is REAL array, dimension (LDA,N) !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the arrays AF, C, CC, and Q. !> |
| [in] | TAU | !> TAU is REAL array, dimension (min(M,N)) !> The scalar factors of the elementary reflectors corresponding !> to the RQ factorization in AF. !> |
| [out] | WORK | !> WORK is REAL 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 srqt03.f.
| real function srzt01 | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| real, dimension( lda, * ) | af, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork ) |
SRZT01
!> !> SRZT01 returns !> || A - R*Q || / ( M * eps * ||A|| ) !> for an upper trapezoidal A that was factored with STZRZF. !>
| [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 REAL array, dimension (LDA,N) !> The original upper trapezoidal M by N matrix A. !> |
| [in] | AF | !> AF is REAL array, dimension (LDA,N) !> The output of STZRZF 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 REAL array, dimension (M) !> Details of the Householder transformations as returned by !> STZRZF. !> |
| [out] | WORK | !> WORK is REAL array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> The length of the array WORK. LWORK >= m*n + m*nb. !> |
Definition at line 96 of file srzt01.f.
| real function srzt02 | ( | integer | m, |
| integer | n, | ||
| real, dimension( lda, * ) | af, | ||
| integer | lda, | ||
| real, dimension( * ) | tau, | ||
| real, dimension( lwork ) | work, | ||
| integer | lwork ) |
SRZT02
!> !> SRZT02 returns !> || I - Q'*Q || / ( M * eps) !> where the matrix Q is defined by the Householder transformations !> generated by STZRZF. !>
| [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 REAL array, dimension (LDA,N) !> The output of STZRZF. !> |
| [in] | LDA | !> LDA is INTEGER !> The leading dimension of the array AF. !> |
| [in] | TAU | !> TAU is REAL array, dimension (M) !> Details of the Householder transformations as returned by !> STZRZF. !> |
| [out] | WORK | !> WORK is REAL array, dimension (LWORK) !> |
| [in] | LWORK | !> LWORK is INTEGER !> length of WORK array. LWORK >= N*N+N*NB. !> |
Definition at line 89 of file srzt02.f.
| subroutine sspt01 | ( | character | uplo, |
| integer | n, | ||
| real, dimension( * ) | a, | ||
| real, dimension( * ) | afac, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( ldc, * ) | c, | ||
| integer | ldc, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SSPT01
!> !> SSPT01 reconstructs a symmetric indefinite packed matrix A from its !> block L*D*L' or U*D*U' factorization and computes the residual !> norm( C - A ) / ( N * norm(A) * EPS ), !> where C is the reconstructed matrix and EPS is the machine epsilon. !>
| [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 REAL array, dimension (N*(N+1)/2) !> The original symmetric matrix A, stored as a packed !> triangular matrix. !> |
| [in] | AFAC | !> AFAC is REAL 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 SSPTRF. !> |
| [in] | IPIV | !> IPIV is INTEGER array, dimension (N) !> The pivot indices from SSPTRF. !> |
| [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 109 of file sspt01.f.
| subroutine ssyt01 | ( | character | uplo, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( ldc, * ) | c, | ||
| integer | ldc, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SSYT01
!> !> SSYT01 reconstructs a symmetric indefinite matrix A from its !> block L*D*L' or U*D*U' factorization and computes the residual !> norm( C - A ) / ( N * norm(A) * EPS ), !> where C is the reconstructed matrix and EPS is the machine epsilon. !>
| [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 REAL 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 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 SSYTRF. !> |
| [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 SSYTRF. !> |
| [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 ssyt01.f.
| subroutine ssyt01_3 | ( | character | uplo, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| real, dimension( * ) | e, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( ldc, * ) | c, | ||
| integer | ldc, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SSYT01_3
!> !> SSYT01_3 reconstructs a symmetric indefinite matrix A from its !> block L*D*L' or U*D*U' factorization computed by SSYTRF_RK !> (or SSYTRF_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 DOUBLE PRECISION 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 DOUBLE PRECISION array, dimension (LDAFAC,N) !> Diagonal of the block diagonal matrix D and factors U or L !> as computed by SSYTRF_RK and SSYTRF_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 DOUBLE PRECISION 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 SSYTRF_RK (or SSYTRF_BK). !> |
| [out] | C | !> C is DOUBLE PRECISION array, dimension (LDC,N) !> |
| [in] | LDC | !> LDC is INTEGER !> The leading dimension of the array C. LDC >= max(1,N). !> |
| [out] | RWORK | !> RWORK is DOUBLE PRECISION array, dimension (N) !> |
| [out] | RESID | !> RESID is DOUBLE PRECISION !> If UPLO = 'L', norm(L*D*L' - A) / ( N * norm(A) * EPS ) !> If UPLO = 'U', norm(U*D*U' - A) / ( N * norm(A) * EPS ) !> |
Definition at line 138 of file ssyt01_3.f.
| subroutine ssyt01_rook | ( | character | uplo, |
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldafac, * ) | afac, | ||
| integer | ldafac, | ||
| integer, dimension( * ) | ipiv, | ||
| real, dimension( ldc, * ) | c, | ||
| integer | ldc, | ||
| real, dimension( * ) | rwork, | ||
| real | resid ) |
SSYT01_ROOK
!> !> SSYT01_ROOK reconstructs a symmetric indefinite matrix A from its !> block L*D*L' or U*D*U' factorization and computes the residual !> norm( C - A ) / ( N * norm(A) * EPS ), !> where C is the reconstructed matrix and EPS is the machine epsilon. !>
| [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 REAL 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 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 SSYTRF_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 SSYTRF_ROOK. !> |
| [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 ssyt01_rook.f.
| subroutine stbt02 | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | kd, | ||
| integer | nrhs, | ||
| real, dimension( ldab, * ) | ab, | ||
| integer | ldab, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
STBT02
!> !> STBT02 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 or A**T, b is the column of B, x is the solution !> vector, and EPS is the machine epsilon. !> The norm used is the 1-norm. !>
| [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 = 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 REAL 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] | X | !> X is REAL 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 REAL 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 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 152 of file stbt02.f.
| subroutine stbt03 | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | kd, | ||
| integer | nrhs, | ||
| real, dimension( ldab, * ) | ab, | ||
| integer | ldab, | ||
| real | scale, | ||
| real, dimension( * ) | cnorm, | ||
| real | tscal, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
STBT03
!> !> STBT03 computes the residual for the solution to a scaled triangular !> system of equations A*x = s*b or A'*x = s*b when A is a !> triangular band matrix. Here A' is the transpose of A, s is a scalar, !> and x and b are N by NRHS matrices. The test ratio is the maximum !> over the number of right hand sides of !> norm(s*b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS ), !> where op(A) denotes A or A' and EPS is the machine epsilon. !>
| [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'*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 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 REAL 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 REAL 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 REAL 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 REAL 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 172 of file stbt03.f.
| subroutine stbt05 | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | kd, | ||
| integer | nrhs, | ||
| real, dimension( ldab, * ) | ab, | ||
| integer | ldab, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
STBT05
!> !> STBT05 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 REAL 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 REAL 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 REAL 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 REAL 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 stbt05.f.
| subroutine stbt06 | ( | real | rcond, |
| real | rcondc, | ||
| character | uplo, | ||
| character | diag, | ||
| integer | n, | ||
| integer | kd, | ||
| real, dimension( ldab, * ) | ab, | ||
| integer | ldab, | ||
| real, dimension( * ) | work, | ||
| real | rat ) |
STBT06
!> !> STBT06 computes a test ratio comparing RCOND (the reciprocal !> condition number of a triangular matrix A) and RCONDC, the estimate !> computed by STBCON. 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 !> STBCON. !> |
| [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 REAL 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] | WORK | !> WORK 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 123 of file stbt06.f.
| subroutine stpt01 | ( | character | uplo, |
| character | diag, | ||
| integer | n, | ||
| real, dimension( * ) | ap, | ||
| real, dimension( * ) | ainvp, | ||
| real | rcond, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
STPT01
!> !> STPT01 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 REAL 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,out] | AINVP | !> AINVP is REAL 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] | WORK | !> WORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> norm(A*AINV - I) / ( N * norm(A) * norm(AINV) * EPS ) !> |
Definition at line 107 of file stpt01.f.
| subroutine stpt02 | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( * ) | ap, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
STPT02
!> !> STPT02 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 or A**T, b is the column of B, x is the solution !> vector, and EPS is the machine epsilon. !> The norm used is the 1-norm. !>
| [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 = 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 REAL 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 REAL 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 REAL 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 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 140 of file stpt02.f.
| subroutine stpt03 | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( * ) | ap, | ||
| real | scale, | ||
| real, dimension( * ) | cnorm, | ||
| real | tscal, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
STPT03
!> !> STPT03 computes the residual for the solution to a scaled triangular !> system of equations A*x = s*b or A'*x = s*b when the triangular !> matrix A is stored in packed format. Here A' is the transpose of A, !> s is a scalar, and x and b are N by NRHS matrices. The test ratio is !> the maximum over the number of right hand sides of !> norm(s*b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS ), !> where op(A) denotes A or A' and EPS is the machine epsilon. !>
| [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'*x = s*b (Transpose) !> = 'C': A'*x = s*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 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 REAL 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 REAL 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 REAL 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 REAL 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 159 of file stpt03.f.
| subroutine stpt05 | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( * ) | ap, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
STPT05
!> !> STPT05 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 REAL 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 REAL 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 REAL 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 REAL 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 172 of file stpt05.f.
| subroutine stpt06 | ( | real | rcond, |
| real | rcondc, | ||
| character | uplo, | ||
| character | diag, | ||
| integer | n, | ||
| real, dimension( * ) | ap, | ||
| real, dimension( * ) | work, | ||
| real | rat ) |
STPT06
!> !> STPT06 computes a test ratio comparing RCOND (the reciprocal !> condition number of a triangular matrix A) and RCONDC, the estimate !> computed by STPCON. 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 !> STPCON. !> |
| [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 REAL 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] | WORK | !> WORK 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 110 of file stpt06.f.
| subroutine strt01 | ( | character | uplo, |
| character | diag, | ||
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldainv, * ) | ainv, | ||
| integer | ldainv, | ||
| real | rcond, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
STRT01
!> !> STRT01 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 REAL 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,out] | AINV | !> AINV is REAL 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] | WORK | !> WORK is REAL array, dimension (N) !> |
| [out] | RESID | !> RESID is REAL !> norm(A*AINV - I) / ( N * norm(A) * norm(AINV) * EPS ) !> |
Definition at line 122 of file strt01.f.
| subroutine strt02 | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
STRT02
!> !> STRT02 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 or A**T, b is the column of B, x is the solution !> vector, and EPS is the machine epsilon. !> The norm used is the 1-norm. !>
| [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 = 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 REAL 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 REAL 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 REAL 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 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 148 of file strt02.f.
| subroutine strt03 | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real | scale, | ||
| real, dimension( * ) | cnorm, | ||
| real | tscal, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( * ) | work, | ||
| real | resid ) |
STRT03
!> !> STRT03 computes the residual for the solution to a scaled triangular !> system of equations A*x = s*b or A'*x = s*b. !> Here A is a triangular matrix, A' is the transpose of A, s is a !> scalar, and x and b are N by NRHS matrices. The test ratio is the !> maximum over the number of right hand sides of !> norm(s*b - op(A)*x) / ( norm(op(A)) * norm(x) * EPS ), !> where op(A) denotes A or A' and EPS is the machine epsilon. !>
| [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'*x = s*b (Transpose) !> = 'C': A'*x = s*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 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 REAL 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 REAL 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 REAL 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 REAL 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 167 of file strt03.f.
| subroutine strt05 | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| integer | nrhs, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( ldxact, * ) | xact, | ||
| integer | ldxact, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | reslts ) |
STRT05
!> !> STRT05 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 REAL 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 REAL 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 REAL 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 REAL 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 179 of file strt05.f.
| subroutine strt06 | ( | real | rcond, |
| real | rcondc, | ||
| character | uplo, | ||
| character | diag, | ||
| integer | n, | ||
| real, dimension( lda, * ) | a, | ||
| integer | lda, | ||
| real, dimension( * ) | work, | ||
| real | rat ) |
STRT06
!> !> STRT06 computes a test ratio comparing RCOND (the reciprocal !> condition number of a triangular matrix A) and RCONDC, the estimate !> computed by STRCON. 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 !> STRCON. !> |
| [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 REAL 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] | WORK | !> WORK 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 119 of file strt06.f.