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...
|
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 |
|
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.
◆ 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: