public interface gesvdq
GESVDQ computes the singular value decomposition (SVD) of a complex
M-by-N matrix A, where M >= N. The SVD of A is written as
[++] [xx] [x0] [xx]
A = U * SIGMA * V^*, [++] = [xx] * [ox] * [xx]
[++] [xx]
where SIGMA is an N-by-N diagonal matrix, U is an M-by-N orthonormal
matrix, and V is an N-by-N unitary matrix. The diagonal elements
of SIGMA are the singular values of A. The columns of U and V are the
left and the right singular vectors of A, respectively.
Subroutines
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
joba |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobp |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobr |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobu |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobv |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
complex(kind=sp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
s(*) |
|
|
complex(kind=sp),
|
intent(out) |
|
|
:: |
u(ldu,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldu |
|
|
complex(kind=sp),
|
intent(out) |
|
|
:: |
v(ldv,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldv |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
numrank |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
liwork |
|
|
complex(kind=sp),
|
intent(out) |
|
|
:: |
cwork(*) |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
lcwork |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
rwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lrwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
joba |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobp |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobr |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobu |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobv |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
s(*) |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
u(ldu,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldu |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
v(ldv,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldv |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
numrank |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
liwork |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
lwork |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
rwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lrwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
joba |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobp |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobr |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobu |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobv |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
s(*) |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
u(ldu,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldu |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
v(ldv,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldv |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
numrank |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
liwork |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
lwork |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
rwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lrwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
joba |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobp |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobr |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobu |
|
|
character(len=1),
|
intent(in) |
|
|
:: |
jobv |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
complex(kind=dp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
s(*) |
|
|
complex(kind=dp),
|
intent(out) |
|
|
:: |
u(ldu,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldu |
|
|
complex(kind=dp),
|
intent(out) |
|
|
:: |
v(ldv,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldv |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
numrank |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
iwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
liwork |
|
|
complex(kind=dp),
|
intent(out) |
|
|
:: |
cwork(*) |
|
|
integer(kind=ilp),
|
intent(inout) |
|
|
:: |
lcwork |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
rwork(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lrwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Module Procedures