sgglse(3)
NAME
- SGGLSE - solve the linear equality-constrained least
- squares (LSE) problem
SYNOPSIS
SUBROUTINE SGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK,
LWORK, INFO )
INTEGER INFO, LDA, LDB, LWORK, M, N, P
REAL A( LDA, * ), B( LDB, * ), C( * ), D( *
), WORK( * ), X( * )
PURPOSE
- 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 GRQ factorization of the ma
- trices B and A.
ARGUMENTS
- M (input) INTEGER
- The number of rows of the matrix A. M >= 0.
- N (input) INTEGER
- The number of columns of the matrices A and B. N
- >= 0.
- P (input) INTEGER
- The number of rows of the matrix B. 0 <= P <= N <=
- M+P.
- A (input/output) REAL array, dimension (LDA,N)
- On entry, the M-by-N matrix A. On exit, A is de
- stroyed.
- LDA (input) INTEGER
- The leading dimension of the array A. LDA >=
- max(1,M).
- B (input/output) REAL array, dimension (LDB,N)
- On entry, the P-by-N matrix B. On exit, B is de
- stroyed.
- LDB (input) INTEGER
- The leading dimension of the array B. LDB >=
- max(1,P).
- C (input/output) 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.
- D (input/output) REAL array, dimension (P)
- On entry, D contains the right hand side vector
- for the constrained equation. On exit, D is destroyed.
- X (output) REAL array, dimension (N)
- On exit, X is the solution of the LSE problem.
- WORK (workspace/output) REAL array, dimension (LWORK)
- On exit, if INFO = 0, WORK(1) returns the optimal
- LWORK.
- LWORK (input) 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 opti
- mal 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.
- INFO (output) INTEGER
- = 0: successful exit.
< 0: if INFO = -i, the i-th argument had an ille
- gal value.
- LAPACK version 3.0 15 June 2000