SORMHR(l)		LAPACK routine (version	1.1)		    SORMHR(l)

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

SYNOPSIS

  SUBROUTINE SORMHR( SIDE, TRANS, M, N,	ILO, IHI, A, LDA, TAU, C, LDC, WORK,
		     LWORK, INFO )

      CHARACTER	     SIDE, TRANS

      INTEGER	     IHI, ILO, INFO, LDA, LDC, LWORK, M, N

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

PURPOSE
  SORMHR overwrites the	general	real M-by-N matrix C with TRANS	= 'T':
  Q**T * C	 C * Q**T

  where	Q is a real orthogonal matrix of order nq, with	nq = m if SIDE = 'L'
  and nq = n if	SIDE = 'R'. Q is defined as the	product	of IHI-ILO elementary
  reflectors, as returned by SGEHRD:

  Q = H(ilo) H(ilo+1) .	. . H(ihi-1).

ARGUMENTS

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

  TRANS	  (input) CHARACTER*1
	  = 'N':  No transpose,	apply Q;
	  = 'T':  Transpose, apply Q**T.

  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.

  ILO	  (input) INTEGER
	  IHI	  (input) INTEGER ILO and IHI must have	the same values	as in
	  the previous call of SGEHRD. Q is equal to the unit matrix except
	  in the submatrix Q(ilo+1:ihi,ilo+1:ihi).  If SIDE = 'L', 1 <=	ILO
	  and  min(M,ILO) <= IHI <= M; if SIDE = 'R', 1	<= ILO and
	  min(N,ILO) <=	IHI <= N;

  A	  (input) REAL array, dimension
	  (LDA,M) if SIDE = 'L'	(LDA,N)	if SIDE	= 'R' The vectors which
	  define the elementary	reflectors, as returned	by SGEHRD.

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

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

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

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

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