.TH "SRC/sgglse.f" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME SRC/sgglse.f .SH SYNOPSIS .br .PP .SS "Functions/Subroutines" .in +1c .ti -1c .RI "subroutine \fBsgglse\fP (m, n, p, a, lda, b, ldb, c, d, x, work, lwork, info)" .br .RI "\fB SGGLSE solves overdetermined or underdetermined systems for OTHER matrices\fP " .in -1c .SH "Function/Subroutine Documentation" .PP .SS "subroutine sgglse (integer m, integer n, integer p, real, dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b, integer ldb, real, dimension( * ) c, real, dimension( * ) d, real, dimension( * ) x, real, dimension( * ) work, integer lwork, integer info)" .PP \fB SGGLSE solves overdetermined or underdetermined systems for OTHER matrices\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> SGGLSE solves the linear equality-constrained least squares (LSE) !> problem: !> !> minimize || c - A*x ||_2 subject to B*x = d !> !> where A is an M-by-N matrix, B is a P-by-N matrix, c is a given !> M-vector, and d is a given P-vector\&. It is assumed that !> P <= N <= M+P, and !> !> rank(B) = P and rank( (A) ) = N\&. !> ( (B) ) !> !> These conditions ensure that the LSE problem has a unique solution, !> which is obtained using a generalized RQ factorization of the !> matrices (B, A) given by !> !> B = (0 R)*Q, A = Z*T*Q\&. !> !> Callers of this subroutine should note that the singularity/rank-deficiency checks !> implemented in this subroutine are rudimentary\&. The STRTRS subroutine called by this !> subroutine only signals a failure due to singularity if the problem is exactly singular\&. !> !> It is conceivable for one (or more) of the factors involved in the generalized RQ !> factorization of the pair (B, A) to be subnormally close to singularity without this !> subroutine signalling an error\&. The solutions computed for such almost-rank-deficient !> problems may be less accurate due to a loss of numerical precision\&. !> !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \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 matrices A and B\&. N >= 0\&. !> .fi .PP .br \fIP\fP .PP .nf !> P is INTEGER !> The number of rows of the matrix B\&. 0 <= P <= N <= M+P\&. !> .fi .PP .br \fIA\fP .PP .nf !> A is REAL array, dimension (LDA,N) !> On entry, the M-by-N matrix A\&. !> On exit, the elements on and above the diagonal of the array !> contain the min(M,N)-by-N upper trapezoidal matrix T\&. !> .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,N) !> On entry, the P-by-N matrix B\&. !> On exit, the upper triangle of the subarray B(1:P,N-P+1:N) !> contains the P-by-P upper triangular matrix R\&. !> .fi .PP .br \fILDB\fP .PP .nf !> LDB is INTEGER !> The leading dimension of the array B\&. LDB >= max(1,P)\&. !> .fi .PP .br \fIC\fP .PP .nf !> C is REAL array, dimension (M) !> On entry, C contains the right hand side vector for the !> least squares part of the LSE problem\&. !> On exit, the residual sum of squares for the solution !> is given by the sum of squares of elements N-P+1 to M of !> vector C\&. !> .fi .PP .br \fID\fP .PP .nf !> D is REAL array, dimension (P) !> On entry, D contains the right hand side vector for the !> constrained equation\&. !> On exit, D is destroyed\&. !> .fi .PP .br \fIX\fP .PP .nf !> X is REAL array, dimension (N) !> On exit, X is the solution of the LSE problem\&. !> .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,M+N+P)\&. !> For optimum performance LWORK >= P+min(M,N)+max(M,N)*NB, !> where NB is an upper bound for the optimal blocksizes for !> SGEQRF, SGERQF, SORMQR and SORMRQ\&. !> !> 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\&. !> = 1: the upper triangular factor R associated with B in the !> generalized RQ factorization of the pair (B, A) is exactly !> singular, so that rank(B) < P; the least squares !> solution could not be computed\&. !> = 2: the (N-P) by (N-P) part of the upper trapezoidal factor !> T associated with A in the generalized RQ factorization !> of the pair (B, A) is exactly singular, so that !> rank( (A) ) < N; the least squares solution could not !> ( (B) ) !> 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 \fB188\fP of file \fBsgglse\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.