public interface gelss
GELSS computes the minimum norm solution to a complex linear
least squares problem:
Minimize 2-norm(| b - A*x |).
using the singular value decomposition (SVD) of A. A is an M-by-N
matrix which may be rank-deficient.
Several right hand side vectors b and solution vectors x can be
handled in a single call; they are stored as the columns of the
M-by-NRHS right hand side matrix B and the N-by-NRHS solution matrix
X.
The effective rank of A is determined by treating as zero those
singular values which are less than RCOND times the largest singular
value.
Subroutines
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
nrhs |
|
|
complex(kind=sp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
complex(kind=sp),
|
intent(inout) |
|
|
:: |
b(ldb,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldb |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
s(*) |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
rcond |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
rank |
|
|
complex(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
rwork(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
nrhs |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=dp),
|
intent(inout) |
|
|
:: |
b(ldb,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldb |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
s(*) |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
rcond |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
rank |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
nrhs |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
real(kind=sp),
|
intent(inout) |
|
|
:: |
b(ldb,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldb |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
s(*) |
|
|
real(kind=sp),
|
intent(in) |
|
|
:: |
rcond |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
rank |
|
|
real(kind=sp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
m |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
n |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
nrhs |
|
|
complex(kind=dp),
|
intent(inout) |
|
|
:: |
a(lda,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lda |
|
|
complex(kind=dp),
|
intent(inout) |
|
|
:: |
b(ldb,*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
ldb |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
s(*) |
|
|
real(kind=dp),
|
intent(in) |
|
|
:: |
rcond |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
rank |
|
|
complex(kind=dp),
|
intent(out) |
|
|
:: |
work(*) |
|
|
integer(kind=ilp),
|
intent(in) |
|
|
:: |
lwork |
|
|
real(kind=dp),
|
intent(out) |
|
|
:: |
rwork(*) |
|
|
integer(kind=ilp),
|
intent(out) |
|
|
:: |
info |
|
Module Procedures