pairing-0.3.1: Optimal ate pairing over Barreto-Naehrig curves

Safe HaskellNone
LanguageHaskell2010

Pairing.Fq12

Description

Final quadratic extension of the tower:

  • Fq
  • Fq2 := Fq[u]/u^2 + 1
  • Fq6 := Fq2[v]/v^3 - (9 + u)
  • Fq12 := Fq6[w]/w^2 - v

Implementation follows "Multiplication and Squaring on Pairing-Friendly Fields" by Devigili, hEigeartaigh, Scott and Dahab.

Synopsis

Documentation

data Fq12 Source #

Field extension defined as Fq6[w]/w^2 - v

Constructors

Fq12

Use new instead of this constructor

Fields

Instances
Eq Fq12 Source # 
Instance details

Defined in Pairing.Fq12

Methods

(==) :: Fq12 -> Fq12 -> Bool #

(/=) :: Fq12 -> Fq12 -> Bool #

Fractional Fq12 Source # 
Instance details

Defined in Pairing.Fq12

Methods

(/) :: Fq12 -> Fq12 -> Fq12 #

recip :: Fq12 -> Fq12 #

fromRational :: Rational -> Fq12 #

Num Fq12 Source # 
Instance details

Defined in Pairing.Fq12

Methods

(+) :: Fq12 -> Fq12 -> Fq12 #

(-) :: Fq12 -> Fq12 -> Fq12 #

(*) :: Fq12 -> Fq12 -> Fq12 #

negate :: Fq12 -> Fq12 #

abs :: Fq12 -> Fq12 #

signum :: Fq12 -> Fq12 #

fromInteger :: Integer -> Fq12 #

Show Fq12 Source # 
Instance details

Defined in Pairing.Fq12

Methods

showsPrec :: Int -> Fq12 -> ShowS #

show :: Fq12 -> String #

showList :: [Fq12] -> ShowS #

Generic Fq12 Source # 
Instance details

Defined in Pairing.Fq12

Associated Types

type Rep Fq12 :: Type -> Type #

Methods

from :: Fq12 -> Rep Fq12 x #

to :: Rep Fq12 x -> Fq12 #

Semigroup GT Source # 
Instance details

Defined in Pairing.Group

Methods

(<>) :: GT -> GT -> GT #

sconcat :: NonEmpty GT -> GT #

stimes :: Integral b => b -> GT -> GT #

Monoid GT Source # 
Instance details

Defined in Pairing.Group

Methods

mempty :: GT #

mappend :: GT -> GT -> GT #

mconcat :: [GT] -> GT #

NFData Fq12 Source # 
Instance details

Defined in Pairing.Fq12

Methods

rnf :: Fq12 -> () #

ByteRepr Fq12 Source # 
Instance details

Defined in Pairing.Fq12

Validate GT Source # 
Instance details

Defined in Pairing.Group

CyclicGroup GT Source # 
Instance details

Defined in Pairing.Group

ToUncompressedForm GT Source # 
Instance details

Defined in Pairing.Group

type Rep Fq12 Source # 
Instance details

Defined in Pairing.Fq12

type Rep Fq12 = D1 (MetaData "Fq12" "Pairing.Fq12" "pairing-0.3.1-JhhvluXyNup3CB27ybng3m" False) (C1 (MetaCons "Fq12" PrefixI True) (S1 (MetaSel (Just "fq12x") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Fq6) :*: S1 (MetaSel (Just "fq12y") NoSourceUnpackedness NoSourceStrictness DecidedStrict) (Rec0 Fq6)))

new :: [Fq] -> Fq12 Source #

Create a new value in Fq12 by providing a list of twelve coefficients in Fq, should be used instead of the Fq12 constructor.

deconstruct :: Fq12 -> [Fq] Source #

Deconstruct a value in Fq12 into a list of twelve coefficients in Fq.

fq12inv :: Fq12 -> Fq12 Source #

Multiplicative inverse

fq12one :: Fq12 Source #

Multiplicative identity

fq12zero :: Fq12 Source #

Additive identity

fq12conj :: Fq12 -> Fq12 Source #

Conjugation

fq12frobenius :: Int -> Fq12 -> Fq12 Source #

Iterated Frobenius automorphism