Portability | Permutation represented by an array of the images. |
---|---|

Stability | provisional |

Maintainer | numericprelude@henning-thielemann.de |

- type T i = Array i i
- fromFunction :: Ix i => (i, i) -> (i -> i) -> T i
- toFunction :: Ix i => T i -> i -> i
- fromPermutation :: (Ix i, C p) => p i -> T i
- fromCycles :: Ix i => (i, i) -> [[i]] -> T i
- identity :: Ix i => (i, i) -> T i
- cycle :: Ix i => [i] -> T i -> T i
- inverse :: Ix i => T i -> T i
- compose :: Ix i => T i -> T i -> T i
- choose :: Set a -> Maybe (a, Set a)
- closure :: Ix i => [T i] -> [T i]
- closureSlow :: Ix i => [T i] -> [T i]

# Documentation

fromFunction :: Ix i => (i, i) -> (i -> i) -> T iSource

toFunction :: Ix i => T i -> i -> iSource

fromPermutation :: (Ix i, C p) => p i -> T iSource

fromCycles :: Ix i => (i, i) -> [[i]] -> T iSource

choose :: Set a -> Maybe (a, Set a)Source

Extremely nave 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.

closureSlow :: Ix i => [T i] -> [T i]Source