| Copyright | (c) 2017 Andrew Lelechenko 2018 Bhavik Mehta |
|---|---|
| License | MIT |
| Maintainer | Andrew Lelechenko <andrew.lelechenko@gmail.com> |
| Safe Haskell | None |
| Language | Haskell2010 |
Math.NumberTheory.Moduli.PrimitiveRoot
Contents
Description
Deprecated: Use Math.NumberTheory.Moduli.Multiplicative instead
Description: Deprecated
Primitive roots and cyclic groups.
Synopsis
- data PrimitiveRoot m
- unPrimitiveRoot :: PrimitiveRoot m -> MultMod m
- isPrimitiveRoot :: (Integral a, UniqueFactorisation a) => CyclicGroup a m -> Mod m -> Maybe (PrimitiveRoot m)
Primitive roots
data PrimitiveRoot m Source #
PrimitiveRoot m is a type which is only inhabited
by primitive roots of m.
Instances
| Eq (PrimitiveRoot m) Source # | |
Defined in Math.NumberTheory.Moduli.Multiplicative Methods (==) :: PrimitiveRoot m -> PrimitiveRoot m -> Bool # (/=) :: PrimitiveRoot m -> PrimitiveRoot m -> Bool # | |
| KnownNat m => Show (PrimitiveRoot m) Source # | |
Defined in Math.NumberTheory.Moduli.Multiplicative Methods showsPrec :: Int -> PrimitiveRoot m -> ShowS # show :: PrimitiveRoot m -> String # showList :: [PrimitiveRoot m] -> ShowS # | |
unPrimitiveRoot :: PrimitiveRoot m -> MultMod m Source #
Extract primitive root value.
isPrimitiveRoot :: (Integral a, UniqueFactorisation a) => CyclicGroup a m -> Mod m -> Maybe (PrimitiveRoot m) Source #
Check whether a given modular residue is a primitive root.
>>>:set -XDataKinds>>>import Data.Maybe>>>isPrimitiveRoot (fromJust cyclicGroup) (1 :: Mod 13)Nothing>>>isPrimitiveRoot (fromJust cyclicGroup) (2 :: Mod 13)Just (PrimitiveRoot {unPrimitiveRoot = MultMod {multElement = (2 `modulo` 13)}})