CUNMQR(l)		LAPACK routine (version	1.1)		    CUNMQR(l)

NAME
  CUNMQR - overwrite the general complex M-by-N	matrix C with	SIDE = 'L'
  SIDE = 'R' TRANS = 'N'

SYNOPSIS

  SUBROUTINE CUNMQR( SIDE, TRANS, M, N,	K, A, LDA, TAU,	C, LDC,	WORK, LWORK,
		     INFO )

      CHARACTER	     SIDE, TRANS

      INTEGER	     INFO, K, LDA, LDC,	LWORK, M, N

      COMPLEX	     A(	LDA, * ), C( LDC, * ), TAU( * ), WORK( LWORK )

PURPOSE
  CUNMQR overwrites the	general	complex	M-by-N matrix C	with TRANS = 'C':
  Q**H * C	 C * Q**H

  where	Q is a complex unitary matrix defined as the product of	k elementary
  reflectors

	Q = H(1) H(2) .	. . H(k)

  as returned by CGEQRF. Q is of order M if SIDE = 'L' and of order N if SIDE
  = 'R'.

ARGUMENTS

  SIDE	  (input) CHARACTER*1
	  = 'L': apply Q or Q**H from the Left;
	  = 'R': apply Q or Q**H from the Right.

  TRANS	  (input) CHARACTER*1
	  = 'N':  No transpose,	apply Q;
	  = 'C':  Conjugate transpose, apply Q**H.

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

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

  K	  (input) INTEGER
	  The number of	elementary reflectors whose product defines the
	  matrix Q.  If	SIDE = 'L', M >= K >= 0; if SIDE = 'R',	N >= K >= 0.

  A	  (input) COMPLEX array, dimension (LDA,K)
	  The i-th column must contain the vector which	defines	the elemen-
	  tary reflector H(i), for i = 1,2,...,k, as returned by CGEQRF	in
	  the first k columns of its array argument A.	A is modified by the
	  routine but restored on exit.

  LDA	  (input) INTEGER
	  The leading dimension	of the array A.	 If SIDE = 'L',	LDA >=
	  max(1,M); if SIDE = 'R', LDA >= max(1,N).

  TAU	  (input) COMPLEX array, dimension (K)
	  TAU(i) must contain the scalar factor	of the elementary reflector
	  H(i),	as returned by CGEQRF.

  C	  (input/output) COMPLEX array,	dimension (LDC,N)
	  On entry, the	M-by-N matrix C.  On exit, C is	overwritten by Q*C or
	  Q**H*C or C*Q**H or C*Q.

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

  WORK	  (workspace) COMPLEX array, dimension (LWORK)
	  On exit, if INFO = 0,	WORK(1)	returns	the optimal LWORK.

  LWORK	  (input) INTEGER
	  The dimension	of the array WORK.  If SIDE = 'L', LWORK >= max(1,N);
	  if SIDE = 'R', LWORK >= max(1,M).  For optimum performance LWORK >=
	  N*NB if SIDE = 'L', and LWORK	>= M*NB	if SIDE	= 'R', where NB	is
	  the optimal blocksize.

  INFO	  (output) INTEGER
	  = 0:	successful exit
	  < 0:	if INFO	= -i, the i-th argument	had an illegal value


Back to the listing of computational routines for orthogonal factorization and singular value decomposition