galois-field-0.4.1: Galois field library

Safe HaskellNone
LanguageHaskell2010

ExtensionField

Synopsis

Documentation

data ExtensionField k im Source #

Extension fields GF(p^q)[X]/<f(X)> for p prime, q positive, and f(X) irreducible monic in GF(p^q)[X].

Instances
Eq k => Eq (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

Methods

(==) :: ExtensionField k im -> ExtensionField k im -> Bool #

(/=) :: ExtensionField k im -> ExtensionField k im -> Bool #

IrreducibleMonic k im => Fractional (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

IrreducibleMonic k im => Num (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

Ord k => Ord (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

Show k => Show (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

Generic (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

Associated Types

type Rep (ExtensionField k im) :: Type -> Type #

Methods

from :: ExtensionField k im -> Rep (ExtensionField k im) x #

to :: Rep (ExtensionField k im) x -> ExtensionField k im #

IrreducibleMonic k im => Random (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

Methods

randomR :: RandomGen g => (ExtensionField k im, ExtensionField k im) -> g -> (ExtensionField k im, g) #

random :: RandomGen g => g -> (ExtensionField k im, g) #

randomRs :: RandomGen g => (ExtensionField k im, ExtensionField k im) -> g -> [ExtensionField k im] #

randoms :: RandomGen g => g -> [ExtensionField k im] #

randomRIO :: (ExtensionField k im, ExtensionField k im) -> IO (ExtensionField k im) #

randomIO :: IO (ExtensionField k im) #

IrreducibleMonic k im => Arbitrary (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

IrreducibleMonic k im => GcdDomain (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

IrreducibleMonic k im => Euclidean (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

IrreducibleMonic k im => Semiring (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

IrreducibleMonic k im => Ring (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

Methods

negate :: ExtensionField k im -> ExtensionField k im #

IrreducibleMonic k im => Pretty (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

Methods

pretty :: ExtensionField k im -> Doc #

prettyList :: [ExtensionField k im] -> Doc #

IrreducibleMonic k im => GaloisField (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

IrreducibleMonic k im => Field (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

type Rep (ExtensionField k im) Source # 
Instance details

Defined in ExtensionField

type Rep (ExtensionField k im) = D1 (MetaData "ExtensionField" "ExtensionField" "galois-field-0.4.1-72GMlu0ozffBaDuNcNWRQD" True) (C1 (MetaCons "EF" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (VPoly k))))

type PolynomialRing = VPoly Source #

Polynomial rings.

class GaloisField k => IrreducibleMonic k im where Source #

Irreducible monic splitting polynomial f(X) of extension field.

Methods

split :: ExtensionField k im -> VPoly k Source #

Splitting polynomial f(X).

fromField :: ExtensionField k im -> [k] Source #

Convert from field element to list representation.

toField :: forall k im. IrreducibleMonic k im => [k] -> ExtensionField k im Source #

Convert from list representation to field element.

pattern X :: forall a (v :: Type -> Type). (Eq a, Semiring a, Vector v a, Eq (v a)) => Poly v a #

Create an identity polynomial.

pattern X2 :: GaloisField k => VPoly k Source #

Pattern for X^2.

pattern X3 :: GaloisField k => VPoly k Source #

Pattern for X^3.

pattern Y :: IrreducibleMonic k im => VPoly k -> VPoly (ExtensionField k im) Source #

Pattern for descending tower of indeterminate variables.