CUPMTR(l)		LAPACK routine (version	1.1)		    CUPMTR(l)

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

SYNOPSIS

  SUBROUTINE CUPMTR( SIDE, UPLO, TRANS,	M, N, AP, TAU, C, LDC, WORK, INFO )

      CHARACTER	     SIDE, TRANS, UPLO

      INTEGER	     INFO, LDC,	M, N

      COMPLEX	     AP( * ), C( LDC, *	), TAU(	* ), WORK( * )

PURPOSE
  CUPMTR 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 of order nq, with	nq = m if SIDE = 'L'
  and nq = n if	SIDE = 'R'. Q is defined as the	product	of nq-1	elementary
  reflectors, as returned by CHPTRD using packed storage:

  if UPLO = 'U', Q = H(nq-1) . . . H(2)	H(1);

  if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).

ARGUMENTS

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

  UPLO	  (input) CHARACTER*1
	  = 'U': Upper triangular packed storage used in previous call to
	  CHPTRD; = 'L': Lower triangular packed storage used in previous
	  call to CHPTRD.

  TRANS	  (input) CHARACTER*1
	  Specifies whether the	matrix Q or Q**H is applied to C:
	  = '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.

  AP	  (input) COMPLEX array, dimension
	  (M*(M+1)/2) if SIDE =	'L' (N*(N+1)/2)	if SIDE	= 'R' The vectors
	  which	define the elementary reflectors, as returned by CHPTRD.  AP
	  is modified by the routine but restored on exit.

  TAU	  (input) COMPLEX array, dimension (M-1) if SIDE = 'L'
	  or (N-1) if SIDE = 'R' TAU(i)	must contain the scalar	factor of the
	  elementary reflector H(i), as	returned by CHPTRD.

  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
	  (N) if SIDE =	'L' (M)	if SIDE	= 'R'

  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 eigenvalue problems