CGGLSE  -  solve  the  linear  equality-constrained  least
       squares (LSE) problem


SYNOPSIS

       SUBROUTINE CGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK,
                          LWORK, INFO )

           INTEGER        INFO, LDA, LDB, LWORK, M, N, P

           COMPLEX        A(  LDA, * ), B( LDB, * ), C( * ), D( *
                          ), WORK( * ), X( * )


PURPOSE

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

       LDA     (input) INTEGER
               The leading dimension  of  the  array  A.  LDA  >=
               max(1,M).

       B       (input/output) COMPLEX array, dimension (LDB,N)
               On  entry,  the  P-by-N  matrix  B.  On exit, B is
               destroyed.

               The leading dimension  of  the  array  B.  LDB  >=
               max(1,P).

       C       (input/output) COMPLEX 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 array, dimension (P)
               On  entry,  D  contains the right hand side vector
               for the  constrained  equation.   On  exit,  D  is
               destroyed.

       X       (output) COMPLEX array, dimension (N)
               On exit, X is the solution of the LSE problem.

       WORK    (workspace/output) COMPLEX 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 optimal  blocksizes  for  CGEQRF,  CGERQF,
               CUNMQR and CUNMRQ.

               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.


Man(1) output converted with man2html