Developer Reference

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

?gesvd

Computes the singular value decomposition of a general rectangular matrix.

Syntax

call sgesvd
(
jobu
,
jobvt
,
m
,
n
,
a
,
lda
,
s
,
u
,
ldu
,
vt
,
ldvt
,
work
,
lwork
,
info
)
call dgesvd
(
jobu
,
jobvt
,
m
,
n
,
a
,
lda
,
s
,
u
,
ldu
,
vt
,
ldvt
,
work
,
lwork
,
info
)
call cgesvd
(
jobu
,
jobvt
,
m
,
n
,
a
,
lda
,
s
,
u
,
ldu
,
vt
,
ldvt
,
work
,
lwork
,
rwork
,
info
)
call zgesvd
(
jobu
,
jobvt
,
m
,
n
,
a
,
lda
,
s
,
u
,
ldu
,
vt
,
ldvt
,
work
,
lwork
,
rwork
,
info
)
call gesvd
(
a
,
s
[
,
u
]
[
,
vt
]
[
,
ww
]
[
,
job
]
[
,
info
]
)
Include Files
  • mkl.fi
    ,
    lapack.f90
Description
The routine computes the singular value decomposition (SVD) of a real/complex
m
-by-
n
matrix
A
, optionally computing the left and/or right singular vectors. 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 min(
m
,
n
) diagonal elements,
U
is an
m
-by-
m
orthogonal/unitary matrix, and
V
is an
n
-by-
n
orthogonal/unitary matrix. The diagonal elements of
Σ
are the singular values of
A
; they are real and non-negative, and are returned in descending order. The first min(
m
,
n