---
name: "pteqr"
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/pteqr"
---

# pteqr(3)

pteqr: eig, positive definite tridiagonal

## NAME

pteqr - pteqr: eig, positive definite tridiagonal

## SYNOPSIS

### Functions

subroutine **cpteqr** (compz, n, d, e, z, ldz, work, info)\
 **CPTEQR**  subroutine **dpteqr** (compz, n, d, e, z, ldz, work, info)\
 **DPTEQR**  subroutine **spteqr** (compz, n, d, e, z, ldz, work, info)\
 **SPTEQR**  subroutine **zpteqr** (compz, n, d, e, z, ldz, work, info)\
 **ZPTEQR**

## Detailed Description

## Function Documentation

### subroutine cpteqr (character compz, integer n, real, dimension( \* ) d, real, dimension( \* ) e, complex, dimension( ldz, \* ) z, integer ldz, real, dimension( \* ) work, integer info)

**CPTEQR**

**Purpose:**

```
!>
!> CPTEQR computes all eigenvalues and, optionally, eigenvectors of a
!> symmetric positive definite tridiagonal matrix by first factoring the
!> matrix using SPTTRF and then calling CBDSQR to compute the singular
!> values of the bidiagonal factor.
!>
!> This routine computes the eigenvalues of the positive definite
!> tridiagonal matrix to high relative accuracy.  This means that if the
!> eigenvalues range over many orders of magnitude in size, then the
!> small eigenvalues and corresponding eigenvectors will be computed
!> more accurately than, for example, with the standard QR method.
!>
!> The eigenvectors of a full or band positive definite Hermitian matrix
!> can also be found if CHETRD, CHPTRD, or CHBTRD has been used to
!> reduce this matrix to tridiagonal form.  (The reduction to
!> tridiagonal form, however, may preclude the possibility of obtaining
!> high relative accuracy in the small eigenvalues of the original
!> matrix, if these eigenvalues range over many orders of magnitude.)
!>
```

**Parameters**

*COMPZ*

```
!>          COMPZ is CHARACTER*1
!>          = 'N':  Compute eigenvalues only.
!>          = 'V':  Compute eigenvectors of original Hermitian
!>                  matrix also.  Array Z contains the unitary matrix
!>                  used to reduce the original matrix to tridiagonal
!>                  form.
!>          = 'I':  Compute eigenvectors of tridiagonal matrix also.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix.  N >= 0.
!>
```

*D*

```
!>          D is REAL array, dimension (N)
!>          On entry, the n diagonal elements of the tridiagonal matrix.
!>          On normal exit, D contains the eigenvalues, in descending
!>          order.
!>
```

*E*

```
!>          E is REAL array, dimension (N-1)
!>          On entry, the (n-1) subdiagonal elements of the tridiagonal
!>          matrix.
!>          On exit, E has been destroyed.
!>
```

*Z*

```
!>          Z is COMPLEX array, dimension (LDZ, N)
!>          On entry, if COMPZ = 'V', the unitary matrix used in the
!>          reduction to tridiagonal form.
!>          On exit, if COMPZ = 'V', the orthonormal eigenvectors of the
!>          original Hermitian matrix;
!>          if COMPZ = 'I', the orthonormal eigenvectors of the
!>          tridiagonal matrix.
!>          If INFO > 0 on exit, Z contains the eigenvectors associated
!>          with only the stored eigenvalues.
!>          If  COMPZ = 'N', then Z is not referenced.
!>
```

*LDZ*

```
!>          LDZ is INTEGER
!>          The leading dimension of the array Z.  LDZ >= 1, and if
!>          COMPZ = 'V' or 'I', LDZ >= max(1,N).
!>
```

*WORK*

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

*INFO*

