lasd0 Interface

public interface lasd0

Using a divide and conquer approach, LASD0: computes the singular value decomposition (SVD) of a real upper bidiagonal N-by-M matrix B with diagonal D and offdiagonal E, where M = N + SQRE. The algorithm computes orthogonal matrices U and VT such that B = U * S * VT. The singular values S are overwritten on D. A related subroutine, DLASDA, computes only the singular values, and optionally, the singular vectors in compact form.


Subroutines

public pure subroutine dlasd0(n, sqre, d, e, u, ldu, vt, ldvt, smlsiz, iwork, work, info)

Arguments

Type IntentOptional Attributes Name
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: sqre
real(kind=dp), intent(inout) :: d(*)
real(kind=dp), intent(inout) :: e(*)
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
integer(kind=ilp), intent(in) :: smlsiz
integer(kind=ilp), intent(out) :: iwork(*)
real(kind=dp), intent(out) :: work(*)
integer(kind=ilp), intent(out) :: info

public pure subroutine slasd0(n, sqre, d, e, u, ldu, vt, ldvt, smlsiz, iwork, work, info)

Arguments

Type IntentOptional Attributes Name
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: sqre
real(kind=sp), intent(inout) :: d(*)
real(kind=sp), intent(inout) :: e(*)
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
integer(kind=ilp), intent(in) :: smlsiz
integer(kind=ilp), intent(out) :: iwork(*)
real(kind=sp), intent(out) :: work(*)
integer(kind=ilp), intent(out) :: info

Module Procedures

public interface stdlib_dlasd0()

Arguments

None

public interface stdlib_slasd0()

Arguments

None