halg-core-0.6.0.0: Core types and functions of halg computational algebra suite.
Safe HaskellNone
LanguageHaskell2010

Algebra.Field.Prime

Description

Prime fields

Synopsis

Documentation

data F (p :: k) Source #

Prime field of characteristic p. p should be prime, and not statically checked.

Instances

Instances details
Reifies p Integer => RightModule Integer (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(*.) :: F p -> Integer -> F p #

Reifies p Integer => RightModule Natural (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(*.) :: F p -> Natural -> F p #

Reifies p Integer => LeftModule Integer (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(.*) :: Integer -> F p -> F p #

Reifies p Integer => LeftModule Natural (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(.*) :: Natural -> F p -> F p #

Eq (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(==) :: F p -> F p -> Bool #

(/=) :: F p -> F p -> Bool #

Reifies p Integer => Fractional (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(/) :: F p -> F p -> F p #

recip :: F p -> F p #

fromRational :: Rational -> F p #

Reifies p Integer => Num (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(+) :: F p -> F p -> F p #

(-) :: F p -> F p -> F p #

(*) :: F p -> F p -> F p #

negate :: F p -> F p #

abs :: F p -> F p #

signum :: F p -> F p #

fromInteger :: Integer -> F p #

Ord (F p) Source #

Caution: just for use with Map or Sets; no guarantee for the compatibility with field structure and normal forms!

Instance details

Defined in Algebra.Field.Prime

Methods

compare :: F p -> F p -> Ordering #

(<) :: F p -> F p -> Bool #

(<=) :: F p -> F p -> Bool #

(>) :: F p -> F p -> Bool #

(>=) :: F p -> F p -> Bool #

max :: F p -> F p -> F p #

min :: F p -> F p -> F p #

Reifies p Integer => Read (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

readsPrec :: Int -> ReadS (F p) #

readList :: ReadS [F p] #

readPrec :: ReadPrec (F p) #

readListPrec :: ReadPrec [F p] #

Reifies p Integer => Show (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

showsPrec :: Int -> F p -> ShowS #

show :: F p -> String #

showList :: [F p] -> ShowS #

Reifies p Integer => UFD (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Reifies p Integer => PID (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

egcd :: F p -> F p -> (F p, F p, F p) #

Reifies p Integer => GCDDomain (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

gcd :: F p -> F p -> F p #

reduceFraction :: F p -> F p -> (F p, F p) #

lcm :: F p -> F p -> F p #

Reifies p Integer => IntegralDomain (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

divides :: F p -> F p -> Bool #

maybeQuot :: F p -> F p -> Maybe (F p) #

Reifies p Integer => Euclidean (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

degree :: F p -> Maybe Natural #

divide :: F p -> F p -> (F p, F p) #

quot :: F p -> F p -> F p #

rem :: F p -> F p -> F p #

Reifies p Integer => ZeroProductSemiring (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Reifies p Integer => UnitNormalForm (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

splitUnit :: F p -> (F p, F p) #

Reifies p Integer => Ring (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

fromInteger :: Integer -> F p

Reifies p Integer => Rig (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

fromNatural :: Natural -> F p #

Reifies p Integer => Characteristic (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

char :: proxy (F p) -> Natural #

Reifies p Integer => DecidableZero (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

isZero :: F p -> Bool #

Reifies p Integer => DecidableUnits (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

recipUnit :: F p -> Maybe (F p) #

isUnit :: F p -> Bool #

(^?) :: Integral n => F p -> n -> Maybe (F p) #

Reifies p Integer => DecidableAssociates (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

isAssociate :: F p -> F p -> Bool #

Reifies p Integer => Unital (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

one :: F p #

pow :: F p -> Natural -> F p #

productWith :: Foldable f => (a -> F p) -> f a -> F p #

Reifies p Integer => Division (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

recip :: F p -> F p #

(/) :: F p -> F p -> F p #

(\\) :: F p -> F p -> F p #

(^) :: Integral n => F p -> n -> F p

Reifies p Integer => Commutative (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Reifies p Integer => Semiring (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Reifies p Integer => Multiplicative (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(*) :: F p -> F p -> F p #

pow1p :: F p -> Natural -> F p #

productWith1 :: Foldable1 f => (a -> F p) -> f a -> F p #

Reifies p Integer => Monoidal (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

zero :: F p #

sinnum :: Natural -> F p -> F p #

sumWith :: Foldable f => (a -> F p) -> f a -> F p #

Reifies p Integer => Group (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(-) :: F p -> F p -> F p #

negate :: F p -> F p #

subtract :: F p -> F p -> F p #

times :: Integral n => n -> F p -> F p #

Reifies p Integer => Additive (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

(+) :: F p -> F p -> F p #

sinnum1p :: Natural -> F p -> F p #

sumWith1 :: Foldable1 f => (a -> F p) -> f a -> F p #

Reifies p Integer => Abelian (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Hashable (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

hashWithSalt :: Int -> F p -> Int #

hash :: F p -> Int #

NFData (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

rnf :: F p -> () #

Reifies p Integer => Random (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

randomR :: RandomGen g => (F p, F p) -> g -> (F p, g)

random :: RandomGen g => g -> (F p, g)

randomRs :: RandomGen g => (F p, F p) -> g -> [F p]

randoms :: RandomGen g => g -> [F p]

Reifies p Integer => FiniteField (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

power :: proxy (F p) -> Natural Source #

elements :: proxy (F p) -> [F p] Source #

Reifies p Integer => Normed (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Associated Types

type Norm (F p) Source #

Methods

norm :: F p -> Norm (F p) Source #

liftNorm :: Norm (F p) -> F p Source #

Reifies p Integer => PrettyCoeff (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

showsCoeff :: Int -> F p -> ShowSCoeff Source #

type Norm (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

type Norm (F p) = Integer

reifyPrimeField :: Integer -> (forall p. KnownNat p => Proxy (F p) -> a) -> a Source #

withPrimeField :: Integer -> (forall p. KnownNat p => F p) -> Integer Source #

modNat :: Reifies (p :: k) Integer => Integer -> F p Source #

modNat' :: forall proxy p. Reifies p Integer => proxy (F p) -> Integer -> F p Source #

class (Field k, Characteristic k) => FiniteField k where Source #

Abstract class for finite fields.

Methods

power :: proxy k -> Natural Source #

elements :: proxy k -> [k] Source #

Instances

Instances details
Reifies p Integer => FiniteField (F p) Source # 
Instance details

Defined in Algebra.Field.Prime

Methods

power :: proxy (F p) -> Natural Source #

elements :: proxy (F p) -> [F p] Source #

order :: FiniteField k => proxy k -> Natural Source #