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.