Google
 

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

PURPOSE
   TO COMPUTE, GIVEN TWO PERMUTATION VECTORS IP1 AND IP2, THE
   COMPOSITION IP2(IP1) AND THE CONJUGATE IP1(IP2(IP1 INVERSE))
   OF IP2 BY IP1.  (SEE THE GENERAL DISCUSSION FOR DEFINITIONS
   AND NOTATION.)

USAGE
   CALL PPRCN(IP1,IP2,IP3,N,IPAR,IER)

DESCRIPTION OF PARAMETERS
   IP1	- GIVEN PERMUTATION VECTOR (DIMENSION N)
   IP2	- GIVEN PERMUTATION VECTOR (DIMENSION N)
   IP3	- RESULTING PERMUTATION VECTOR (DIMENSION N)
   N	- DIMENSION OF VECTORS IP1, IP2 AND IP3
   IPAR - INPUT PARAMETER
	  IPAR NON-NEGATIVE - COMPUTE IP2(IP1)
	  IPAR NEGATIVE     - COMPUTE IP1(IP2(IP1 INVERSE))
   IER	- RESULTING ERROR PARAMETER
	  IER=-1  -  N IS NOT POSITIVE
	  IER= 0  -  NO ERROR
	  IER= 1  -  IP1 AND IP2 ARE NOT BOTH PERMUTATION
		     VECTORS ON 1,...,N

REMARKS
   (1)	IF IER=-1 THERE HAS BEEN NO COMPUTATION.
   (2)	IF IER=1, THEN COMPUTATION HAS BEEN UNSUCCESSFUL DUE TO
	ERROR AND THE PARTIAL RESULTS FOUND IN IP2 ARE USELESS.
   (3)	IP3 CANNOT HAVE THE SAME STORAGE ALLOCATION AS IP1 OR
	IP2.

SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
   PERM

METHOD
   SUBROUTINE PERM IS USED TO CHECK THAT IP1 AND IP2 ARE PERMU-
   TATION VECTORS.  IF IP2(IP1) IS COMPUTED, IP3(I) IS SET TO
   IP2(IP1(I)) FOR I=1,...,N.  IF IP1(IP2(IP1 INVERSE)) IS
   COMPUTED, FIRST IP3 IS SET TO IP1 INVERSE BY SUBROUTINE PERM
   AND THEN IP3(I) IS SET TO IP1(IP2(IP3(I))) FOR I=1,...,N.