```
!>          INFO is INTEGER
!>          = 0:  successful exit.
!>          < 0:  if INFO = -i, the i-th argument had an illegal value.
!>          > 0:  if INFO = i, and i is:
!>                <= N  the Cholesky factorization of the matrix could
!>                      not be performed because the leading principal
!>                      minor of order i was not positive.
!>                > N   the SVD algorithm failed to converge;
!>                      if INFO = N+i, i off-diagonal elements of the
!>                      bidiagonal factor did not converge to zero.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **144** of file **cpteqr.f**.

### subroutine dpteqr (character compz, integer n, double precision, dimension( \* ) d, double precision, dimension( \* ) e, double precision, dimension( ldz, \* ) z, integer ldz, double precision, dimension( \* ) work, integer info)

**DPTEQR**

**Purpose:**

```
!>
!> DPTEQR computes all eigenvalues and, optionally, eigenvectors of a
!> symmetric positive definite tridiagonal matrix by first factoring the
!> matrix using DPTTRF, and then calling DBDSQR to compute the singular
!> values of the bidiagonal factor.
!>
!> This routine computes the eigenvalues of the positive definite
!> tridiagonal matrix to high relative accuracy.  This means that if the
!> eigenvalues range over many orders of magnitude in size, then the
!> small eigenvalues and corresponding eigenvectors will be computed
!> more accurately than, for example, with the standard QR method.
!>
!> The eigenvectors of a full or band symmetric positive definite matrix
!> can also be found if DSYTRD, DSPTRD, or DSBTRD has been used to
!> reduce this matrix to tridiagonal form. (The reduction to tridiagonal
!> form, however, may preclude the possibility of obtaining high
!> relative accuracy in the small eigenvalues of the original matrix, if
!> these eigenvalues range over many orders of magnitude.)
!>
```

**Parameters**

*COMPZ*

```
!>          COMPZ is CHARACTER*1
!>          = 'N':  Compute eigenvalues only.
!>          = 'V':  Compute eigenvectors of original symmetric
!>                  matrix also.  Array Z contains the orthogonal
!>                  matrix used to reduce the original matrix to
!>                  tridiagonal form.
!>          = 'I':  Compute eigenvectors of tridiagonal matrix also.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix.  N >= 0.
!>
```

*D*

```
!>          D is DOUBLE PRECISION array, dimension (N)
!>          On entry, the n diagonal elements of the tridiagonal
!>          matrix.
!>          On normal exit, D contains the eigenvalues, in descending
!>          order.
!>
```

*E*

```
!>          E is DOUBLE PRECISION array, dimension (N-1)
!>          On entry, the (n-1) subdiagonal elements of the tridiagonal
!>          matrix.
!>          On exit, E has been destroyed.
!>
```

*Z*

```
!>          Z is DOUBLE PRECISION array, dimension (LDZ, N)
!>          On entry, if COMPZ = 'V', the orthogonal matrix used in the
!>          reduction to tridiagonal form.
!>          On exit, if COMPZ = 'V', the orthonormal eigenvectors of the
!>          original symmetric matrix;
!>          if COMPZ = 'I', the orthonormal eigenvectors of the
!>          tridiagonal matrix.
!>          If INFO > 0 on exit, Z contains the eigenvectors associated
!>          with only the stored eigenvalues.
!>          If  COMPZ = 'N', then Z is not referenced.
!>
```

*LDZ*

```
!>          LDZ is INTEGER
!>          The leading dimension of the array Z.  LDZ >= 1, and if
!>          COMPZ = 'V' or 'I', LDZ >= max(1,N).
!>
```

*WORK*

```
!>          WORK is DOUBLE PRECISION array, dimension (4*N)
!>
```

*INFO*

```
!>          INFO is INTEGER
!>          = 0:  successful exit.
!>          < 0:  if INFO = -i, the i-th argument had an illegal value.
!>          > 0:  if INFO = i, and i is:
!>                <= N  the Cholesky factorization of the matrix could
!>                      not be performed because the leading principal
!>                      minor of order i was not positive.
!>                > N   the SVD algorithm failed to converge;
!>                      if INFO = N+i, i off-diagonal elements of the
!>                      bidiagonal factor did not converge to zero.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **144** of file **dpteqr.f**.

### subroutine spteqr (character compz, integer n, real, dimension( \* ) d, real, dimension( \* ) e, real, dimension( ldz, \* ) z, integer ldz, real, dimension( \* ) work, integer info)

**SPTEQR**

**Purpose:**

```
!>
!> SPTEQR computes all eigenvalues and, optionally, eigenvectors of a
!> symmetric positive definite tridiagonal matrix by first factoring the
!> matrix using SPTTRF, and then calling SBDSQR to compute the singular
!> values of the bidiagonal factor.
!>
!> This routine computes the eigenvalues of the positive definite
!> tridiagonal matrix to high relative accuracy.  This means that if the
!> eigenvalues range over many orders of magnitude in size, then the
!> small eigenvalues and corresponding eigenvectors will be computed
!> more accurately than, for example, with the standard QR method.
!>
!> The eigenvectors of a full or band symmetric positive definite matrix
!> can also be found if SSYTRD, SSPTRD, or SSBTRD has been used to
!> reduce this matrix to tridiagonal form. (The reduction to tridiagonal
!> form, however, may preclude the possibility of obtaining high
!> relative accuracy in the small eigenvalues of the original matrix, if
!> these eigenvalues range over many orders of magnitude.)
!>
```

**Parameters**

*COMPZ*

```
!>          COMPZ is CHARACTER*1
!>          = 'N':  Compute eigenvalues only.
!>          = 'V':  Compute eigenvectors of original symmetric
!>                  matrix also.  Array Z contains the orthogonal
!>                  matrix used to reduce the original matrix to
!>                  tridiagonal form.
!>          = 'I':  Compute eigenvectors of tridiagonal matrix also.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix.  N >= 0.
!>
```

*D*

```
!>          D is REAL array, dimension (N)
!>          On entry, the n diagonal elements of the tridiagonal
!>          matrix.
!>          On normal exit, D contains the eigenvalues, in descending
!>          order.
!>
```

*E*

```
!>          E is REAL array, dimension (N-1)
!>          On entry, the (n-1) subdiagonal elements of the tridiagonal
!>          matrix.
!>          On exit, E has been destroyed.
!>
```

*Z*

