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

NAME
  CGELSS - compute the minimum norm solution to	a complex linear least
  squares problem

SYNOPSIS

  SUBROUTINE CGELSS( M,	N, NRHS, A, LDA, B, LDB, S, RCOND, RANK, WORK, LWORK,
		     RWORK, INFO )

      INTEGER	     INFO, LDA,	LDB, LWORK, M, N, NRHS,	RANK

      REAL	     RCOND

      REAL	     RWORK( * ), S( * )

      COMPLEX	     A(	LDA, * ), B( LDB, * ), WORK( * )

PURPOSE
  CGELSS computes the minimum norm solution to a complex linear	least squares
  problem:

  Minimize 2-norm(| b -	A*x |).

  using	the singular value decomposition (SVD) of A. A is an M-by-N matrix
  which	may be rank-deficient.

  Several right	hand side vectors b and	solution vectors x can be handled in
  a single call; they are stored as the	columns	of the M-by-NRHS right hand
  side matrix B	and the	N-by-NRHS solution matrix X.

  The effective	rank of	A is determined	by treating as zero those singular
  values which are less	than RCOND times the largest singular value.

ARGUMENTS

  M	  (input) INTEGER
	  The number of	rows of	the matrix A. M	>= 0.

  N	  (input) INTEGER
	  The number of	columns	of the matrix A. N >= 0.

  NRHS	  (input) INTEGER
	  The number of	right hand sides, i.e.,	the number of columns of the
	  matrices B and X. NRHS >= 0.

  A	  (input/output) COMPLEX array,	dimension (LDA,N)
	  On entry, the	M-by-N matrix A.  On exit, the first min(m,n) rows of
	  A are	overwritten with its right singular vectors, stored rowwise.

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

  B	  (input/output) COMPLEX array,	dimension (LDB,NRHS)
	  On entry, the	M-by-NRHS right	hand side matrix B.  On	exit, B	is
	  overwritten by the N-by-NRHS solution	matrix X.  If m	>= n and RANK
	  = n, the residual sum-of-squares for the solution in the i-th
	  column is given by the sum of	squares	of elements n+1:m in that
	  column.

  LDB	  (input) INTEGER
	  The leading dimension	of the array B.	 LDB >=	max(1,M,N).

  S	  (output) REAL	array, dimension (min(M,N))
	  The singular values of A in decreasing order.	 The condition number
	  of A in the 2-norm = S(1)/S(min(m,n)).

  RCOND	  (input) REAL
	  RCOND	is used	to determine the effective rank	of A.  Singular
	  values S(i) <= RCOND*S(1) are	treated	as zero.  If RCOND $<$ 0,
	  machine precision is used instead.

  RANK	  (output) INTEGER
	  The effective	rank of	A, i.e., the number of singular	values which
	  are greater than RCOND*S(1).

  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 >= 1, and also: LWORK >=
	  2*N+MAX(NRHS,M) if M >= N, LWORK >=  2*M+MAX(NRHS,N) if M < N.  For
	  good performance, LWORK should generally be larger.

  RWORK	  (workspace) REAL array, dimension
	  (max(5*min(M,N)-4,1))

  INFO	  (output) INTEGER
	  = 0:	successful exit
	  < 0:	if INFO	= -i, the i-th argument	had an illegal value.
	  > 0:	the algorithm for computing the	SVD failed to converge;	if
	  INFO = i, i off-diagonal elements of an intermediate bidiagonal
	  form did not converge	to zero.


Back to the listing of simple driver routines