1SGGLSE(1) LAPACK driver routine (version 3.2) SGGLSE(1)
2
3
4
6 SGGLSE - solves the linear equality-constrained least squares (LSE)
7 problem
8
10 SUBROUTINE SGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO
11 )
12
13 INTEGER INFO, LDA, LDB, LWORK, M, N, P
14
15 REAL A( LDA, * ), B( LDB, * ), C( * ), D( * ), WORK( * ),
16 X( * )
17
19 SGGLSE solves the linear equality-constrained least squares (LSE) prob‐
20 lem:
21 minimize || c - A*x ||_2 subject to B*x = d
22 where A is an M-by-N matrix, B is a P-by-N matrix, c is a given M-vec‐
23 tor, and d is a given P-vector. It is assumed that
24 P <= N <= M+P, and
25 rank(B) = P and rank( (A) ) = N.
26 ( (B) )
27 These conditions ensure that the LSE problem has a unique solution,
28 which is obtained using a generalized RQ factorization of the matrices
29 (B, A) given by
30 B = (0 R)*Q, A = Z*T*Q.
31
33 M (input) INTEGER
34 The number of rows of the matrix A. M >= 0.
35
36 N (input) INTEGER
37 The number of columns of the matrices A and B. N >= 0.
38
39 P (input) INTEGER
40 The number of rows of the matrix B. 0 <= P <= N <= M+P.
41
42 A (input/output) REAL array, dimension (LDA,N)
43 On entry, the M-by-N matrix A. On exit, the elements on and
44 above the diagonal of the array contain the min(M,N)-by-N upper
45 trapezoidal matrix T.
46
47 LDA (input) INTEGER
48 The leading dimension of the array A. LDA >= max(1,M).
49
50 B (input/output) REAL array, dimension (LDB,N)
51 On entry, the P-by-N matrix B. On exit, the upper triangle of
52 the subarray B(1:P,N-P+1:N) contains the P-by-P upper triangu‐
53 lar matrix R.
54
55 LDB (input) INTEGER
56 The leading dimension of the array B. LDB >= max(1,P).
57
58 C (input/output) REAL array, dimension (M)
59 On entry, C contains the right hand side vector for the least
60 squares part of the LSE problem. On exit, the residual sum of
61 squares for the solution is given by the sum of squares of ele‐
62 ments N-P+1 to M of vector C.
63
64 D (input/output) REAL array, dimension (P)
65 On entry, D contains the right hand side vector for the con‐
66 strained equation. On exit, D is destroyed.
67
68 X (output) REAL array, dimension (N)
69 On exit, X is the solution of the LSE problem.
70
71 WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
72 On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
73
74 LWORK (input) INTEGER
75 The dimension of the array WORK. LWORK >= max(1,M+N+P). For
76 optimum performance LWORK >= P+min(M,N)+max(M,N)*NB, where NB
77 is an upper bound for the optimal blocksizes for SGEQRF,
78 SGERQF, SORMQR and SORMRQ. If LWORK = -1, then a workspace
79 query is assumed; the routine only calculates the optimal size
80 of the WORK array, returns this value as the first entry of the
81 WORK array, and no error message related to LWORK is issued by
82 XERBLA.
83
84 INFO (output) INTEGER
85 = 0: successful exit.
86 < 0: if INFO = -i, the i-th argument had an illegal value.
87 = 1: the upper triangular factor R associated with B in the
88 generalized RQ factorization of the pair (B, A) is singular, so
89 that rank(B) < P; the least squares solution could not be com‐
90 puted. = 2: the (N-P) by (N-P) part of the upper trapezoidal
91 factor T associated with A in the generalized RQ factorization
92 of the pair (B, A) is singular, so that rank( (A) ) < N; the
93 least squares solution could not ( (B) ) be computed.
94
95
96
97 LAPACK driver routine (version 3.N2o)vember 2008 SGGLSE(1)