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: