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

LALSD: uses the singular value decomposition of A to solve the least squares problem of finding X to minimize the Euclidean norm of each column of A*X-B, where A is N-by-N upper bidiagonal, and X and B are N-by-NRHS. The solution X overwrites B. The singular values of A smaller than RCOND times the largest singular value are treated as zero in solving the least squares problem; in this case a minimum norm solution is returned. The actual singular values are returned in D in ascending order. This code makes very mild assumptions about floating point arithmetic. It will work on machines with a guard digit in add/subtract, or on those binary machines without guard digits which subtract like the Cray XMP, Cray YMP, Cray C 90, or Cray 2. It could conceivably fail on hexadecimal or decimal machines without guard digits, but we know of none. More...

Public Member Functions

pure subroutine clalsd (uplo, smlsiz, n, nrhs, d, e, b, ldb, rcond, rank, work, rwork, iwork, info)
 
 la_clalsd
 
pure subroutine dlalsd (uplo, smlsiz, n, nrhs, d, e, b, ldb, rcond, rank, work, iwork, info)
 
 la_dlalsd
 
 la_qlalsd
 
pure subroutine slalsd (uplo, smlsiz, n, nrhs, d, e, b, ldb, rcond, rank, work, iwork, info)
 
 la_slalsd
 
 la_wlalsd
 
pure subroutine zlalsd (uplo, smlsiz, n, nrhs, d, e, b, ldb, rcond, rank, work, rwork, iwork, info)
 
 la_zlalsd
 

Detailed Description

LALSD: uses the singular value decomposition of A to solve the least squares problem of finding X to minimize the Euclidean norm of each column of A*X-B, where A is N-by-N upper bidiagonal, and X and B are N-by-NRHS. The solution X overwrites B. The singular values of A smaller than RCOND times the largest singular value are treated as zero in solving the least squares problem; in this case a minimum norm solution is returned. The actual singular values are returned in D in ascending order. This code makes very mild assumptions about floating point arithmetic. It will work on machines with a guard digit in add/subtract, or on those binary machines without guard digits which subtract like the Cray XMP, Cray YMP, Cray C 90, or Cray 2. It could conceivably fail on hexadecimal or decimal machines without guard digits, but we know of none.

Member Function/Subroutine Documentation

◆ clalsd()

pure subroutine la_lapack::lalsd::clalsd ( character, intent(in)  uplo,
integer(ilp), intent(in)  smlsiz,
integer(ilp), intent(in)  n,
integer(ilp), intent(in)  nrhs,
real(sp), dimension(*), intent(inout)  d,
real(sp), dimension(*), intent(inout)  e,
complex(sp), dimension(ldb,*), intent(inout)  b,
integer(ilp), intent(in)  ldb,
real(sp), intent(in)  rcond,
integer(ilp), intent(out)  rank,
complex(sp), dimension(*), intent(out)  work,
real(sp), dimension(*), intent(out)  rwork,
integer(ilp), dimension(*), intent(out)  iwork,
integer(ilp), intent(out)  info 
)

◆ dlalsd()

pure subroutine la_lapack::lalsd::dlalsd ( character, intent(in)  uplo,
integer(ilp), intent(in)  smlsiz,
integer(ilp), intent(in)  n,
integer(ilp), intent(in)  nrhs,
real(dp), dimension(*), intent(inout)  d,
real(dp), dimension(*), intent(inout)  e,
real(dp), dimension(ldb,*), intent(inout)  b,
integer(ilp), intent(in)  ldb,
real(dp), intent(in)  rcond,
integer(ilp), intent(out)  rank,
real(dp), dimension(*), intent(out)  work,
integer(ilp), dimension(*), intent(out)  iwork,
integer(ilp), intent(out)  info 
)

◆ la_clalsd()

la_lapack::lalsd::la_clalsd

◆ la_dlalsd()

la_lapack::lalsd::la_dlalsd

◆ la_qlalsd()

la_lapack::lalsd::la_qlalsd

◆ la_slalsd()

la_lapack::lalsd::la_slalsd

◆ la_wlalsd()

la_lapack::lalsd::la_wlalsd

◆ la_zlalsd()

la_lapack::lalsd::la_zlalsd

◆ slalsd()

pure subroutine la_lapack::lalsd::slalsd ( character, intent(in)  uplo,
integer(ilp), intent(in)  smlsiz,
integer(ilp), intent(in)  n,
integer(ilp), intent(in)  nrhs,
real(sp), dimension(*), intent(inout)  d,
real(sp), dimension(*), intent(inout)  e,
real(sp), dimension(ldb,*), intent(inout)  b,
integer(ilp), intent(in)  ldb,
real(sp), intent(in)  rcond,
integer(ilp), intent(out)  rank,
real(sp), dimension(*), intent(out)  work,
integer(ilp), dimension(*), intent(out)  iwork,
integer(ilp), intent(out)  info 
)

◆ zlalsd()

pure subroutine la_lapack::lalsd::zlalsd ( character, intent(in)  uplo,
integer(ilp), intent(in)  smlsiz,
integer(ilp), intent(in)  n,
integer(ilp), intent(in)  nrhs,
real(dp), dimension(*), intent(inout)  d,
real(dp), dimension(*), intent(inout)  e,
complex(dp), dimension(ldb,*), intent(inout)  b,
integer(ilp), intent(in)  ldb,
real(dp), intent(in)  rcond,
integer(ilp), intent(out)  rank,
complex(dp), dimension(*), intent(out)  work,
real(dp), dimension(*), intent(out)  rwork,
integer(ilp), dimension(*), intent(out)  iwork,
integer(ilp), intent(out)  info 
)

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