---
name: "zdrvrfp.f"
section: "3"
platform: "linux"
package: "lapack-doc"
version: "3.12.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/zdrvrfp.f"
---

# zdrvrfp.f(3)

## NAME

TESTING/LIN/zdrvrfp.f

## SYNOPSIS

### 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**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
