(* ---------------------------------------------------------------------------- * $Id: SACEXT3.md,v 1.2 1992/02/12 17:34:48 pesch Exp $ * ---------------------------------------------------------------------------- * This file is part of MAS. * ---------------------------------------------------------------------------- * Copyright (c) 1989 - 1992 Universitaet Passau * ---------------------------------------------------------------------------- * $Log: SACEXT3.md,v $ * Revision 1.2 1992/02/12 17:34:48 pesch * Moved CONST definition to the right place * * Revision 1.1 1992/01/22 15:15:28 kredel * Initial revision * * ---------------------------------------------------------------------------- *) DEFINITION MODULE SACEXT3; (* SAC Extensions 3 Definition Module. *) FROM MASSTOR IMPORT LIST; CONST rcsid = "$Id: SACEXT3.md,v 1.2 1992/02/12 17:34:48 pesch Exp $"; CONST copyright = "Copyright (c) 1989 - 1992 Universitaet Passau"; PROCEDURE CPLEXN(L: LIST; VAR I,M: LIST); (*Cartesian product, lexicographically next. L eq (L sub 1 , L sub 2 , ..., L sub 2n ), n ge 1, is a list such that L sub 2i is a non-null list, and L sub 2i-1 is a non-null reductum of L sub 2i, for 1 le i le n. I is the element (first(L sub 1 ), first(L sub 3 ) , ..., first(L sub 2n-1 )) of the cartesian product of L sub 2 , L sub 4 , ..., L sub 2n. If I is not the last element (in the inverse lexicographic ordering) of this cartesian product, then M is a list (M sub 1 , M sub 2 , ..., M sub 2n ), with M sub 2i eq L sub 2i, M sub 2i-1 a non-null reductum of M sub 2i, for 1 le i le n, and (first(M sub 1 ), first(M sub 3 ) , ..., first(M sub 2n-1 )) the lexicographically next element. If I is the last element, then M eq (). the list L is modified.*) PROCEDURE PERMCY(P: LIST): LIST; (*Permutation, cyclic. P is a list (P sub 1 , P sub 2 , ..., P sub n ), n ge 0. PP eq (P sub 2 , P sub 3 , ..., P sub n , P sub 1 ).*) END SACEXT3. (* -EOF- *)