```
!>          Z is REAL array, dimension (LDZ, N)
!>          On entry, if COMPZ = 'V', the orthogonal matrix used in the
!>          reduction to tridiagonal form.
!>          On exit, if COMPZ = 'V', the orthonormal eigenvectors of the
!>          original symmetric matrix;
!>          if COMPZ = 'I', the orthonormal eigenvectors of the
!>          tridiagonal matrix.
!>          If INFO > 0 on exit, Z contains the eigenvectors associated
!>          with only the stored eigenvalues.
!>          If  COMPZ = 'N', then Z is not referenced.
!>
```

*LDZ*

```
!>          LDZ is INTEGER
!>          The leading dimension of the array Z.  LDZ >= 1, and if
!>          COMPZ = 'V' or 'I', LDZ >= max(1,N).
!>
```

*WORK*

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

*INFO*

```
!>          INFO is INTEGER
!>          = 0:  successful exit.
!>          < 0:  if INFO = -i, the i-th argument had an illegal value.
!>          > 0:  if INFO = i, and i is:
!>                <= N  the Cholesky factorization of the matrix could
!>                      not be performed because the leading principal
!>                      minor of order i was not positive.
!>                > N   the SVD algorithm failed to converge;
!>                      if INFO = N+i, i off-diagonal elements of the
!>                      bidiagonal factor did not converge to zero.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **144** of file **spteqr.f**.

### subroutine zpteqr (character compz, integer n, double precision, dimension( \* ) d, double precision, dimension( \* ) e, complex\*16, dimension( ldz, \* ) z, integer ldz, double precision, dimension( \* ) work, integer info)

**ZPTEQR**

**Purpose:**

```
!>
!> ZPTEQR computes all eigenvalues and, optionally, eigenvectors of a
!> symmetric positive definite tridiagonal matrix by first factoring the
!> matrix using DPTTRF and then calling ZBDSQR to compute the singular
!> values of the bidiagonal factor.
!>
!> This routine computes the eigenvalues of the positive definite
!> tridiagonal matrix to high relative accuracy.  This means that if the
!> eigenvalues range over many orders of magnitude in size, then the
!> small eigenvalues and corresponding eigenvectors will be computed
!> more accurately than, for example, with the standard QR method.
!>
!> The eigenvectors of a full or band positive definite Hermitian matrix
!> can also be found if ZHETRD, ZHPTRD, or ZHBTRD has been used to
!> reduce this matrix to tridiagonal form.  (The reduction to
!> tridiagonal form, however, may preclude the possibility of obtaining
!> high relative accuracy in the small eigenvalues of the original
!> matrix, if these eigenvalues range over many orders of magnitude.)
!>
```

**Parameters**

*COMPZ*

```
!>          COMPZ is CHARACTER*1
!>          = 'N':  Compute eigenvalues only.
!>          = 'V':  Compute eigenvectors of original Hermitian
!>                  matrix also.  Array Z contains the unitary matrix
!>                  used to reduce the original matrix to tridiagonal
!>                  form.
!>          = 'I':  Compute eigenvectors of tridiagonal matrix also.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix.  N >= 0.
!>
```

*D*

```
!>          D is DOUBLE PRECISION array, dimension (N)
!>          On entry, the n diagonal elements of the tridiagonal matrix.
!>          On normal exit, D contains the eigenvalues, in descending
!>          order.
!>
```

*E*

```
!>          E is DOUBLE PRECISION array, dimension (N-1)
!>          On entry, the (n-1) subdiagonal elements of the tridiagonal
!>          matrix.
!>          On exit, E has been destroyed.
!>
```

*Z*

```
!>          Z is COMPLEX*16 array, dimension (LDZ, N)
!>          On entry, if COMPZ = 'V', the unitary matrix used in the
!>          reduction to tridiagonal form.
!>          On exit, if COMPZ = 'V', the orthonormal eigenvectors of the
!>          original Hermitian matrix;
!>          if COMPZ = 'I', the orthonormal eigenvectors of the
!>          tridiagonal matrix.
!>          If INFO > 0 on exit, Z contains the eigenvectors associated
!>          with only the stored eigenvalues.
!>          If  COMPZ = 'N', then Z is not referenced.
!>
```

*LDZ*

```
!>          LDZ is INTEGER
!>          The leading dimension of the array Z.  LDZ >= 1, and if
!>          COMPZ = 'V' or 'I', LDZ >= max(1,N).
!>
```

*WORK*

```
!>          WORK is DOUBLE PRECISION array, dimension (4*N)
!>
```

*INFO*

```
!>          INFO is INTEGER
!>          = 0:  successful exit.
!>          < 0:  if INFO = -i, the i-th argument had an illegal value.
!>          > 0:  if INFO = i, and i is:
!>                <= N  the Cholesky factorization of the matrix could
!>                      not be performed because the leading principal
!>                      minor of order i was not positive.
!>                > N   the SVD algorithm failed to converge;
!>                      if INFO = N+i, i off-diagonal elements of the
!>                      bidiagonal factor did not converge to zero.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **144** of file **zpteqr.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
