---
name: "slasd0"
section: "3lapack"
platform: "linux"
package: "liblapack-doc"
version: "3.2.1-8"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/slasd0/3lapack"
---

# slasd0(3lapack)

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

## NAME

SLASD0 - 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

## SYNOPSIS

- SUBROUTINE SLASD0(

  N, SQRE, D, E, U, LDU, VT, LDVT, SMLSIZ, IWORK, WORK, INFO )

- INTEGER

  INFO, LDU, LDVT, N, SMLSIZ, SQRE

- INTEGER

  IWORK( \* )

- REAL

  D( \* ), E( \* ), U( LDU, \* ), VT( LDVT, \* ), WORK( \* )

## 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.\

## ARGUMENTS

- N (input) INTEGER

  On entry, the row dimension of the upper bidiagonal matrix. This is also the dimension of the main diagonal array D.

- SQRE (input) 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 (input/output) 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 (input) REAL array, dimension (M-1)

  Contains the subdiagonal entries of the bidiagonal matrix. On exit, E has been destroyed.

- U (output) REAL array, dimension at least (LDQ, N)

  On exit, U contains the left singular vectors.

- LDU (input) INTEGER

  On entry, leading dimension of U.

- VT (output) REAL array, dimension at least (LDVT, M)

  On exit, VT' contains the right singular vectors.

- LDVT (input) INTEGER

  On entry, leading dimension of VT. SMLSIZ (input) INTEGER On entry, maximum size of the subproblems at the bottom of the computation tree.

- IWORK (workspace) INTEGER array, dimension (8\*N)

  - WORK (workspace) REAL array, dimension (3\*M\*\*2+2\*M)

  - INFO (output) INTEGER

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

## FURTHER DETAILS

Based on contributions by\
\
    Ming Gu and Huan Ren, Computer Science Division, University of\
    California at Berkeley, USA\
