## Developer Reference

• 2020.2
• 07/15/2020
• Public Content
Contents

# ?gejsv

Computes the singular value decomposition using a preconditioned Jacobi SVD method.

## Syntax

Include Files
• mkl.fi
Description
The routine computes the singular value decomposition (SVD) of a real/complex
m
-by-
n
matrix
A
, where
m
n
.
The SVD is written as
A
=
U
*
Σ
*
V
T
, for real routines
A
=
U
*
Σ
*
V
H
, for complex routines
where
Σ
is an
m
-by-
n
matrix which is zero except for its
n
diagonal elements,
U
is an
m
-by-
n
(or
m
-by-
m
) orthonormal matrix, and
V
is an
n
-by-
n
orthogonal matrix. The diagonal elements of
Σ
are the singular values of
A
; the columns of
U
and
V
are the left and right singular vectors of
A
, respectively. The matrices
U
and
V
are computed and stored in the arrays
u
and
v
, respectively. The diagonal of
Σ
is computed and stored in the array
sva
.
The
?gejsv
routine can sometimes compute tiny singular values and their singular vectors much more accurately than other SVD routines.
The routine implements a preconditioned Jacobi SVD algorithm. It uses
?geqp3
,
?geqrf
, and
?gelqf
as preprocessors and preconditioners. Optionally, an additional row pivoting can be used as a preprocessor, which in some cases results in much higher accuracy. An example is matrix
A
with the structure
A = D1 * C * D2
, where
D1
,
D2
are arbitrarily ill-conditioned diagonal matrices and