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

# slasd0.f(3)

## NAME

SRC/slasd0.f

## SYNOPSIS

### Functions/Subroutines

subroutine **slasd0** (n, sqre, d, e, u, ldu, vt, ldvt, smlsiz, iwork, work, info)\
 **SLASD0** computes the singular values of a real upper bidiagonal n-by-m matrix B with diagonal d and off-diagonal e. Used by sbdsdc.

## Function/Subroutine Documentation

### subroutine slasd0 (integer n, integer sqre, real, dimension( \* ) d, real, dimension( \* ) e, real, dimension( ldu, \* ) u, integer ldu, real, dimension( ldvt, \* ) vt, integer ldvt, integer smlsiz, integer, dimension( \* ) iwork, real, dimension( \* ) work, integer info)

**SLASD0** computes the singular values of a real upper bidiagonal n-by-m matrix B with diagonal d and off-diagonal e. Used by sbdsdc.

**Purpose:**

```
!>
!> Using a divide and conquer approach, SLASD0 computes the singular
!> value decomposition (SVD) of a real upper bidiagonal N-by-M
!> matrix B with diagonal D and offdiagonal E, where M = N + SQRE.
!> The algorithm computes orthogonal matrices U and VT such that
!> B = U * S * VT. The singular values S are overwritten on D.
!>
!> A related subroutine, SLASDA, computes only the singular values,
!> and optionally, the singular vectors in compact form.
!>
```

**Parameters**

*N*

```
!>          N is INTEGER
!>         On entry, the row dimension of the upper bidiagonal matrix.
!>         This is also the dimension of the main diagonal array D.
!>
```

*SQRE*

```
!>          SQRE is INTEGER
!>         Specifies the column dimension of the bidiagonal matrix.
!>         = 0: The bidiagonal matrix has column dimension M = N;
!>         = 1: The bidiagonal matrix has column dimension M = N+1;
!>
```

*D*

```
!>          D is REAL array, dimension (N)
!>         On entry D contains the main diagonal of the bidiagonal
!>         matrix.
!>         On exit D, if INFO = 0, contains its singular values.
!>
```

*E*

```
!>          E is REAL array, dimension (M-1)
!>         Contains the subdiagonal entries of the bidiagonal matrix.
!>         On exit, E has been destroyed.
!>
```

*U*

```
!>          U is REAL array, dimension (LDU, N)
!>         On exit, U contains the left singular vectors,
!>          if U passed in as (N, N) Identity.
!>
```

*LDU*

```
!>          LDU is INTEGER
!>         On entry, leading dimension of U.
!>
```

*VT*

```
!>          VT is REAL array, dimension (LDVT, M)
!>         On exit, VT**T contains the right singular vectors,
!>          if VT passed in as (M, M) Identity.
!>
```

*LDVT*

```
!>          LDVT is INTEGER
!>         On entry, leading dimension of VT.
!>
```

*SMLSIZ*

```
!>          SMLSIZ is INTEGER
!>         On entry, maximum size of the subproblems at the
!>         bottom of the computation tree.
!>
```

*IWORK*

```
!>          IWORK is INTEGER array, dimension (8*N)
!>
```

*WORK*

```
!>          WORK is REAL array, dimension (3*M**2+2*M)
!>
```

*INFO*

```
!>          INFO is INTEGER
!>          = 0:  successful exit.
!>          < 0:  if INFO = -i, the i-th argument had an illegal value.
!>          > 0:  if INFO = 1, a singular value did not converge
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Contributors:**

Ming Gu and Huan Ren, Computer Science Division, University of California at Berkeley, USA

Definition at line **150** of file **slasd0.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
