fortran-lapack
Loading...
Searching...
No Matches
la_lapack::lasdq Interface Reference

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 * P**T (P**T 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 P**T * VT if desired. The input matrix C is changed to Q**T * 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. More...

Public Member Functions

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

Detailed Description

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 * P**T (P**T 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 P**T * VT if desired. The input matrix C is changed to Q**T * 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.

Member Function/Subroutine Documentation

◆ dlasdq()

pure subroutine la_lapack::lasdq::dlasdq ( character, intent(in)  uplo,
integer(ilp), intent(in)  sqre,
integer(ilp), intent(in)  n,
integer(ilp), intent(in)  ncvt,
integer(ilp), intent(in)  nru,
integer(ilp), intent(in)  ncc,
real(dp), dimension(*), intent(inout)  d,
real(dp), dimension(*), intent(inout)  e,
real(dp), dimension(ldvt,*), intent(inout)  vt,
integer(ilp), intent(in)  ldvt,
real(dp), dimension(ldu,*), intent(inout)  u,
integer(ilp), intent(in)  ldu,
real(dp), dimension(ldc,*), intent(inout)  c,
integer(ilp), intent(in)  ldc,
real(dp), dimension(*), intent(out)  work,
integer(ilp), intent(out)  info 
)

◆ la_dlasdq()

la_lapack::lasdq::la_dlasdq

◆ la_qlasdq()

la_lapack::lasdq::la_qlasdq

◆ la_slasdq()

la_lapack::lasdq::la_slasdq

◆ slasdq()

pure subroutine la_lapack::lasdq::slasdq ( character, intent(in)  uplo,
integer(ilp), intent(in)  sqre,
integer(ilp), intent(in)  n,
integer(ilp), intent(in)  ncvt,
integer(ilp), intent(in)  nru,
integer(ilp), intent(in)  ncc,
real(sp), dimension(*), intent(inout)  d,
real(sp), dimension(*), intent(inout)  e,
real(sp), dimension(ldvt,*), intent(inout)  vt,
integer(ilp), intent(in)  ldvt,
real(sp), dimension(ldu,*), intent(inout)  u,
integer(ilp), intent(in)  ldu,
real(sp), dimension(ldc,*), intent(inout)  c,
integer(ilp), intent(in)  ldc,
real(sp), dimension(*), intent(out)  work,
integer(ilp), intent(out)  info 
)

The documentation for this interface was generated from the following file: