Loading [MathJax]/jax/output/HTML-CSS/config.js
fortran-lapack
All Classes Namespaces Files Functions Variables Pages
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: