Web pdp-10.trailing-edge.com

Trailing-Edge - PDP-10 Archives - decuslib10-02 - 43,50145/mprc.doc
There are 2 other files named mprc.doc in the archive. Click here to see a list.
```SUBROUTINE MPRC

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 MPRC(A,M,N,ITRA,INV,IROCO,IER)

DESCRIPTION OF PARAMETERS
A	 - GIVEN 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.
```