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

# dsvdch.f(3)

## NAME

TESTING/EIG/dsvdch.f

## SYNOPSIS

### Functions/Subroutines

subroutine **dsvdch** (n, s, e, svd, tol, info)\
 **DSVDCH**

## Function/Subroutine Documentation

### subroutine dsvdch (integer n, double precision, dimension( \* ) s, double precision, dimension( \* ) e, double precision, dimension( \* ) svd, double precision tol, integer info)

**DSVDCH**

**Purpose:**

```
!>
!> DSVDCH checks to see if SVD(1) ,..., SVD(N) are accurate singular
!> values of the bidiagonal matrix B with diagonal entries
!> S(1) ,..., S(N) and superdiagonal entries E(1) ,..., E(N-1)).
!> It does this by expanding each SVD(I) into an interval
!> [SVD(I) * (1-EPS) , SVD(I) * (1+EPS)], merging overlapping intervals
!> if any, and using Sturm sequences to count and verify whether each
!> resulting interval has the correct number of singular values (using
!> DSVDCT). Here EPS=TOL*MAX(N/10,1)*MAZHEP, where MACHEP is the
!> machine precision. The routine assumes the singular values are sorted
!> with SVD(1) the largest and SVD(N) smallest.  If each interval
!> contains the correct number of singular values, INFO = 0 is returned,
!> otherwise INFO is the index of the first singular value in the first
!> bad interval.
!>
```

**Parameters**

*N*

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

*S*

```
!>          S is DOUBLE PRECISION array, dimension (N)
!>          The diagonal entries of the bidiagonal matrix B.
!>
```

*E*

```
!>          E is DOUBLE PRECISION array, dimension (N-1)
!>          The superdiagonal entries of the bidiagonal matrix B.
!>
```

*SVD*

```
!>          SVD is DOUBLE PRECISION array, dimension (N)
!>          The computed singular values to be checked.
!>
```

*TOL*

```
!>          TOL is DOUBLE PRECISION
!>          Error tolerance for checking, a multiplier of the
!>          machine precision.
!>
```

*INFO*

```
!>          INFO is INTEGER
!>          =0 if the singular values are all correct (to within
!>             1 +- TOL*MAZHEPS)
!>          >0 if the interval containing the INFO-th singular value
!>             contains the incorrect number of singular values.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **96** of file **dsvdch.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
