lasdq Interface

public interface lasdq

LASDQ computes the singular value decomposition (SVD) of a real (upper or lower) bidiagonal matrix with diagonal D and offdiagonal E, accumulating the transformations if desired. Letting B denote the input bidiagonal matrix, the algorithm computes orthogonal matrices Q and P such that B = Q * S * PT (PT denotes the transpose of P). The singular values S are overwritten on D. The input matrix U is changed to U * Q if desired. The input matrix VT is changed to PT * VT if desired. The input matrix C is changed to QT * C if desired. See "Computing Small Singular Values of Bidiagonal Matrices With Guaranteed High Relative Accuracy," by J. Demmel and W. Kahan, LAPACK Working Note #3, for a detailed description of the algorithm.


Subroutines

public pure subroutine dlasdq(uplo, sqre, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info)

Arguments

Type IntentOptional Attributes Name
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: sqre
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: ncvt
integer(kind=ilp), intent(in) :: nru
integer(kind=ilp), intent(in) :: ncc
real(kind=dp), intent(inout) :: d(*)
real(kind=dp), intent(inout) :: e(*)
real(kind=dp), intent(inout) :: vt(ldvt,*)
integer(kind=ilp), intent(in) :: ldvt
real(kind=dp), intent(inout) :: u(ldu,*)
integer(kind=ilp), intent(in) :: ldu
real(kind=dp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc
real(kind=dp), intent(out) :: work(*)
integer(kind=ilp), intent(out) :: info

public pure subroutine slasdq(uplo, sqre, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info)

Arguments

Type IntentOptional Attributes Name
character(len=1), intent(in) :: uplo
integer(kind=ilp), intent(in) :: sqre
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: ncvt
integer(kind=ilp), intent(in) :: nru
integer(kind=ilp), intent(in) :: ncc
real(kind=sp), intent(inout) :: d(*)
real(kind=sp), intent(inout) :: e(*)
real(kind=sp), intent(inout) :: vt(ldvt,*)
integer(kind=ilp), intent(in) :: ldvt
real(kind=sp), intent(inout) :: u(ldu,*)
integer(kind=ilp), intent(in) :: ldu
real(kind=sp), intent(inout) :: c(ldc,*)
integer(kind=ilp), intent(in) :: ldc
real(kind=sp), intent(out) :: work(*)
integer(kind=ilp), intent(out) :: info

Module Procedures

public interface stdlib_dlasdq()

Arguments

None

public interface stdlib_slasdq()

Arguments

None