Math.Algebra.Group.RandomSchreierSims
- 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))
- sgs :: (Ord a, Show a) => [Permutation a] -> [Permutation a]
- isMemberSGS :: (Ord a, Show a) => [Permutation a] -> Permutation a -> Bool
Documentation
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
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.
isMemberSGS :: (Ord a, Show a) => [Permutation a] -> Permutation a -> BoolSource
Given a strong generating set gs, isMemberSGS gs is a membership test for the group