CM::Permutation - Module for manipulating permutations
The module was written for carrying out permutation operations. The module is not written for generating permutations or counting them(to that end you can use Algorithm::Permute or Math::Counting)
At the moment the following are implemented(any feature that is currently listed as implemented has tests proving it):
inverse of a permutation
cycle decomposition
power of a permutation
'==' operator implemented
breaking cycles into transpositions( maybe making a transposition class)
writing as much tests as possible
rewrite tests using the equal operator
writing routine is_cycle() to check if a permutation is a cycle
get Cycle_Algorithm to use ArrayRef[CM::Permutation::Cycle] instead of what it's using now for storing the cycles and re-write tests
add order() method for ::Permutation (will be different for ::Permutation::Cycle , where just the length is the order) and will be computed as gcd of lenghts of cycles.::Permutation (will be different for ::Permutation::Cycle , where just the length is the order) and will be computed as gcd of lenghts of cycles.
constructing a separate module or in this module to make the table of operations for a particular S_n
making a routine that will check if a subgroup's operation table is equal to some particular subgroup of some S_n(since order of S_n is n! above n>5 there isn't much hope for this) and if so identify them as being isomorphic.
writing code for calculating the subgroup lattice of a group S_n and representing it in a nice way
hardcoding well-known groups , their isomorphic subgroup of S_n and using that before an exhaustive check in the previous point
Stefan Petrea, <stefan.petrea at gmail.com>
<stefan.petrea at gmail.com>
Algorithm::Permute or Math::Counting
http://en.wikipedia.org/wiki/Cycle_(mathematics)
To install CM::Permutation, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CM::Permutation
CPAN shell
perl -MCPAN -e shell install CM::Permutation
For more information on module installation, please visit the detailed CPAN module installation guide.