Previous: zgghrd Up: ../lapack-z.html Next: zggqrf
NAME
ZGGLSE - solve the linear equality constrained least squares
(LSE) problem
SYNOPSIS
SUBROUTINE ZGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK,
LWORK, INFO )
INTEGER INFO, LDA, LDB, LWORK, M, N, P
PURPOSE
ZGGLSE solves the linear equality constrained least squares
(LSE) problem:
minimize || A*x - c ||_2 subject to B*x = d
using a generalized RQ factorization of matrices A and B,
where A is M-by-N, B is P-by-N, assume P <= N <= M+P, and
||.||_2 denotes vector 2-norm. It is assumed that
rank(B) = P
(1)
and the null spaces of A and B intersect only trivially,
i.e.,
intersection of Null(A) and Null(B) = {0} <=> rank( ( A ) )
= N (2)
( ( B ) )
where N(A) denotes the null space of matrix A. Conditions
(1) and (2) ensure that the problem LSE has a unique solu-
tion.
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. assume that P <= N <= M+P.
P (input) INTEGER
The number of rows of the matrix B. P >= 0.
A (input/output) COMPLEX*16 array, dimension (LDA,N)
On entry, the P-by-M matrix A. On exit, A is des-
troyed.
LDA (input) INTEGER
The leading dimension of the array A. LDA >=
max(1,M).
B (input/output) COMPLEX*16 array, dimension (LDB,N)
On entry, the P-by-N matrix B. On exit, B is des-
troyed.
LDB (input) INTEGER
The leading dimension of the array B. LDB >=
max(1,P).
C (input/output) COMPLEX*16 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) COMPLEX*16 array, dimension (P)
On entry, D contains the right hand side vector for
the constrained equation. On exit, D is destroyed.
X (output) COMPLEX*16 array, dimension (N)
On exit, X is the solution of the problem LSE.
WORK (workspace) COMPLEX*16 array, dimension (LWORK)
On exit, if INFO = 0, WORK(1) returns the optimal
LWORK.
LWORK (input) INTEGER
The dimension of the array WORK. LWORK >=
N+P+max(N,M,P). For optimum performance LWORK >=
N+P+max(M,P,N)*max(NB1,NB2), where NB1 is the
optimal blocksize for the QR factorization of M-by-N
matrix A. NB2 is the optimal blocksize for the RQ
factorization of P-by-N matrix B.
INFO (output) INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal
value.