zdrvrfp.f3
Usage
Functions/Subroutines
subroutine zdrvrfp (nout, nn, nval, nns, nsval, nnt, ntval, thresh, a, asav, afac, ainv, b, bsav, xact, x, arf, arfinv, z_work_zlatms, z_work_zpot02, z_work_zpot03, d_work_zlatms, d_work_zlanhe, d_work_zpot01, d_work_zpot02, d_work_zpot03)
ZDRVRFP
Function/Subroutine Documentation
subroutine zdrvrfp (integer nout, integer nn, integer, dimension( nn ) nval, integer nns, integer, dimension( nns ) nsval, integer nnt, integer, dimension( nnt ) ntval, double precision thresh, complex*16, dimension( * ) a, complex*16, dimension( * ) asav, complex*16, dimension( * ) afac, complex*16, dimension( * ) ainv, complex*16, dimension( * ) b, complex*16, dimension( * ) bsav, complex*16, dimension( * ) xact, complex*16, dimension( * ) x, complex*16, dimension( * ) arf, complex*16, dimension( * ) arfinv, complex*16, dimension( * ) z_work_zlatms, complex*16, dimension( * ) z_work_zpot02, complex*16, dimension( * ) z_work_zpot03, double precision, dimension( * ) d_work_zlatms, double precision, dimension( * ) d_work_zlanhe, double precision, dimension( * ) d_work_zpot01, double precision, dimension( * ) d_work_zpot02, double precision, dimension( * ) d_work_zpot03)
ZDRVRFP
Purpose:
!> !> ZDRVRFP tests the LAPACK RFP routines: !> ZPFTRF, ZPFTRS, and ZPFTRI. !> !> This testing routine follow the same tests as ZDRVPO (test for the full !> format Symmetric Positive Definite solver). !> !> The tests are performed in Full Format, conversion back and forth from !> full format to RFP format are performed using the routines ZTRTTF and !> ZTFTTR. !> !> First, a specific matrix A of size N is created. There is nine types of !> different matrixes possible. !> 1. Diagonal 6. Random, CNDNUM = sqrt(0.1/EPS) !> 2. Random, CNDNUM = 2 7. Random, CNDNUM = 0.1/EPS !> *3. First row and column zero 8. Scaled near underflow !> *4. Last row and column zero 9. Scaled near overflow !> *5. Middle row and column zero !> (* - tests error exits from ZPFTRF, no test ratios are computed) !> A solution XACT of size N-by-NRHS is created and the associated right !> hand side B as well. Then ZPFTRF is called to compute L (or U), the !> Cholesky factor of A. Then L (or U) is used to solve the linear system !> of equations AX = B. This gives X. Then L (or U) is used to compute the !> inverse of A, AINV. The following four tests are then performed: !> (1) norm( L*L' - A ) / ( N * norm(A) * EPS ) or !> norm( U'*U - A ) / ( N * norm(A) * EPS ), !> (2) norm(B - A*X) / ( norm(A) * norm(X) * EPS ), !> (3) norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ), !> (4) ( norm(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. !>
Parameters
NOUT
!> NOUT is INTEGER !> The unit number for output. !>
NN
!> NN is INTEGER !> The number of values of N contained in the vector NVAL. !>
NVAL
!> NVAL is INTEGER array, dimension (NN) !> The values of the matrix dimension N. !>
NNS
!> NNS is INTEGER !> The number of values of NRHS contained in the vector NSVAL. !>
NSVAL
!> NSVAL is INTEGER array, dimension (NNS) !> The values of the number of right-hand sides NRHS. !>
NNT
!> NNT is INTEGER !> The number of values of MATRIX TYPE contained in the vector NTVAL. !>
NTVAL
!> NTVAL is INTEGER array, dimension (NNT) !> The values of matrix type (between 0 and 9 for PO/PP/PF matrices). !>
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. !>
A
!> A is COMPLEX*16 array, dimension (NMAX*NMAX) !>
ASAV
!> ASAV is COMPLEX*16 array, dimension (NMAX*NMAX) !>
AFAC
!> AFAC is COMPLEX*16 array, dimension (NMAX*NMAX) !>
AINV
!> AINV is COMPLEX*16 array, dimension (NMAX*NMAX) !>
B
!> B is COMPLEX*16 array, dimension (NMAX*MAXRHS) !>
BSAV
!> BSAV is COMPLEX*16 array, dimension (NMAX*MAXRHS) !>
XACT
!> XACT is COMPLEX*16 array, dimension (NMAX*MAXRHS) !>
X
!> X is COMPLEX*16 array, dimension (NMAX*MAXRHS) !>
ARF
!> ARF is COMPLEX*16 array, dimension ((NMAX*(NMAX+1))/2) !>
ARFINV
!> ARFINV is COMPLEX*16 array, dimension ((NMAX*(NMAX+1))/2) !>
Z_WORK_ZLATMS
!> Z_WORK_ZLATMS is COMPLEX*16 array, dimension ( 3*NMAX ) !>
Z_WORK_ZPOT02
!> Z_WORK_ZPOT02 is COMPLEX*16 array, dimension ( NMAX*MAXRHS ) !>
Z_WORK_ZPOT03
!> Z_WORK_ZPOT03 is COMPLEX*16 array, dimension ( NMAX*NMAX ) !>
D_WORK_ZLATMS
!> D_WORK_ZLATMS is DOUBLE PRECISION array, dimension ( NMAX ) !>
D_WORK_ZLANHE
!> D_WORK_ZLANHE is DOUBLE PRECISION array, dimension ( NMAX ) !>
D_WORK_ZPOT01
!> D_WORK_ZPOT01 is DOUBLE PRECISION array, dimension ( NMAX ) !>
D_WORK_ZPOT02
!> D_WORK_ZPOT02 is DOUBLE PRECISION array, dimension ( NMAX ) !>
D_WORK_ZPOT03
!> D_WORK_ZPOT03 is DOUBLE PRECISION array, dimension ( NMAX ) !>
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 238 of file zdrvrfp.f.