gesvd Interface

public interface gesvd

GESVD computes the singular value decomposition (SVD) of a complex M-by-N matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugate-transpose(V) where SIGMA is an M-by-N matrix which is zero except for its min(m,n) diagonal elements, U is an M-by-M unitary matrix, and V is an N-by-N unitary matrix. The diagonal elements of SIGMA are the singular values of A; they are real and non-negative, and are returned in descending order. The first min(m,n) columns of U and V are the left and right singular vectors of A. Note that the routine returns V**H, not V.


Subroutines

public subroutine cgesvd(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info)

Arguments

Type IntentOptional Attributes Name
character(len=1), intent(in) :: jobu
character(len=1), intent(in) :: jobvt
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) :: vt(ldvt,*)
integer(kind=ilp), intent(in) :: ldvt
complex(kind=sp), intent(out) :: work(*)
integer(kind=ilp), intent(in) :: lwork
real(kind=sp), intent(out) :: rwork(*)
integer(kind=ilp), intent(out) :: info

public subroutine dgesvd(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info)

Arguments

Type IntentOptional Attributes Name
character(len=1), intent(in) :: jobu
character(len=1), intent(in) :: jobvt
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) :: vt(ldvt,*)
integer(kind=ilp), intent(in) :: ldvt
real(kind=dp), intent(out) :: work(*)
integer(kind=ilp), intent(in) :: lwork
integer(kind=ilp), intent(out) :: info

public subroutine sgesvd(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info)

Arguments

Type IntentOptional Attributes Name
character(len=1), intent(in) :: jobu
character(len=1), intent(in) :: jobvt
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) :: vt(ldvt,*)
integer(kind=ilp), intent(in) :: ldvt
real(kind=sp), intent(out) :: work(*)
integer(kind=ilp), intent(in) :: lwork
integer(kind=ilp), intent(out) :: info

public subroutine zgesvd(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info)

Arguments

Type IntentOptional Attributes Name
character(len=1), intent(in) :: jobu
character(len=1), intent(in) :: jobvt
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) :: vt(ldvt,*)
integer(kind=ilp), intent(in) :: ldvt
complex(kind=dp), intent(out) :: work(*)
integer(kind=ilp), intent(in) :: lwork
real(kind=dp), intent(out) :: rwork(*)
integer(kind=ilp), intent(out) :: info

Module Procedures

public interface stdlib_cgesvd()

Arguments

None

public interface stdlib_dgesvd()

Arguments

None

public interface stdlib_sgesvd()

Arguments

None

public interface stdlib_zgesvd()

Arguments

None