gesvdq Interface

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

public subroutine cgesvdq(joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, cwork, lcwork, rwork, lrwork, info)

Arguments

Type IntentOptional 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

public subroutine dgesvdq(joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, work, lwork, rwork, lrwork, info)

Arguments

Type IntentOptional 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

public subroutine sgesvdq(joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, work, lwork, rwork, lrwork, info)

Arguments

Type IntentOptional 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

public subroutine zgesvdq(joba, jobp, jobr, jobu, jobv, m, n, a, lda, s, u, ldu, v, ldv, numrank, iwork, liwork, cwork, lcwork, rwork, lrwork, info)

Arguments

Type IntentOptional 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

public interface stdlib_cgesvdq()

Arguments

None

public interface stdlib_dgesvdq()

Arguments

None

public interface stdlib_sgesvdq()

Arguments

None

public interface stdlib_zgesvdq()

Arguments

None