---
name: "zhet01_3.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/zhet01_3.f"
---

# zhet01\_3.f(3)

## NAME

TESTING/LIN/zhet01\_3.f

## SYNOPSIS

### Functions/Subroutines

subroutine **zhet01\_3** (uplo, n, a, lda, afac, ldafac, e, ipiv, c, ldc, rwork, resid)\
 **ZHET01\_3**

## Function/Subroutine Documentation

### subroutine zhet01\_3 (character uplo, integer n, complex\*16, dimension( lda, \* ) a, integer lda, complex\*16, dimension( ldafac, \* ) afac, integer ldafac, complex\*16, dimension( \* ) e, integer, dimension( \* ) ipiv, complex\*16, dimension( ldc, \* ) c, integer ldc, double precision, dimension( \* ) rwork, double precision resid)

**ZHET01\_3**

**Purpose:**

```
!>
!> ZHET01_3 reconstructs a Hermitian indefinite matrix A from its
!> block L*D*L' or U*D*U' factorization computed by ZHETRF_RK
!> (or ZHETRF_BK) and computes the residual
!>    norm( C - A ) / ( N * norm(A) * EPS ),
!> where C is the reconstructed matrix and EPS is the machine epsilon.
!>
```

**Parameters**

*UPLO*

```
!>          UPLO is CHARACTER*1
!>          Specifies whether the upper or lower triangular part of the
!>          Hermitian matrix A is stored:
!>          = 'U':  Upper triangular
!>          = 'L':  Lower triangular
!>
```

*N*

```
!>          N is INTEGER
!>          The number of rows and columns of the matrix A.  N >= 0.
!>
```

*A*

```
!>          A is COMPLEX*16 array, dimension (LDA,N)
!>          The original Hermitian matrix A.
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N)
!>
```

*AFAC*

```
!>          AFAC is COMPLEX*16 array, dimension (LDAFAC,N)
!>          Diagonal of the block diagonal matrix D and factors U or L
!>          as computed by ZHETRF_RK and ZHETRF_BK:
!>            a) ONLY diagonal elements of the Hermitian 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.
!>
```

*LDAFAC*

```
!>          LDAFAC is INTEGER
!>          The leading dimension of the array AFAC.
!>          LDAFAC >= max(1,N).
!>
```

*E*

```
!>          E is COMPLEX*16 array, dimension (N)
!>          On entry, contains the superdiagonal (or subdiagonal)
!>          elements of the Hermitian 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.
!>
```

*IPIV*

```
!>          IPIV is INTEGER array, dimension (N)
!>          The pivot indices from ZHETRF_RK (or ZHETRF_BK).
!>
```

*C*

```
!>          C is COMPLEX*16 array, dimension (LDC,N)
!>
```

*LDC*

```
!>          LDC is INTEGER
!>          The leading dimension of the array C.  LDC >= max(1,N).
!>
```

*RWORK*

```
!>          RWORK is DOUBLE PRECISION array, dimension (N)
!>
```

*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 )
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **139** of file **zhet01\_3.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
