 | NumericPrelude-0.0: An experimental alternative hierarchy of numeric type classes | Contents | Index |
|
MathObj.PermutationGroup | Portability | requires multi-parameter type classes | Stability | provisional | Maintainer | mik@math.uni-jena.de |
|
|
|
|
|
Description |
Routines and abstractions for permutation groups as subgroups of
Sym(Integer).
Erm, currently PermutationGroup.T is only a Permutation.
|
|
Synopsis |
|
|
|
Documentation |
|
data Cycle |
We shall make a little bit of a hack here, enabling us to use additive
or multiplicative syntax for groups as we wish by simply instantiating
Num with both operations corresponding to the group operation of the
permutation group we're studying
There are quite a few way we could represent elements of permutation
groups: the images in a row, a list of the cycles, et.c. All of these
differ highly in how complex various operations end up being.
| Constructors | | Instances | |
|
|
data T |
Constructors | | Instances | |
|
|
cycleRightAction :: Integer -> Cycle -> Integer |
|
cycleLeftAction :: Cycle -> Integer -> Integer |
|
cycleAction :: [Integer] -> Integer -> Integer |
|
cycleOrbit :: Cycle -> Integer -> [Integer] |
|
(*>) :: T -> Integer -> Integer |
Right (left?) group action on the Integers. Close to, but not
the same as the module action in Algebra.Module.
|
|
cyclesOrbit :: T -> Integer -> [Integer] |
|
orbit :: (Integer -> Integer) -> Integer -> [Integer] |
|
takeUntilRepetition :: Ord a => [a] -> [a] |
|
takeUntilRepetitionSlow :: Eq a => [a] -> [a] |
|
choose :: Set a -> Maybe a |
|
reduceCycles :: T -> T |
|
keepEssentials :: T -> T |
|
isEssential :: Cycle -> Bool |
|
reduceCyclesSlow :: T -> T |
|
permutation :: [[Integer]] -> T |
|
inverse :: T -> T |
|
generate :: [T] -> [T] |
Extremely naïve algorithm
to generate a list of all elements in a group.
Should be replaced by a Schreier-Sims system
if this code is ever used for anything bigger than .. say ..
groups of order 512 or so.
|
|
Produced by Haddock version 0.7 |