Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class (Euclidean k, Ring k) => Field k where Source #
Fields.
Nothing
Instances
KnownNat im => Field (BinaryField im) Source # | |
Defined in BinaryField divide :: BinaryField im -> BinaryField im -> BinaryField im Source # invert :: BinaryField im -> BinaryField im Source # minus :: BinaryField im -> BinaryField im -> BinaryField im Source # | |
KnownNat p => Field (PrimeField p) Source # | |
Defined in PrimeField divide :: PrimeField p -> PrimeField p -> PrimeField p Source # invert :: PrimeField p -> PrimeField p Source # minus :: PrimeField p -> PrimeField p -> PrimeField p Source # | |
IrreducibleMonic k im => Field (ExtensionField k im) Source # | |
Defined in ExtensionField divide :: ExtensionField k im -> ExtensionField k im -> ExtensionField k im Source # invert :: ExtensionField k im -> ExtensionField k im Source # minus :: ExtensionField k im -> ExtensionField k im -> ExtensionField k im Source # |
class (Arbitrary k, Field k, Fractional k, Generic k, Ord k, Pretty k, Random k, Show k) => GaloisField k where Source #
Galois fields GF(p^q)
for p
prime and q
non-negative.
Characteristic p
of field and order of prime subfield.
Degree q
of field as extension field over prime subfield.
order :: k -> Integer Source #
Order p^q
of field.
Frobenius endomorphism x->x^p
of prime subfield.
pow :: k -> Integer -> k Source #
Exponentiation of field element to integer.
Get randomised quadratic nonresidue.
Check if quadratic residue.
quad :: k -> k -> k -> Maybe k Source #
Solve quadratic ax^2 + bx + c = 0
over field.
rnd :: MonadRandom m => m k Source #
Randomised field element.
Square root of field element.