HaskellForMaths-0.4.8: Combinatorics, group theory, commutative algebra, non-commutative algebra

Safe Haskell | None
Language | Haskell98

Math.Algebra.Group.RandomSchreierSims

Synopsis

- testProdRepl :: IO ()
- initProdRepl :: (Ord a, Show a) => [Permutation a] -> IO (Int, IOArray Int (Permutation a))
- nextProdRepl :: (Ord a, Show a) => (Int, IOArray Int (Permutation a)) -> IO (Maybe (Permutation a))
- updateArray :: (Integral t, Num a, Num i, Ix i, MArray a1 a m, HasInverses a) => a1 i a -> i -> i -> t -> m (Maybe a)
- sgs :: (Ord a, Show a) => [Permutation a] -> [Permutation a]
- rss :: (Ord a, Show a) => [Permutation a] -> [((a, Map a (Permutation a)), [Permutation a])]
- rss' :: (Eq a, Num a, Ord a1, Show a1) => (Int, IOArray Int (Permutation a1)) -> [((a1, Map a1 (Permutation a1)), [Permutation a1])] -> a -> IO [((a1, Map a1 (Permutation a1)), [Permutation a1])]
- initLevels :: (Num a, Ord k, Foldable t) => t (Permutation k) -> [((k, Map k a), [t1])]
- updateLevels :: Ord k => [((k, Map k (Permutation k)), [Permutation k])] -> Maybe (Permutation k) -> (Bool, [((k, Map k (Permutation k)), [Permutation k])])
- updateLevels' :: Ord k => [((k, Map k (Permutation k)), [Permutation k])] -> [((k, Map k (Permutation k)), [Permutation k])] -> Permutation k -> k -> [((k, Map k (Permutation k)), [Permutation k])]
- baseTransversalsSGS :: Ord k => [Permutation k] -> [(k, Map k (Permutation k))]
- isMemberSGS :: (Ord a, Show a) => [Permutation a] -> Permutation a -> Bool

# Documentation

testProdRepl :: IO () Source

initProdRepl :: (Ord a, Show a) => [Permutation a] -> IO (Int, IOArray Int (Permutation a)) Source

nextProdRepl :: (Ord a, Show a) => (Int, IOArray Int (Permutation a)) -> IO (Maybe (Permutation a)) Source

updateArray :: (Integral t, Num a, Num i, Ix i, MArray a1 a m, HasInverses a) => a1 i a -> i -> i -> t -> m (Maybe a) Source

sgs :: (Ord a, Show a) => [Permutation a] -> [Permutation a] Source

Given generators for a permutation group, return a strong generating set. The result is calculated using random Schreier-Sims algorithm, so has a small (<10^-6) chance of being incomplete. The sgs is relative to the base implied by the Ord instance.

rss :: (Ord a, Show a) => [Permutation a] -> [((a, Map a (Permutation a)), [Permutation a])] Source

rss' :: (Eq a, Num a, Ord a1, Show a1) => (Int, IOArray Int (Permutation a1)) -> [((a1, Map a1 (Permutation a1)), [Permutation a1])] -> a -> IO [((a1, Map a1 (Permutation a1)), [Permutation a1])] Source

initLevels :: (Num a, Ord k, Foldable t) => t (Permutation k) -> [((k, Map k a), [t1])] Source

updateLevels :: Ord k => [((k, Map k (Permutation k)), [Permutation k])] -> Maybe (Permutation k) -> (Bool, [((k, Map k (Permutation k)), [Permutation k])]) Source

updateLevels' :: Ord k => [((k, Map k (Permutation k)), [Permutation k])] -> [((k, Map k (Permutation k)), [Permutation k])] -> Permutation k -> k -> [((k, Map k (Permutation k)), [Permutation k])] Source

baseTransversalsSGS :: Ord k => [Permutation k] -> [(k, Map k (Permutation k))] Source

isMemberSGS :: (Ord a, Show a) => [Permutation a] -> Permutation a -> Bool Source

Given a strong generating set gs, isMemberSGS gs is a membership test for the group