| 
SORML2(3F)							    SORML2(3F)
      SORML2 - overwrite	the general real m by n	matrix C with	Q * C if SIDE
     = 'L' and TRANS = 'N', or	 Q'* C if SIDE = 'L' and TRANS = 'T', or   C *
     Q if SIDE = 'R' and TRANS = 'N', or   C * Q' if SIDE = 'R'	and TRANS =
     'T',
     SUBROUTINE	SORML2(	SIDE, TRANS, M,	N, K, A, LDA, TAU, C, LDC, WORK, INFO
			)
	 CHARACTER	SIDE, TRANS
	 INTEGER	INFO, K, LDA, LDC, M, N
	 REAL		A( LDA,	* ), C(	LDC, * ), TAU( * ), WORK( * )
      SORML2 overwrites the general real	m by n matrix C	with
     where Q is	a real orthogonal matrix defined as the	product	of k
     elementary	reflectors
	   Q = H(k) . .	. H(2) H(1)
     as	returned by SGELQF. Q is of order m if SIDE = 'L' and of order n if
     SIDE = 'R'.
     SIDE    (input) CHARACTER*1
	     = 'L': apply Q or Q' from the Left
	     = 'R': apply Q or Q' from the Right
     TRANS   (input) CHARACTER*1
	     = 'N': apply Q  (No transpose)
	     = 'T': apply Q' (Transpose)
     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) REAL array, dimension
	     (LDA,M) if	SIDE = 'L', (LDA,N) if SIDE = 'R' The i-th row must
	     contain the vector	which defines the elementary reflector H(i),
	     for i = 1,2,...,k,	as returned by SGELQF in the first k rows of
									Page 1
SORML2(3F)							    SORML2(3F)
	     its array argument	A.  A is modified by the routine but restored
	     on	exit.
     LDA     (input) INTEGER
	     The leading dimension of the array	A. LDA >= max(1,K).
     TAU     (input) REAL array, dimension (K)
	     TAU(i) must contain the scalar factor of the elementary reflector
	     H(i), as returned by SGELQF.
     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'*C or	C*Q' or	C*Q.
     LDC     (input) INTEGER
	     The leading dimension of the array	C. LDC >= max(1,M).
     WORK    (workspace) REAL 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
SORML2(3F)							    SORML2(3F)
     SORML2 - overwrite	the general real m by n	matrix C with	Q * C if SIDE
     = 'L' and TRANS = 'N', or	 Q'* C if SIDE = 'L' and TRANS = 'T', or   C *
     Q if SIDE = 'R' and TRANS = 'N', or   C * Q' if SIDE = 'R'	and TRANS =
     'T',
     SUBROUTINE	SORML2(	SIDE, TRANS, M,	N, K, A, LDA, TAU, C, LDC, WORK, INFO
			)
	 CHARACTER	SIDE, TRANS
	 INTEGER	INFO, K, LDA, LDC, M, N
	 REAL		A( LDA,	* ), C(	LDC, * ), TAU( * ), WORK( * )
      SORML2 overwrites the general real	m by n matrix C	with
     where Q is	a real orthogonal matrix defined as the	product	of k
     elementary	reflectors
	   Q = H(k) . .	. H(2) H(1)
     as	returned by SGELQF. Q is of order m if SIDE = 'L' and of order n if
     SIDE = 'R'.
     SIDE    (input) CHARACTER*1
	     = 'L': apply Q or Q' from the Left
	     = 'R': apply Q or Q' from the Right
     TRANS   (input) CHARACTER*1
	     = 'N': apply Q  (No transpose)
	     = 'T': apply Q' (Transpose)
     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) REAL array, dimension
	     (LDA,M) if	SIDE = 'L', (LDA,N) if SIDE = 'R' The i-th row must
	     contain the vector	which defines the elementary reflector H(i),
	     for i = 1,2,...,k,	as returned by SGELQF in the first k rows of
									Page 1
SORML2(3F)							    SORML2(3F)
	     its array argument	A.  A is modified by the routine but restored
	     on	exit.
     LDA     (input) INTEGER
	     The leading dimension of the array	A. LDA >= max(1,K).
     TAU     (input) REAL array, dimension (K)
	     TAU(i) must contain the scalar factor of the elementary reflector
	     H(i), as returned by SGELQF.
     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'*C or	C*Q' or	C*Q.
     LDC     (input) INTEGER
	     The leading dimension of the array	C. LDC >= max(1,M).
     WORK    (workspace) REAL 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
									PPPPaaaaggggeeee 2222[ Back ] |