![]() |
LAPACK
3.7.0
LAPACK: Linear Algebra PACKage
|
subroutine cgetsls | ( | character | TRANS, |
integer | M, | ||
integer | N, | ||
integer | NRHS, | ||
complex, dimension( lda, * ) | A, | ||
integer | LDA, | ||
complex, dimension( ldb, * ) | B, | ||
integer | LDB, | ||
complex, dimension( * ) | WORK, | ||
integer | LWORK, | ||
integer | INFO | ||
) |
CGETSLS 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:
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**C. |
[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 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 CGEQR or CGELQ. |
[in] | LDA | LDA is INTEGER The leading dimension of the array A. LDA >= max(1,M). |
[in,out] | B | B is COMPLEX 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 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 162 of file cgetsls.f.