[BACK]Return to permutations.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Symmetry

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Symmetry/permutations.ads, Revision 1.1

1.1     ! maekawa     1: with Standard_Integer_Vectors;
        !             2:
        !             3: package Permutations is
        !             4:
        !             5: -- DESCRIPTION :
        !             6: --   This package defines the type Permutation.
        !             7:
        !             8:   type Permutation is new Standard_Integer_Vectors.Vector;
        !             9:   type Link_to_Permutation is new Standard_Integer_Vectors.Link_to_Vector;
        !            10:
        !            11:   -- DESCRIPTION :
        !            12:   --   A permutation p defines the image of i -> p(i).
        !            13:   --   As also negative entries are alowed, sign permutations
        !            14:   --   will be modelled as follows:
        !            15:   --     let perm = (1 3 -2), applied to F=(f1,f2,f3):
        !            16:   --     perm*F = (f1,f3,-f2).
        !            17:
        !            18:   function Is_Permutation ( p : Permutation ) return boolean;
        !            19:
        !            20:   -- DESCRIPTION :
        !            21:   --   Checks whether the vector p models a permutation:
        !            22:   --    p(i) /= p(j) and p(i) /= -p(j), for all i /= j and
        !            23:   --    -p'last <= p(i) <= p'last.
        !            24:
        !            25:   function Equal ( p1,p2 : Permutation ) return boolean;
        !            26:
        !            27:   -- DESCRIPTION :
        !            28:   --   Returns true if both permutations are equal.
        !            29:
        !            30:   function "*" ( p1,p2 : Permutation ) return Permutation;
        !            31:
        !            32:   -- DESCRIPTION :
        !            33:   --   returns p1 `after' p2
        !            34:   --   (1 3 -2) * (2 -1 3) = (3 -1 -2)
        !            35:   -- REQUIRED :
        !            36:   --   p1'range = p2'range
        !            37:
        !            38:   function inv ( p : Permutation ) return Permutation;
        !            39:
        !            40:   -- DESCRIPTION :
        !            41:   --   inv(p)*p = p*inv(p) = the identical transformation
        !            42:
        !            43: end Permutations;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>