E12T
Degree-12 extension field element using a 2-3-2 tower construction.
The field F_{q^12} is built in three steps:
- F_{q^2} ~= F_qu/p1(u)
- F_{q^6} ~= F_{q^2}v/p2(v)
- F_{q^12} ~= F_{q^6}w/p3(w)
Any element has the form:
[ (c1b2a1*u + c1b2a0)*v^2 + (c1b1a1*u + c1b1a0)*v + (c1b0a1*u + c1b0a0) ]*w
+ [ (c0b2a1*u + c0b2a0)*v^2 + (c0b1a1*u + c0b1a0)*v + (c0b0a1*u + c0b0a0) ]
This yields 12 base-field coefficients. Field names follow c{c}b{b}a{a}:
cin {0,1} selects the coefficient of 1 (c=0) or of w (c=1)bin {0,1,2} selects the power of v (0, 1, or 2)ain {0,1} selects the component in the quadratic basis over u
All twelve attributes are u384 values (unsigned 384-bit integers) used by
the surrounding circuits and serializers.
Example: zero element (schematic — any u384 zero can be reused across fields).
let z: u384 = Zero::zero();
let e = E12T {
c0b0a0: z, c0b0a1: z,
c0b1a0: z, c0b1a1: z,
c0b2a0: z, c0b2a1: z,
c1b0a0: z, c1b0a1: z,
c1b1a0: z, c1b1a1: z,
c1b2a0: z, c1b2a1: z,
};
Fully qualified path: garaga::definitions::structs::fields::E12T
[derive(Drop, Copy, Debug, PartialEq)]
pub struct E12T {
pub c0b0a0: u384,
pub c0b0a1: u384,
pub c0b1a0: u384,
pub c0b1a1: u384,
pub c0b2a0: u384,
pub c0b2a1: u384,
pub c1b0a0: u384,
pub c1b0a1: u384,
pub c1b1a0: u384,
pub c1b1a1: u384,
pub c1b2a0: u384,
pub c1b2a1: u384,
}
Members
c0b0a0
Fully qualified path: garaga::definitions::structs::fields::E12T::c0b0a0
pub c0b0a0: u384
c0b0a1
Fully qualified path: garaga::definitions::structs::fields::E12T::c0b0a1
pub c0b0a1: u384
c0b1a0
Fully qualified path: garaga::definitions::structs::fields::E12T::c0b1a0
pub c0b1a0: u384
c0b1a1
Fully qualified path: garaga::definitions::structs::fields::E12T::c0b1a1
pub c0b1a1: u384
c0b2a0
Fully qualified path: garaga::definitions::structs::fields::E12T::c0b2a0
pub c0b2a0: u384
c0b2a1
Fully qualified path: garaga::definitions::structs::fields::E12T::c0b2a1
pub c0b2a1: u384
c1b0a0
Fully qualified path: garaga::definitions::structs::fields::E12T::c1b0a0
pub c1b0a0: u384
c1b0a1
Fully qualified path: garaga::definitions::structs::fields::E12T::c1b0a1
pub c1b0a1: u384
c1b1a0
Fully qualified path: garaga::definitions::structs::fields::E12T::c1b1a0
pub c1b1a0: u384
c1b1a1
Fully qualified path: garaga::definitions::structs::fields::E12T::c1b1a1
pub c1b1a1: u384
c1b2a0
Fully qualified path: garaga::definitions::structs::fields::E12T::c1b2a0
pub c1b2a0: u384
c1b2a1
Fully qualified path: garaga::definitions::structs::fields::E12T::c1b2a1
pub c1b2a1: u384