Google
 

Trailing-Edge - PDP-10 Archives - decus_20tap2_198111 - decus/20-0026/dmprc.doc
There are 2 other files named dmprc.doc in the archive. Click here to see a list.
SUBROUTINE DMPRC

PURPOSE
   TO PERMUTE THE ROWS OR COLUMNS OF A GIVEN MATRIX ACCORDING
   TO A GIVEN TRANSPOSITION VECTOR OR ITS INVERSE.  (SEE THE
   DISCUSSION ON PERMUTATIONS FOR DEFINITIONS AND NOTATION.)

USAGE
   CALL DMPRC(A,M,N,ITRA,INV,IROCO,IER)

DESCRIPTION OF PARAMETERS
   A	 - GIVEN DOUBLE PRECISION M BY N MATRIX AND RESULTING
	   PERMUTED MATRIX
   M	 - NUMBER OF ROWS OF A
   N	 - NUMBER OF COLUMNS OF A
   ITRA  - GIVEN TRANSPOSITION VECTOR (DIMENSION M IF ROWS ARE
	   PERMUTED, N IF COLUMNS ARE PERMUTED)
   INV	 - INPUT PARAMETER
	   INV NON-ZERO  -  PERMUTE ACCORDING TO ITRA
	   INV	  =   0  -  PERMUTE ACCORDING TO ITRA INVERSE
   IROCO - INPUT PARAMETER
	   IROCO NON-ZERO  -  PERMUTE THE COLUMNS OF A
	   IROCO    =	0  -  PERMUTE THE ROWS OF A
   IER	 - RESULTING ERROR PARAMETER
	   IER = -1  -	M AND N ARE NOT BOTH POSITIVE
	   IER =  0  -	NO ERROR
	   IER =  1  -	ITRA IS NOT A TRANSPOSITION VECTOR ON
			1,...,M IF ROWS ARE PERMUTED, 1,...,N
			IF COLUMNS ARE PERMUTED

REMARKS
   (1)	IF IER=-1 THERE IS NO COMPUTATION.
   (2)	IF IER= 1, THEN COMPUTATION HAS BEEN UNSUCCESSFUL DUE
	TO ERROR, BUT THE MATRIX A WILL REFLECT THE ROW OR
	COLUMN INTERCHANGES PERFORMED BEFORE THE ERROR WAS
	DETECTED.
   (3)	THE MATRIX A IS ASSUMED TO BE STORED COLUMNWISE.

SUBROUTINES AND SUBPROGRAMS REQUIRED
   NONE

METHOD
   THE ROWS OR COLUMNS ARE PERMUTED ELEMENTWISE, INTERCHANGING
   ROW OR COLUMN 1 AND ITRA(1),...,ROW OR COLUMN K AND ITRA(K)
   IN THAT ORDER IF INV=0, AND OTHERWISE INTERCHANGING ROW OR
   COLUMN K AND ITRA(K),...,ROW OR COLUMN 1 AND ITRA(1), WHERE
   K IS M OR N DEPENDING ON WHETHER WE PERMUTE ROWS OR COLUMNS.