Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
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

call slasd0
(
n
,
sqre
,
d
,
e
,
u
,
ldu
,
vt
,
ldvt
,
smlsiz
,
iwork
,
work
,
info
)
call dlasd0
(
n
,
sqre
,
d
,
e
,
u
,
ldu
,
vt
,
ldvt
,
smlsiz
,
iwork
,
work
,
info
)
Include Files
  • mkl.fi
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
INTEGER
.
On entry, the row dimension of the upper bidiagonal matrix. This is also the dimension of the main diagonal array
d
.
sqre
INTEGER
.
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
REAL
for
slasd0
DOUBLE PRECISION
for
dlasd0
Array,
DIMENSION
(
n
). On entry,
d
contains the main diagonal of the bidiagonal matrix.
e
REAL
for
slasd0
DOUBLE PRECISION
for
dlasd0
Array,
DIMENSION
(
m
-1). Contains the subdiagonal entries of the bidiagonal matrix. On exit,
e
is destroyed.
ldu
INTEGER
.
On entry, leading dimension of the output array
u
.
ldvt
INTEGER
.
On entry, leading dimension of the output array
vt
.
smlsiz
INTEGER
.
On entry, maximum size of the subproblems at the bottom of the computation tree.
iwork
INTEGER
.
Workspace array,
dimension
must be at least
(8
n
)
.
work
REAL
for
slasd0
DOUBLE PRECISION
for
dlasd0
Workspace array,
dimension
must be at least
(3
m
2
+2
m
)
.
Output Parameters
d
On exit
d
, If
info
= 0