SRC/sgels.f(3)
π NAME π
SRC/sgels.f β bestie, this is the SRC/sgels.f(3) page from the Library Functions Manual, and it's all about one iconic LAPACK subroutine: sgels. π
β¨ SYNOPSIS β¨
subroutine sgels (trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info)
SGELS solves overdetermined or underdetermined systems for GE
matrices
π¦ Functions/Subroutines π¦
subroutine sgels (trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info)β SGELS solves overdetermined or underdetermined systems for GE matrices. yes, that's the whole vibe. π«Ά
π Function/Subroutine Documentation π
subroutine sgels (character trans, integer m, integer n, integer nrhs, real,
dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b, integer
ldb, real, dimension( * ) work, integer lwork, integer info)
SGELS solves overdetermined or underdetermined systems for GE matrices. that's the official description, and honestly it ate. π₯
π₯ Purpose π₯
okay so, SGELS solves overdetermined or underdetermined real linear systems involving an M-by-N matrix A, or its transpose, using a QR or LQ factorization of A. no cap. π
It is assumed that A has full rank, and only a rudimentary protection against rank-deficient matrices is provided. This subroutine only detects exact rank-deficiency, where a diagonal element of the triangular factor of A is exactly zero. π
It is conceivable for one (or more) of the diagonal elements of the triangular factor of A to be subnormally tiny numbers without this subroutine signalling an error. The solutions computed for such almost-rank-deficient matrices may be less accurate due to a loss of numerical precision. so like, be aware. π
The following options are provided:
- If
TRANS = 'N'andm >= n: find the least squares solution of an overdetermined system, i.e., solve the least squares problemminimize || B - A*X ||. - If
TRANS = 'N'andm < n: find the minimum norm solution of an underdetermined systemA * X = B. - If
TRANS = 'T'andm >= n: find the minimum norm solution of an underdetermined systemA**T * X = B. - If
TRANS = 'T'andm < n: find the least squares solution of an overdetermined system, i.e., solve the least squares problemminimize || 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. group chat efficiency, honestly. β¨
π Parameters π
TRANSβTRANS is CHARACTER*1= 'N': the linear system involves A;= 'T': the linear system involves A**T.π«MβM is INTEGERThe number of rows of the matrixA.M >= 0. πNβN is INTEGERThe number of columns of the matrixA.N >= 0. π¦NRHSβNRHS is INTEGERThe number of right hand sides, i.e., the number of columns of the matricesBandX.NRHS >=0. πAβA is REAL array, dimension (LDA,N)On entry, theM-by-NmatrixA. On exit, ifM >= N,Ais overwritten by details of its QR factorization as returned bySGEQRF; ifM < N,Ais overwritten by details of its LQ factorization as returned bySGELQF. πLDAβLDA is INTEGERThe leading dimension of the arrayA.LDA >= max(1,M). πBβB is REAL array, dimension (LDB,NRHS)On entry, the matrixBof right hand side vectors, stored columnwise;BisM-by-NRHSifTRANS = 'N', orN-by-NRHSifTRANS = 'T'. On exit, ifINFO = 0,Bis overwritten by the solution vectors, stored columnwise: ifTRANS = 'N'andm >= n, rows1tonofBcontain the least squares solution vectors; the residual sum of squares for the solution in each column is given by the sum of squares of elementsN+1toMin that column; ifTRANS = 'N'andm < n, rows1toNofBcontain the minimum norm solution vectors; ifTRANS = 'T'andm >= n, rows1toMofBcontain the minimum norm solution vectors; ifTRANS = 'T'andm < n, rows1toMofBcontain the least squares solution vectors; the residual sum of squares for the solution in each column is given by the sum of squares of elementsM+1toNin that column. πLDBβLDB is INTEGERThe leading dimension of the arrayB.LDB >= MAX(1,M,N). π«ΆWORKβWORK is REAL array, dimension (MAX(1,LWORK))On exit, ifINFO = 0,WORK(1)returns the optimalLWORK. πΈLWORKβLWORK is INTEGERThe dimension of the arrayWORK.LWORK >= max( 1, MN + max( MN, NRHS ) ). For optimal performance,LWORK >= max( 1, MN + max( MN, NRHS )*NB ). whereMN = min(M,N)andNBis the optimum block size. IfLWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA. β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 exactly zero, so that A does not have full rank; the least squares solution could not be computed.π
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 191 of file sgels.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code. π€
okay bestie, that's the whole page β no details dropped, every flag and parameter accounted for, and yes I'm obsessed. π
sign-off vibe check: LAPACK Version 3.12.0, page SRC/sgels.f(3) β periodt. πβ¨
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms