![]() |
LAPACK
3.9.0
LAPACK: Linear Algebra PACKage
|
| subroutine zgetsls | ( | character | TRANS, |
| integer | M, | ||
| integer | N, | ||
| integer | NRHS, | ||
| complex*16, dimension( lda, * ) | A, | ||
| integer | LDA, | ||
| complex*16, dimension( ldb, * ) | B, | ||
| integer | LDB, | ||
| complex*16, dimension( * ) | WORK, | ||
| integer | LWORK, | ||
| integer | INFO | ||
| ) |
ZGETSLS
ZGETSLS solves overdetermined or underdetermined complex linear systems
involving an M-by-N matrix A, using a tall skinny QR or short wide LQ
factorization of A. It is assumed that A has full rank.
The following options are provided:
1. If TRANS = 'N' and m >= n: find the least squares solution of
an overdetermined system, i.e., solve the least squares problem
minimize || B - A*X ||.
2. If TRANS = 'N' and m < n: find the minimum norm solution of
an underdetermined system A * X = B.
3. If TRANS = 'C' and m >= n: find the minimum norm solution of
an undetermined system A**T * X = B.
4. If TRANS = 'C' and m < n: find the least squares solution of
an overdetermined system, i.e., solve the least squares problem
minimize || B - A**T * X ||.
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. | [in] | TRANS | TRANS is CHARACTER*1
= 'N': the linear system involves A;
= 'C': the linear system involves A**H. |
| [in] | M | M is INTEGER
The number of rows of the matrix A. M >= 0. |
| [in] | N | N is INTEGER
The number of columns of the matrix A. N >= 0. |
| [in] | NRHS | NRHS is INTEGER
The number of right hand sides, i.e., the number of
columns of the matrices B and X. NRHS >=0. |
| [in,out] | A | A is COMPLEX*16 array, dimension (LDA,N)
On entry, the M-by-N matrix A.
On exit,
A is overwritten by details of its QR or LQ
factorization as returned by ZGEQR or ZGELQ. |
| [in] | LDA | LDA is INTEGER
The leading dimension of the array A. LDA >= max(1,M). |
| [in,out] | B | B is COMPLEX*16 array, dimension (LDB,NRHS)
On entry, the matrix B of right hand side vectors, stored
columnwise; B is M-by-NRHS if TRANS = 'N', or N-by-NRHS
if TRANS = 'C'.
On exit, if INFO = 0, B is overwritten by the solution
vectors, stored columnwise:
if TRANS = 'N' and m >= n, rows 1 to n of B contain the least
squares solution vectors.
if TRANS = 'N' and m < n, rows 1 to N of B contain the
minimum norm solution vectors;
if TRANS = 'C' and m >= n, rows 1 to M of B contain the
minimum norm solution vectors;
if TRANS = 'C' and m < n, rows 1 to M of B contain the
least squares solution vectors. |
| [in] | LDB | LDB is INTEGER
The leading dimension of the array B. LDB >= MAX(1,M,N). |
| [out] | WORK | (workspace) COMPLEX*16 array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) contains optimal (or either minimal
or optimal, if query was assumed) LWORK.
See LWORK for details. |
| [in] | LWORK | LWORK is INTEGER
The dimension of the array WORK.
If LWORK = -1 or -2, then a workspace query is assumed.
If LWORK = -1, the routine calculates optimal size of WORK for the
optimal performance and returns this value in WORK(1).
If LWORK = -2, the routine calculates minimal size of WORK and
returns this value in WORK(1). |
| [out] | INFO | INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, the i-th diagonal element of the
triangular factor of A is zero, so that A does not have
full rank; the least squares solution could not be
computed. |
Definition at line 164 of file zgetsls.f.