Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type Fq = Fq
- type Fq2 = Fq2
- type Fq6 = Fq6
- type Fq12 = Fq12
- type Fr = Fr
- type G1 = PA
- type G2 = PA
- type G2' = PJ
- type GT = P
- gG1 :: G1
- gG2 :: G2
- gGT :: GT
- rG1 :: Integer
- rG2 :: Integer
- rGT :: Integer
- _a :: Fq
- _a' :: Fq2
- _b :: Fq
- _b' :: Fq2
- _k :: Integer
- _nqr :: Integer
- _q :: Integer
- _r :: Integer
- _t :: Integer
- _xi :: Fq2
- conj :: forall k im. IrreducibleMonic k im => ExtensionField k im -> ExtensionField k im
- getYfromX :: Curve f c e q r => Point f c e q r -> (q -> q -> q) -> q -> Maybe q
- scale :: IrreducibleMonic k im => k -> ExtensionField k im -> ExtensionField k im
- mulXi :: Fq6 -> Fq6
- fq12Frobenius :: Int -> Fq12 -> Fq12
- isRootOfUnity :: Integer -> Fr -> Bool
- isPrimitiveRootOfUnity :: Integer -> Fr -> Bool
- primitiveRootOfUnity :: Int -> Fr
- precompRootOfUnity :: Int -> Fr
Galois fields
Elliptic curves
Parameters
Miscellaneous functions
conj :: forall k im. IrreducibleMonic k im => ExtensionField k im -> ExtensionField k im Source #
Conjugation.
getYfromX :: Curve f c e q r => Point f c e q r -> (q -> q -> q) -> q -> Maybe q Source #
Get Y coordinate from X coordinate given a curve and a choice function.
scale :: IrreducibleMonic k im => k -> ExtensionField k im -> ExtensionField k im Source #
Scalar multiplication.
isPrimitiveRootOfUnity :: Integer -> Fr -> Bool Source #
Check if an element is a primitive root of unity.
primitiveRootOfUnity :: Int -> Fr Source #
Compute primitive roots of unity for 2^0, 2^1, ..., 2^28. (2^28 is the largest power of two that divides _r - 1, therefore there are no primitive roots of unity for higher powers of 2 in Fr.)
precompRootOfUnity :: Int -> Fr Source #
Precompute roots of unity.