Contents

# ?lasdq

Computes the SVD of a real bidiagonal matrix with diagonal
d
and off-diagonal
e
. Used by
?bdsdc
.

## Syntax

Include Files
• mkl.h
Description
The routine
?lasdq
computes the singular value decomposition (
SVD
) of a real (upper or lower) bidiagonal matrix with diagonal
d
and off-diagonal
e
, accumulating the transformations if desired. If
B
is the input bidiagonal matrix, the algorithm computes orthogonal matrices
Q
and
P
such that
B
=
Q
*
S
*
P
T
. The singular values
S
are overwritten on
d
.
The input matrix
U
is changed to
U
*
Q
if desired.
The input matrix
VT
is changed to
P
T
*
VT
if desired.
The input matrix
C
is changed to
Q
T
*
C
if desired.
Input Parameters
uplo
On entry,
uplo
specifies whether the input bidiagonal matrix is upper or lower bidiagonal.
If
uplo
=
'U'
or
'u'
,
B
is upper bidiagonal;
If
uplo
=
'L'
or
'l'
,
B
is lower bidiagonal.
sqre
= 0: then the input matrix is
n
-by-
n
.
= 1: then the input matrix is
n
-by-(
n
+1) if
uplu
=
'U'
and (
n
+1)-by-
n
if
uplu
=
'L'
. The bidiagonal matrix has
n
=
nl
+
nr
+ 1
rows and
m
=
n
+
sqre
n
columns.
n
On entry,
n
specifies the number of rows and columns in the matrix.
n
must be at least 0.
ncvt
On entry,
ncvt
specifies the number of columns of the matrix
VT
.
ncvt
must be at least 0.
nru
On entry,
nru
specifies the number of rows of the matrix
U
.
nru
must be at least 0.
ncc
On entry,
ncc
specifies the number of columns of the matrix
C
.
ncc
must be at least 0.
d
Array,
DIMENSION
(
n
). On entry,
d
contains the diagonal entries of the bidiagonal matrix.
e
Array,
DIMENSION
is (
n
-1) if
sqre
= 0
and
n
if
sqre
= 1
. On entry, the entries of
e
contain the off-diagonal entries of the bidiagonal matrix.
vt
Array,
DIMENSION
(
ldvt
,
ncvt
). On entry, contains a matrix which on exit has been premultiplied by
P
T
, dimension
n
-by-
ncvt
if
sqre
= 0
and (
n
+1)-by-
ncvt
if
sqre
= 1
(not referenced if
ncvt
=0).
ldvt
On entry,
ldvt
vt
as declared in the calling (sub) program.
ldvt
must be at least 1. If
ncvt
is nonzero,
ldvt
must also be at least
n
.
u
Array,
DIMENSION
(
ldu
,
n
). On entry, contains a matrix which on exit has been postmultiplied by
Q
, dimension
nru
-by-
n
if
sqre
= 0
and
nru
-by-(
n
+1) if
sqre
= 1
(not referenced if
nru
=0).
ldu
On entry,
ldu
u
as declared in the calling (sub) program.
ldu
must be at least
max(1,
nru
)
.
c
Array,
DIMENSION
(
ldc
,
ncc
). On entry, contains an
n
-by-
ncc
matrix which on exit has been premultiplied by
Q'
, dimension
n
-by-
ncc
if
sqre
= 0
and (
n
+1)-by-
ncc
if
sqre
= 1
(not referenced if
ncc
=0).
ldc
On entry,
ldc
C
as declared in the calling (sub) program.
ldc
must be at least 1. If
ncc
is non-zero,
ldc
must also be at least
n
.
work
Array,
DIMENSION
(4
n
). This is a workspace array. Only referenced if one of
ncvt
,
nru
, or
ncc
is nonzero, and if
n
is at least 2.
Output Parameters
d
On normal exit,
d
contains the singular values in ascending order.
e
On normal exit,
e
will contain 0. If the algorithm does not converge,
d
and
e
will contain the diagonal and superdiagonal entries of a bidiagonal matrix orthogonally equivalent to the one given as input.
vt
On exit, the matrix has been premultiplied by
P
'.
u
On exit, the matrix has been postmultiplied by
Q
.
c
On exit, the matrix has been premultiplied by
Q
'.
info
On exit, a value of 0 indicates a successful exit. If
info
< 0
, argument number -
info
is illegal. If
info
> 0
, the algorithm did not converge, and
info
specifies how many superdiagonals did not converge.

#### Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.