SGGLSE(l)	     LAPACK driver routine (version 1.1)	    SGGLSE(l)

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 || 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 solution.

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) REAL array, dimension (LDA,N)
	  On entry, the	P-by-M matrix A.  On exit, A is	destroyed.

  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	destroyed.

  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) 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 >= 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.


Back to the listing of simple driver routines