fields

package
v0.5.1-hotfixes Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2021 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type E2

type E2 struct {
	A0, A1 frontend.Variable
}

E2 element in a quadratic extension

func (*E2) Add

func (e *E2) Add(cs *frontend.ConstraintSystem, e1, e2 *E2) *E2

Add e2 elmts

func (*E2) Assign

func (e *E2) Assign(a *bls12377.E2)

Assign a value to self (witness assignment)

func (*E2) Conjugate

func (e *E2) Conjugate(cs *frontend.ConstraintSystem, e1 *E2) *E2

Conjugate conjugation of an e2 elmt

func (*E2) Inverse

func (e *E2) Inverse(cs *frontend.ConstraintSystem, e1 *E2, ext Extension) *E2

Inverse inverses an fp2elmt

func (*E2) Mul

func (e *E2) Mul(cs *frontend.ConstraintSystem, e1, e2 *E2, ext Extension) *E2

Mul e2 elmts: 5C

func (*E2) MulByFp

func (e *E2) MulByFp(cs *frontend.ConstraintSystem, e1 *E2, c interface{}) *E2

MulByFp multiplies an fp2 elmt by an fp elmt

func (*E2) MulByIm

func (e *E2) MulByIm(cs *frontend.ConstraintSystem, e1 *E2, ext Extension) *E2

MulByIm multiplies an fp2 elmt by the imaginary elmt ext.uSquare is the square of the imaginary root

func (*E2) MustBeEqual

func (e *E2) MustBeEqual(cs *frontend.ConstraintSystem, other E2)

MustBeEqual constraint self to be equal to other into the given constraint system

func (*E2) Neg

func (e *E2) Neg(cs *frontend.ConstraintSystem, e1 *E2) *E2

Neg negates a e2 elmt

func (*E2) Square added in v0.5.0

func (z *E2) Square(cs *frontend.ConstraintSystem, x *E2, ext Extension) *E2

Square e2 elt

func (*E2) Sub

func (e *E2) Sub(cs *frontend.ConstraintSystem, e1, e2 *E2) *E2

Sub e2 elmts

type E6

type E6 struct {
	B0, B1, B2 E2
}

E6 element in a quadratic extension

func NewFp6Zero

func NewFp6Zero(cs *frontend.ConstraintSystem) E6

NewFp6Zero creates a new

func (*E6) Add

func (e *E6) Add(cs *frontend.ConstraintSystem, e1, e2 *E6) *E6

Add creates a fp6elmt from fp elmts

func (*E6) Assign

func (e *E6) Assign(a *bls12377.E6)

Assign a value to self (witness assignment)

func (*E6) Inverse

func (e *E6) Inverse(cs *frontend.ConstraintSystem, e1 *E6, ext Extension) *E6

Inverse inverses an Fp2 elmt

func (*E6) Mul

func (e *E6) Mul(cs *frontend.ConstraintSystem, e1, e2 *E6, ext Extension) *E6

Mul creates a fp6elmt from fp elmts icube is the imaginary elmt to the cube

func (*E6) MulByFp2

func (e *E6) MulByFp2(cs *frontend.ConstraintSystem, e1 *E6, e2 *E2, ext Extension) *E6

MulByFp2 creates a fp6elmt from fp elmts icube is the imaginary elmt to the cube

func (*E6) MulByNonResidue

func (e *E6) MulByNonResidue(cs *frontend.ConstraintSystem, e1 *E6, ext Extension) *E6

MulByNonResidue multiplies e by the imaginary elmt of Fp6 (noted a+bV+cV where V**3 in F^2)

func (*E6) MustBeEqual

func (e *E6) MustBeEqual(cs *frontend.ConstraintSystem, other E6)

MustBeEqual constraint self to be equal to other into the given constraint system

func (*E6) Neg

func (e *E6) Neg(cs *frontend.ConstraintSystem, e1 *E6) *E6

Neg negates an Fp6 elmt

func (*E6) Sub

func (e *E6) Sub(cs *frontend.ConstraintSystem, e1, e2 *E6) *E6

Sub creates a fp6elmt from fp elmts

type E12

type E12 struct {
	C0, C1 E6
}

E12 element in a quadratic extension

func (*E12) Add

func (e *E12) Add(cs *frontend.ConstraintSystem, e1, e2 *E12) *E12

