fortran-lapack
|
LALS0: applies back the multiplying factors of either the left or the right singular vector matrix of a diagonal matrix appended by a row to the right hand side matrix B in solving the least squares problem using the divide-and-conquer SVD approach. For the left singular vector matrix, three types of orthogonal matrices are involved: (1L) Givens rotations: the number of such rotations is GIVPTR; the pairs of columns/rows they were applied to are stored in GIVCOL; and the C- and S-values of these rotations are stored in GIVNUM. (2L) Permutation. The (NL+1)-st row of B is to be moved to the first row, and for J=2:N, PERM(J)-th row of B is to be moved to the J-th row. (3L) The left singular vector matrix of the remaining matrix. For the right singular vector matrix, four types of orthogonal matrices are involved: (1R) The right singular vector matrix of the remaining matrix. (2R) If SQRE = 1, one extra Givens rotation to generate the right null space. (3R) The inverse transformation of (2L). (4R) The inverse transformation of (1L). More...
Public Member Functions | |
pure subroutine | clals0 (icompq, nl, nr, sqre, nrhs, b, ldb, bx, ldbx, perm, givptr, givcol, ldgcol, givnum, ldgnum, poles, difl, difr, z, k, c, s, rwork, info) |
la_clals0 | |
pure subroutine | dlals0 (icompq, nl, nr, sqre, nrhs, b, ldb, bx, ldbx, perm, givptr, givcol, ldgcol, givnum, ldgnum, poles, difl, difr, z, k, c, s, work, info) |
la_dlals0 | |
la_qlals0 | |
pure subroutine | slals0 (icompq, nl, nr, sqre, nrhs, b, ldb, bx, ldbx, perm, givptr, givcol, ldgcol, givnum, ldgnum, poles, difl, difr, z, k, c, s, work, info) |
la_slals0 | |
la_wlals0 | |
pure subroutine | zlals0 (icompq, nl, nr, sqre, nrhs, b, ldb, bx, ldbx, perm, givptr, givcol, ldgcol, givnum, ldgnum, poles, difl, difr, z, k, c, s, rwork, info) |
la_zlals0 | |
LALS0: applies back the multiplying factors of either the left or the right singular vector matrix of a diagonal matrix appended by a row to the right hand side matrix B in solving the least squares problem using the divide-and-conquer SVD approach. For the left singular vector matrix, three types of orthogonal matrices are involved: (1L) Givens rotations: the number of such rotations is GIVPTR; the pairs of columns/rows they were applied to are stored in GIVCOL; and the C- and S-values of these rotations are stored in GIVNUM. (2L) Permutation. The (NL+1)-st row of B is to be moved to the first row, and for J=2:N, PERM(J)-th row of B is to be moved to the J-th row. (3L) The left singular vector matrix of the remaining matrix. For the right singular vector matrix, four types of orthogonal matrices are involved: (1R) The right singular vector matrix of the remaining matrix. (2R) If SQRE = 1, one extra Givens rotation to generate the right null space. (3R) The inverse transformation of (2L). (4R) The inverse transformation of (1L).
pure subroutine la_lapack::lals0::clals0 | ( | integer(ilp), intent(in) | icompq, |
integer(ilp), intent(in) | nl, | ||
integer(ilp), intent(in) | nr, | ||
integer(ilp), intent(in) | sqre, | ||
integer(ilp), intent(in) | nrhs, | ||
complex(sp), dimension(ldb,*), intent(inout) | b, | ||
integer(ilp), intent(in) | ldb, | ||
complex(sp), dimension(ldbx,*), intent(out) | bx, | ||
integer(ilp), intent(in) | ldbx, | ||
integer(ilp), dimension(*), intent(in) | perm, | ||
integer(ilp), intent(in) | givptr, | ||
integer(ilp), dimension(ldgcol,*), intent(in) | givcol, | ||
integer(ilp), intent(in) | ldgcol, | ||
real(sp), dimension(ldgnum,*), intent(in) | givnum, | ||
integer(ilp), intent(in) | ldgnum, | ||
real(sp), dimension( ldgnum,*), intent(in) | poles, | ||
real(sp), dimension(*), intent(in) | difl, | ||
real(sp), dimension(ldgnum,*), intent(in) | difr, | ||
real(sp), dimension(*), intent(in) | z, | ||
integer(ilp), intent(in) | k, | ||
real(sp), intent(in) | c, | ||
real(sp), intent(in) | s, | ||
real(sp), dimension(*), intent(out) | rwork, | ||
integer(ilp), intent(out) | info | ||
) |
pure subroutine la_lapack::lals0::dlals0 | ( | integer(ilp), intent(in) | icompq, |
integer(ilp), intent(in) | nl, | ||
integer(ilp), intent(in) | nr, | ||
integer(ilp), intent(in) | sqre, | ||
integer(ilp), intent(in) | nrhs, | ||
real(dp), dimension(ldb,*), intent(inout) | b, | ||
integer(ilp), intent(in) | ldb, | ||
real(dp), dimension(ldbx,*), intent(out) | bx, | ||
integer(ilp), intent(in) | ldbx, | ||
integer(ilp), dimension(*), intent(in) | perm, | ||
integer(ilp), intent(in) | givptr, | ||
integer(ilp), dimension(ldgcol,*), intent(in) | givcol, | ||
integer(ilp), intent(in) | ldgcol, | ||
real(dp), dimension(ldgnum,*), intent(in) | givnum, | ||
integer(ilp), intent(in) | ldgnum, | ||
real(dp), dimension( ldgnum,*), intent(in) | poles, | ||
real(dp), dimension(*), intent(in) | difl, | ||
real(dp), dimension(ldgnum,*), intent(in) | difr, | ||
real(dp), dimension(*), intent(in) | z, | ||
integer(ilp), intent(in) | k, | ||
real(dp), intent(in) | c, | ||
real(dp), intent(in) | s, | ||
real(dp), dimension(*), intent(out) | work, | ||
integer(ilp), intent(out) | info | ||
) |
la_lapack::lals0::la_clals0 |
la_lapack::lals0::la_dlals0 |
la_lapack::lals0::la_qlals0 |
la_lapack::lals0::la_slals0 |
la_lapack::lals0::la_wlals0 |
la_lapack::lals0::la_zlals0 |
pure subroutine la_lapack::lals0::slals0 | ( | integer(ilp), intent(in) | icompq, |
integer(ilp), intent(in) | nl, | ||
integer(ilp), intent(in) | nr, | ||
integer(ilp), intent(in) | sqre, | ||
integer(ilp), intent(in) | nrhs, | ||
real(sp), dimension(ldb,*), intent(inout) | b, | ||
integer(ilp), intent(in) | ldb, | ||
real(sp), dimension(ldbx,*), intent(out) | bx, | ||
integer(ilp), intent(in) | ldbx, | ||
integer(ilp), dimension(*), intent(in) | perm, | ||
integer(ilp), intent(in) | givptr, | ||
integer(ilp), dimension(ldgcol,*), intent(in) | givcol, | ||
integer(ilp), intent(in) | ldgcol, | ||
real(sp), dimension(ldgnum,*), intent(in) | givnum, | ||
integer(ilp), intent(in) | ldgnum, | ||
real(sp), dimension( ldgnum,*), intent(in) | poles, | ||
real(sp), dimension(*), intent(in) | difl, | ||
real(sp), dimension(ldgnum,*), intent(in) | difr, | ||
real(sp), dimension(*), intent(in) | z, | ||
integer(ilp), intent(in) | k, | ||
real(sp), intent(in) | c, | ||
real(sp), intent(in) | s, | ||
real(sp), dimension(*), intent(out) | work, | ||
integer(ilp), intent(out) | info | ||
) |
pure subroutine la_lapack::lals0::zlals0 | ( | integer(ilp), intent(in) | icompq, |
integer(ilp), intent(in) | nl, | ||
integer(ilp), intent(in) | nr, | ||
integer(ilp), intent(in) | sqre, | ||
integer(ilp), intent(in) | nrhs, | ||
complex(dp), dimension(ldb,*), intent(inout) | b, | ||
integer(ilp), intent(in) | ldb, | ||
complex(dp), dimension(ldbx,*), intent(out) | bx, | ||
integer(ilp), intent(in) | ldbx, | ||
integer(ilp), dimension(*), intent(in) | perm, | ||
integer(ilp), intent(in) | givptr, | ||
integer(ilp), dimension(ldgcol,*), intent(in) | givcol, | ||
integer(ilp), intent(in) | ldgcol, | ||
real(dp), dimension(ldgnum,*), intent(in) | givnum, | ||
integer(ilp), intent(in) | ldgnum, | ||
real(dp), dimension( ldgnum,*), intent(in) | poles, | ||
real(dp), dimension(*), intent(in) | difl, | ||
real(dp), dimension(ldgnum,*), intent(in) | difr, | ||
real(dp), dimension(*), intent(in) | z, | ||
integer(ilp), intent(in) | k, | ||
real(dp), intent(in) | c, | ||
real(dp), intent(in) | s, | ||
real(dp), dimension(*), intent(out) | rwork, | ||
integer(ilp), intent(out) | info | ||
) |