numeric-prelude-0.2.2.1: An experimental alternative hierarchy of numeric type classes

Portabilityrequires multi-parameter type classes
Stabilityprovisional
Maintainernumericprelude@henning-thielemann.de

MathObj.Permutation.CycleList.Check

Description

 

Synopsis

Documentation

newtype Cycle i Source

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

Cycle 

Fields

cycle :: [i]
 

Instances

Eq i => Eq (Cycle i) 
Read i => Read (Cycle i) 
Show i => Show (Cycle i) 

data T i Source

Constructors

Cons 

Fields

range :: (i, i)
 
cycles :: [Cycle i]
 

Instances

C T 
Ix i => Eq (T i)

These instances may need more work They involve converting a permutation to a table.

Ix i => Ord (T i) 
Show i => Show (T i) 
Ix i => C (T i) 

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

Does not check whether the input values are in range.

toCycles :: T i -> [[i]]Source

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

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

liftCmpTable2 :: Ix i => (T i -> T i -> a) -> T i -> T i -> aSource

liftTable2 :: Ix i => (T i -> T i -> T i) -> T i -> T i -> T iSource

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