.TH "SRC/sgels.f" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME SRC/sgels.f .SH SYNOPSIS .br .PP .SS "Functions/Subroutines" .in +1c .ti -1c .RI "subroutine \fBsgels\fP (trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info)" .br .RI "\fB SGELS solves overdetermined or underdetermined systems for GE matrices\fP " .in -1c .SH "Function/Subroutine Documentation" .PP .SS "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)" .PP \fB SGELS solves overdetermined or underdetermined systems for GE matrices\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> 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\&. !> !> 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\&. !> !> 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 = 'T' and m >= n: find the minimum norm solution of !> an underdetermined system A**T * X = B\&. !> !> 4\&. If TRANS = 'T' 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\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fITRANS\fP .PP .nf !> TRANS is CHARACTER*1 !> = 'N': the linear system involves A; !> = 'T': the linear system involves A**T\&. !> .fi .PP .br \fIM\fP .PP .nf !> M is INTEGER !> The number of rows of the matrix A\&. M >= 0\&. !> .fi .PP .br \fIN\fP .PP .nf !> N is INTEGER !> The number of columns of the matrix A\&. N >= 0\&. !> .fi .PP .br \fINRHS\fP .PP .nf !> NRHS is INTEGER !> The number of right hand sides, i\&.e\&., the number of !> columns of the matrices B and X\&. NRHS >=0\&. !> .fi .PP .br \fIA\fP .PP .nf !> A is REAL array, dimension (LDA,N) !> On entry, the M-by-N matrix A\&. !> On exit, !> if M >= N, A is overwritten by details of its QR !> factorization as returned by SGEQRF; !> if M < N, A is overwritten by details of its LQ !> factorization as returned by SGELQF\&. !> .fi .PP .br \fILDA\fP .PP .nf !> LDA is INTEGER !> The leading dimension of the array A\&. LDA >= max(1,M)\&. !> .fi .PP .br \fIB\fP .PP .nf !> B is REAL 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 = 'T'\&. !> 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; the residual sum of squares for the !> solution in each column is given by the sum of squares of !> elements N+1 to M in that column; !> if TRANS = 'N' and m < n, rows 1 to N of B contain the !> minimum norm solution vectors; !> if TRANS = 'T' and m >= n, rows 1 to M of B contain the !> minimum norm solution vectors; !> if TRANS = 'T' and m < n, rows 1 to M of B contain the !> least squares solution vectors; the residual sum of squares !> for the solution in each column is given by the sum of !> squares of elements M+1 to N in that column\&. !> .fi .PP .br \fILDB\fP .PP .nf !> LDB is INTEGER !> The leading dimension of the array B\&. LDB >= MAX(1,M,N)\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is REAL array, dimension (MAX(1,LWORK)) !> On exit, if INFO = 0, WORK(1) returns the optimal LWORK\&. !> .fi .PP .br \fILWORK\fP .PP .nf !> LWORK is INTEGER !> The dimension of the array WORK\&. !> LWORK >= max( 1, MN + max( MN, NRHS ) )\&. !> For optimal performance, !> LWORK >= max( 1, MN + max( MN, NRHS )*NB )\&. !> where MN = min(M,N) and NB is the optimum block size\&. !> !> If LWORK = -1, then a workspace query is assumed; the routine !> only calculates the optimal size of the WORK array, returns !> this value as the first entry of the WORK array, and no error !> message related to LWORK is issued by XERBLA\&. !> .fi .PP .br \fIINFO\fP .PP .nf !> 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\&. !> .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP .PP Definition at line \fB191\fP of file \fBsgels\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.