SRC/dgelst.f(3)
π SRC/dgelst.f π
okay bestie, welcome to the Library Functions Manual glow-up for SRC/dgelst.f(3) β itβs giving Fortran subroutine realness, and weβre gonna go through every single deet so nobody gets left on read π
β¨
πΈ NAME πΈ
SRC/dgelst.f
π¦ SYNOPSIS π¦
π« Functions/Subroutines π«
subroutine dgelst (character trans, integer m, integer n, integer nrhs, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( ldb, * ) b, integer ldb, double precision, dimension( * ) work, integer lwork, integer info)
DGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q. periodt π
β¨ Function/Subroutine Documentation β¨
subroutine dgelst (character trans, integer m, integer n, integer nrhs, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( ldb, * ) b, integer ldb, double precision, dimension( * ) work, integer lwork, integer info)
DGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q. iconic behavior honestly π
π Purpose π
DGELST 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 with compact WY representation of Q. slay π
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.
bestie warning π this is not a vibe check for almost rank-deficient matrices β it only catches the exact-zero situation, okay?
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. no cap, thatβs the tea π«
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 problem
minimize || 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 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. group-chat efficiency, we love to see it π
π Parameters π
TRANSβTRANS is CHARACTER*1= 'N': the linear system involvesA;= 'T': the linear system involvesA**T.
MβM is INTEGER. The number of rows of the matrixA.M >= 0.NβN is INTEGER. The number of columns of the matrixA.N >= 0.NRHSβNRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matricesBandX.NRHS >=0.AβA is DOUBLE PRECISION array, dimension (LDA,N)- On entry, the
M-by-NmatrixA. - On exit:
- if
M >= N,Ais overwritten by details of its QR factorization as returned byDGEQRT; - if
M < N,Ais overwritten by details of its LQ factorization as returned byDGELQT.
- if
- On entry, the
LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,M).BβB is DOUBLE PRECISION array, dimension (LDB,NRHS)- On entry, the matrix
Bof right hand side vectors, stored columnwise;BisM-by-NRHSifTRANS = 'N', orN-by-NRHSifTRANS = 'T'. - On exit, if
INFO = 0,Bis overwritten by the solution vectors, stored columnwise:- if
TRANS = '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; - if
TRANS = 'N'andm < n, rows1toNofBcontain the minimum norm solution vectors; - if
TRANS = 'T'andm >= n, rows1toMofBcontain the minimum norm solution vectors; - if
TRANS = '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.
- if
- On entry, the matrix
LDBβLDB is INTEGER. The leading dimension of the arrayB.LDB >= MAX(1,M,N).WORKβWORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORK is INTEGER. The 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.- If
LWORK = -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.
- If
INFOβINFO is INTEGER= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value> 0: ifINFO = i, thei-th diagonal element of the triangular factor ofAis exactly zero, so thatAdoes 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.
π§ Contributors π§
November 2022, Igor Kozachenko,Computer Science Division,University of California, Berkeley
Definition at line 201 of file dgelst.f.
π€ Author π€
Generated automatically by Doxygen for LAPACK from the source code.
thatβs the whole page, bestie β signed off from SRC/dgelst.f(3) with LAPACK Version 3.12.0 π the footer didnβt hand us a date, so no made-up date energy here π«Ά mwah πβ¨
π¦ 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