CDRVRFP
Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
November 2008
November 2008
Purpose
CDRVRFP tests the LAPACK RFP routines:
CPFTRF, CPFTRS, and CPFTRI.
This testing routine follow the same tests as CDRVPO (test for the full
format Symmetric Positive Definite solver).
The tests are performed in Full Format, convertion back and forth from
full format to RFP format are performed using the routines CTRTTF and
CTFTTR.
First, a specific matrix A of size N is created. There is nine types of
different matrixes possible.
1. Diagonal 6. Random, CNDNUM = sqrt(0.1/EPS)
2. Random, CNDNUM = 2 7. Random, CNDNUM = 0.1/EPS
*3. First row and column zero 8. Scaled near underflow
*4. Last row and column zero 9. Scaled near overflow
*5. Middle row and column zero
(* - tests error exits from CPFTRF, no test ratios are computed)
A solution XACT of size N-by-NRHS is created and the associated right
hand side B as well. Then CPFTRF is called to compute L (or U), the
Cholesky factor of A. Then L (or U) is used to solve the linear system
of equations AX = B. This gives X. Then L (or U) is used to compute the
inverse of A, AINV. The following four tests are then performed:
(1) norm( L*L' - A ) / ( N * norm(A) * EPS ) or
norm( U'*U - A ) / ( N * norm(A) * EPS ),
(2) norm(B - A*X) / ( norm(A) * norm(X) * EPS ),
(3) norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ),
(4) ( norm(X-XACT) * RCOND ) / ( norm(XACT) * EPS ),
where EPS is the machine precision, RCOND the condition number of A, and
norm( . ) the 1-norm for (1,2,3) and the inf-norm for (4).
Errors occur when INFO parameter is not as expected. Failures occur when
a test ratios is greater than THRES.
CPFTRF, CPFTRS, and CPFTRI.
This testing routine follow the same tests as CDRVPO (test for the full
format Symmetric Positive Definite solver).
The tests are performed in Full Format, convertion back and forth from
full format to RFP format are performed using the routines CTRTTF and
CTFTTR.
First, a specific matrix A of size N is created. There is nine types of
different matrixes possible.
1. Diagonal 6. Random, CNDNUM = sqrt(0.1/EPS)
2. Random, CNDNUM = 2 7. Random, CNDNUM = 0.1/EPS
*3. First row and column zero 8. Scaled near underflow
*4. Last row and column zero 9. Scaled near overflow
*5. Middle row and column zero
(* - tests error exits from CPFTRF, no test ratios are computed)
A solution XACT of size N-by-NRHS is created and the associated right
hand side B as well. Then CPFTRF is called to compute L (or U), the
Cholesky factor of A. Then L (or U) is used to solve the linear system
of equations AX = B. This gives X. Then L (or U) is used to compute the
inverse of A, AINV. The following four tests are then performed:
(1) norm( L*L' - A ) / ( N * norm(A) * EPS ) or
norm( U'*U - A ) / ( N * norm(A) * EPS ),
(2) norm(B - A*X) / ( norm(A) * norm(X) * EPS ),
(3) norm( I - A*AINV ) / ( N * norm(A) * norm(AINV) * EPS ),
(4) ( norm(X-XACT) * RCOND ) / ( norm(XACT) * EPS ),
where EPS is the machine precision, RCOND the condition number of A, and
norm( . ) the 1-norm for (1,2,3) and the inf-norm for (4).
Errors occur when INFO parameter is not as expected. Failures occur when
a test ratios is greater than THRES.
Arguments
NOUT |
(input) INTEGER
The unit number for output.
|
NN |
(input) INTEGER
The number of values of N contained in the vector NVAL.
|
NVAL |
(input) INTEGER array, dimension (NN)
The values of the matrix dimension N.
|
NNS |
(input) INTEGER
The number of values of NRHS contained in the vector NSVAL.
|
NSVAL |
(input) INTEGER array, dimension (NNS)
The values of the number of right-hand sides NRHS.
|
NNT |
(input) INTEGER
The number of values of MATRIX TYPE contained in the vector NTVAL.
|
NTVAL |
(input) INTEGER array, dimension (NNT)
The values of matrix type (between 0 and 9 for PO/PP/PF matrices).
|
THRESH |
(input) 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. |
A |
(workspace) COMPLEX array, dimension (NMAX*NMAX)
|
ASAV |
(workspace) COMPLEX array, dimension (NMAX*NMAX)
|
AFAC |
(workspace) COMPLEX array, dimension (NMAX*NMAX)
|
AINV |
(workspace) COMPLEX array, dimension (NMAX*NMAX)
|
B |
(workspace) COMPLEX array, dimension (NMAX*MAXRHS)
|
BSAV |
(workspace) COMPLEX array, dimension (NMAX*MAXRHS)
|
XACT |
(workspace) COMPLEX array, dimension (NMAX*MAXRHS)
|
X |
(workspace) COMPLEX array, dimension (NMAX*MAXRHS)
|
ARF |
(workspace) COMPLEX array, dimension ((NMAX*(NMAX+1))/2)
|
ARFINV |
(workspace) COMPLEX array, dimension ((NMAX*(NMAX+1))/2)
|
C_WORK_CLATMS |
(workspace) COMPLEX array, dimension ( 3*NMAX )
|
C_WORK_CPOT02 |
(workspace) COMPLEX array, dimension ( NMAX*MAXRHS )
|
C_WORK_CPOT03 |
(workspace) COMPLEX array, dimension ( NMAX*NMAX )
|
S_WORK_CLATMS |
(workspace) REAL array, dimension ( NMAX )
|
S_WORK_CLANHE |
(workspace) REAL array, dimension ( NMAX )
|
S_WORK_CPOT01 |
(workspace) REAL array, dimension ( NMAX )
|
S_WORK_CPOT02 |
(workspace) REAL array, dimension ( NMAX )
|
S_WORK_CPOT03 |
(workspace) REAL array, dimension ( NMAX )
|