LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
subroutine ddrvrfp | ( | integer | nout, |
integer | nn, | ||
integer, dimension( nn ) | nval, | ||
integer | nns, | ||
integer, dimension( nns ) | nsval, | ||
integer | nnt, | ||
integer, dimension( nnt ) | ntval, | ||
double precision | thresh, | ||
double precision, dimension( * ) | a, | ||
double precision, dimension( * ) | asav, | ||
double precision, dimension( * ) | afac, | ||
double precision, dimension( * ) | ainv, | ||
double precision, dimension( * ) | b, | ||
double precision, dimension( * ) | bsav, | ||
double precision, dimension( * ) | xact, | ||
double precision, dimension( * ) | x, | ||
double precision, dimension( * ) | arf, | ||
double precision, dimension( * ) | arfinv, | ||
double precision, dimension( * ) | d_work_dlatms, | ||
double precision, dimension( * ) | d_work_dpot01, | ||
double precision, dimension( * ) | d_temp_dpot02, | ||
double precision, dimension( * ) | d_temp_dpot03, | ||
double precision, dimension( * ) | d_work_dlansy, | ||
double precision, dimension( * ) | d_work_dpot02, | ||
double precision, dimension( * ) | d_work_dpot03 ) |
DDRVRFP
!> !> DDRVRFP tests the LAPACK RFP routines: !> DPFTRF, DPFTRS, and DPFTRI. !> !> This testing routine follow the same tests as DDRVPO (test for the full !> format Symmetric Positive Definite solver). !> !> The tests are performed in Full Format, conversion back and forth from !> full format to RFP format are performed using the routines DTRTTF and !> DTFTTR. !> !> First, a specific matrix A of size N is created. There is nine types of !> different matrixes possible. !> 1. Diagonal 6. Random, CNDNUM = sqrt(0.1/EPS) !> 2. Random, CNDNUM = 2 7. Random, CNDNUM = 0.1/EPS !> *3. First row and column zero 8. Scaled near underflow !> *4. Last row and column zero 9. Scaled near overflow !> *5. Middle row and column zero !> (* - tests error exits from DPFTRF, no test ratios are computed) !> A solution XACT of size N-by-NRHS is created and the associated right !> hand side B as well. Then DPFTRF is called to compute L (or U), the !> Cholesky factor of A. Then L (or U) is used to solve the linear system !> of equations AX = B. This gives X. Then L (or U) is used to compute the !> inverse of A, AINV. The following four tests are then performed: !> (1) norm( L*L' - A ) / ( N * norm(A) * EPS ) or !> norm( U'*U - A ) / ( N * norm(A) * EPS ), !> (2) norm(B - A*X) / ( norm(A) * norm(X) * EPS ), !> (3) norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ), !> (4) ( norm(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 DOUBLE PRECISION !> The threshold value for the test ratios. A result is !> included in the output file if RESULT >= THRESH. To have !> every test ratio printed, use THRESH = 0. !> |
[out] | A | !> A is DOUBLE PRECISION array, dimension (NMAX*NMAX) !> |
[out] | ASAV | !> ASAV is DOUBLE PRECISION array, dimension (NMAX*NMAX) !> |
[out] | AFAC | !> AFAC is DOUBLE PRECISION array, dimension (NMAX*NMAX) !> |
[out] | AINV | !> AINV is DOUBLE PRECISION array, dimension (NMAX*NMAX) !> |
[out] | B | !> B is DOUBLE PRECISION array, dimension (NMAX*MAXRHS) !> |
[out] | BSAV | !> BSAV is DOUBLE PRECISION array, dimension (NMAX*MAXRHS) !> |
[out] | XACT | !> XACT is DOUBLE PRECISION array, dimension (NMAX*MAXRHS) !> |
[out] | X | !> X is DOUBLE PRECISION array, dimension (NMAX*MAXRHS) !> |
[out] | ARF | !> ARF is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2) !> |
[out] | ARFINV | !> ARFINV is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2) !> |
[out] | D_WORK_DLATMS | !> D_WORK_DLATMS is DOUBLE PRECISION array, dimension ( 3*NMAX ) !> |
[out] | D_WORK_DPOT01 | !> D_WORK_DPOT01 is DOUBLE PRECISION array, dimension ( NMAX ) !> |
[out] | D_TEMP_DPOT02 | !> D_TEMP_DPOT02 is DOUBLE PRECISION array, dimension ( NMAX*MAXRHS ) !> |
[out] | D_TEMP_DPOT03 | !> D_TEMP_DPOT03 is DOUBLE PRECISION array, dimension ( NMAX*NMAX ) !> |
[out] | D_WORK_DLANSY | !> D_WORK_DLANSY is DOUBLE PRECISION array, dimension ( NMAX ) !> |
[out] | D_WORK_DPOT02 | !> D_WORK_DPOT02 is DOUBLE PRECISION array, dimension ( NMAX ) !> |
[out] | D_WORK_DPOT03 | !> D_WORK_DPOT03 is DOUBLE PRECISION array, dimension ( NMAX ) !> |
Definition at line 232 of file ddrvrfp.f.