Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?lasd0

Computes the singular values of a real upper bidiagonal n-by-m matrix B with diagonal d and off-diagonal e. Used by ?bdsdc.

Syntax

void slasd0( lapack_int *n, lapack_int *sqre, float *d, float *e, float *u, lapack_int *ldu, float *vt, lapack_int *ldvt, lapack_int *smlsiz, lapack_int *iwork, float *work, lapack_int *info );

void dlasd0( lapack_int *n, lapack_int *sqre, double *d, double *e, double *u, lapack_int *ldu, double *vt, lapack_int *ldvt, lapack_int *smlsiz, lapack_int *iwork, double *work, lapack_int *info );

Include Files
  • mkl.h
Description

Using a divide and conquer approach, the routine ?lasd0 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.

The related subroutine ?lasda computes only the singular values, and optionally, the singular vectors in compact form.

Input Parameters
n

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

sqre

Specifies the column dimension of the bidiagonal matrix.

If sqre = 0: the bidiagonal matrix has column dimension m = n.

If sqre = 1: the bidiagonal matrix has column dimension m = n+1.

d

Array, DIMENSION (n). On entry, d contains the main diagonal of the bidiagonal matrix.

e

Array, DIMENSION (m-1). Contains the subdiagonal entries of the bidiagonal matrix. On exit, e is destroyed.

ldu

On entry, leading dimension of the output array u.

ldvt

On entry, leading dimension of the output array vt.

smlsiz

On entry, maximum size of the subproblems at the bottom of the computation tree.

iwork

Workspace array, dimension must be at least (8n).

work

Workspace array, dimension must be at least (3m2+2m).

Output Parameters
d

On exit d, If info = 0, contains singular values of the bidiagonal matrix.

u

Array, DIMENSION at least (ldq, n). On exit, u contains the left singular vectors.

vt

Array, DIMENSION at least (ldvt, m). On exit, vtT contains the right singular vectors.

info

If info = 0: successful exit.

If info = -i < 0, the i-th argument had an illegal value.

If info = 1, a singular value did not converge.