# Functions
EasyExponentiation calculates g = f^(p^6-1)(p^2+1), where g becomes an element of the 6-th cyclotomic group.
FpOrder is the order of the base field for towering returned as a big-endian slice.
HardExponentiation calculates u = g^(Cy_6(p)/r), where u is a root of unity.
ScalarOrder is the order of the scalar field of the pairing groups, order is returned as a big-endian slice.
# Constants
Fp12Size is the length in bytes of an Fp12 element.
Fp2Size is the length in bytes of an Fp2 element.
Fp4Size is the size of an Fp4 element.
Fp6Size is the length in bytes of an Fp6 element.
FpSize is the length in bytes of an Fp element.
ScalarSize is the length in bytes of a Scalar.
URootSize is the length in bytes of a root of unit.
# Type aliases
Cyclo6 represents an element of the 6th cyclotomic group.
Fp12 represents an element of the field Fp12 = Fp6[w]/(w^2-v)., where v in Fp6.
Fp12Cubic represents elements of Fp4[w]/w^3-t.
Fp4 is obtained by adjoining t, the square root of u+1 to Fp2.
LineValue a represents a[0]+a[1]*w^2+a[2]*w^3, with all values in Fp2.
URoot represents an n-th root of unit, that is an element x in Cyclo6 such that x^n=1, where n = ScalarOrder().