Copyright | (c) Henning Thielemann 2006 |
---|---|

Maintainer | numericprelude@henning-thielemann.de |

Stability | provisional |

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

Safe Haskell | Safe-Inferred |

Language | Haskell98 |

- 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 i Source

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

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

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

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

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.

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