Add adds 2 elmts in Fp12

func (*E12) Assign

func (e *E12) Assign(a *bls12377.E12)

Assign a value to self (witness assignment)

func (*E12) Conjugate

func (e *E12) Conjugate(cs *frontend.ConstraintSystem, e1 *E12) *E12

Conjugate applies Frob**6 (conjugation over Fp6)

func (*E12) ConjugateFp12

func (e *E12) ConjugateFp12(cs *frontend.ConstraintSystem, e1 *E12) *E12

ConjugateFp12 conjugates an Fp12 elmt (applies Frob**6)

func (*E12) CyclotomicSquare added in v0.5.0

func (z *E12) CyclotomicSquare(cs *frontend.ConstraintSystem, x *E12, ext Extension) *E12

CyclotomicSquare squares a Fp12 elt in the cyclotomic group

func (*E12) FinalExponentiation added in v0.4.0

func (e *E12) FinalExponentiation(cs *frontend.ConstraintSystem, e1 *E12, genT uint64, ext Extension) *E12

FinalExponentiation computes the final expo x**(p**6-1)(p**2+1)(p**4 - p**2 +1)/r

func (*E12) FixedExponentiation

func (e *E12) FixedExponentiation(cs *frontend.ConstraintSystem, e1 *E12, exponent uint64, ext Extension) *E12

FixedExponentiation compute e1**exponent, where the exponent is hardcoded This function is only used for the final expo of the pairing for bls12377, so the exponent is supposed to be hardcoded and on 64 bits.

func (*E12) Frobenius

func (e *E12) Frobenius(cs *frontend.ConstraintSystem, e1 *E12, ext Extension) *E12

Frobenius applies frob to an fp12 elmt

func (*E12) FrobeniusCube

func (e *E12) FrobeniusCube(cs *frontend.ConstraintSystem, e1 *E12, ext Extension) *E12

FrobeniusCube applies frob**2 to an fp12 elmt

func (*E12) FrobeniusSquare

func (e *E12) FrobeniusSquare(cs *frontend.ConstraintSystem, e1 *E12, ext Extension) *E12

FrobeniusSquare applies frob**2 to an fp12 elmt

func (*E12) Inverse

func (e *E12) Inverse(cs *frontend.ConstraintSystem, e1 *E12, ext Extension) *E12

Inverse inverse an elmt in Fp12

func (*E12) Mul

func (e *E12) Mul(cs *frontend.ConstraintSystem, e1, e2 *E12, ext Extension) *E12

Mul multiplies 2 elmts in Fp12

func (*E12) MulBy034 added in v0.4.0

func (e *E12) MulBy034(cs *frontend.ConstraintSystem, c0, c3, c4 *E2, ext Extension) *E12

MulBy034 multiplication by sparse element

func (*E12) MustBeEqual

func (e *E12) MustBeEqual(cs *frontend.ConstraintSystem, other E12)

MustBeEqual constraint self to be equal to other into the given constraint system

func (*E12) Neg

func (e *E12) Neg(cs *frontend.ConstraintSystem, e1 *E12) *E12

Neg negates an Fp6elmt

func (*E12) Select

func (e *E12) Select(cs *frontend.ConstraintSystem, b frontend.Variable, r1, r2 *E12) *E12

Select sets e to r1 if b=1, r2 otherwise

func (*E12) SetOne

func (e *E12) SetOne(cs *frontend.ConstraintSystem) *E12

SetOne returns a newly allocated element equal to 1

func (*E12) Square added in v0.5.0

func (z *E12) Square(cs *frontend.ConstraintSystem, x *E12, ext Extension) *E12

Square squares an element in Fp12

func (*E12) Sub

func (e *E12) Sub(cs *frontend.ConstraintSystem, e1, e2 *E12) *E12

Sub substracts 2 elmts in Fp12

type Extension

type Extension struct {
	// contains filtered or unexported fields
}

Extension stores the non residue elmt for an extension of type Fp->Fp2->Fp6->Fp12 (Fp2 = Fp(u), Fp6 = Fp2(v), Fp12 = Fp6(w))

func GetBLS377ExtensionFp12

func GetBLS377ExtensionFp12(cs *frontend.ConstraintSystem) Extension

GetBLS377ExtensionFp12 get extension field parameters for bls12377

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL