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

# zlahilb.f(3)

## NAME

TESTING/MATGEN/zlahilb.f

## SYNOPSIS

### Functions/Subroutines

subroutine **zlahilb** (n, nrhs, a, lda, x, ldx, b, ldb, work, info, path)\
 **ZLAHILB**

## Function/Subroutine Documentation

### subroutine zlahilb (integer n, integer nrhs, complex\*16, dimension(lda,n) a, integer lda, complex\*16, dimension(ldx, nrhs) x, integer ldx, complex\*16, dimension(ldb, nrhs) b, integer ldb, double precision, dimension(n) work, integer info, character\*3 path)

**ZLAHILB**

**Purpose:**

```
!>
!> ZLAHILB generates an N by N scaled Hilbert matrix in A along with
!> NRHS right-hand sides in B and solutions in X such that A*X=B.
!>
!> The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
!> entries are integers.  The right-hand sides are the first NRHS
!> columns of M * the identity matrix, and the solutions are the
!> first NRHS columns of the inverse Hilbert matrix.
!>
!> The condition number of the Hilbert matrix grows exponentially with
!> its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
!> Hilbert matrices beyond a relatively small dimension cannot be
!> generated exactly without extra precision.  Precision is exhausted
!> when the largest entry in the inverse Hilbert matrix is greater than
!> 2 to the power of the number of bits in the fraction of the data type
!> used plus one, which is 24 for single precision.
!>
!> In single, the generated solution is exact for N <= 6 and has
!> small componentwise error for 7 <= N <= 11.
!>
```

**Parameters**

*N*

```
!>          N is INTEGER
!>          The dimension of the matrix A.
!>
```

*NRHS*

```
!>          NRHS is INTEGER
!>          The requested number of right-hand sides.
!>
```

*A*

```
!>          A is COMPLEX array, dimension (LDA, N)
!>          The generated scaled Hilbert matrix.
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= N.
!>
```

*X*

```
!>          X is COMPLEX array, dimension (LDX, NRHS)
!>          The generated exact solutions.  Currently, the first NRHS
!>          columns of the inverse Hilbert matrix.
!>
```

*LDX*

```
!>          LDX is INTEGER
!>          The leading dimension of the array X.  LDX >= N.
!>
```

*B*

```
!>          B is REAL array, dimension (LDB, NRHS)
!>          The generated right-hand sides.  Currently, the first NRHS
!>          columns of LCM(1, 2, ..., 2*N-1) * the identity matrix.
!>
```

*LDB*

```
!>          LDB is INTEGER
!>          The leading dimension of the array B.  LDB >= N.
!>
```

*WORK*

```
!>          WORK is REAL array, dimension (N)
!>
```

*INFO*

```
!>          INFO is INTEGER
!>          = 0: successful exit
!>          = 1: N is too large; the data is still generated but may not
!>               be not exact.
!>          < 0: if INFO = -i, the i-th argument had an illegal value
!>
```

*PATH*

```
!>          PATH is CHARACTER*3
!>          The LAPACK path name.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **132** of file **zlahilb.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
