pub type Fq12 = QuadExtField<Fq6>;
Expand description
An element of Fq12, represented by c0 + c1 * w.
Aliased Type§
struct Fq12 { /* private fields */ }
Implementations§
Source§impl Fq12
impl Fq12
pub fn cyclotomic_square(&mut self)
Source§impl<F: Field> QuadExtField<F>
impl<F: Field> QuadExtField<F>
pub const fn new(c0: F, c1: F) -> Self
pub const fn zero() -> Self
pub const fn one() -> Self
pub fn c0(&self) -> &F
pub fn c1(&self) -> &F
pub fn double(&self) -> Self
pub fn add(&self, other: &Self) -> Self
pub fn sub(&self, other: &Self) -> Self
pub fn neg(&self) -> Self
pub fn conjugate(&mut self)
Source§impl<F: ExtField> QuadExtField<F>where
Self: QuadExtFieldArith<Base = F>,
impl<F: ExtField> QuadExtField<F>where
Self: QuadExtFieldArith<Base = F>,
pub fn mul(&self, rhs: &Self) -> Self
pub fn mul_assign(&mut self, rhs: &Self)
pub fn square(el: &Self) -> Self
pub fn square_assign(&mut self)
pub fn norm(&self) -> F
Trait Implementations§
Source§impl<'a, 'b> Add<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
impl<'a, 'b> Add<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
+
operator.Source§impl<'b> Add<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
impl<'b> Add<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
+
operator.Source§impl<'a> Add<QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
impl<'a> Add<QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
+
operator.Source§impl Add for Fq12
impl Add for Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
+
operator.Source§impl<'b> AddAssign<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
impl<'b> AddAssign<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
Source§fn add_assign(&mut self, rhs: &'b Fq12)
fn add_assign(&mut self, rhs: &'b Fq12)
Performs the
+=
operation. Read moreSource§impl AddAssign for Fq12
impl AddAssign for Fq12
Source§fn add_assign(&mut self, rhs: Fq12)
fn add_assign(&mut self, rhs: Fq12)
Performs the
+=
operation. Read moreSource§impl ExtField for Fq12
impl ExtField for Fq12
const NON_RESIDUE: Self
fn frobenius_map(&mut self, power: usize)
fn mul_by_nonresidue(&self) -> Self
Source§impl MillerLoopResult for Fq12
impl MillerLoopResult for Fq12
Source§fn final_exponentiation(&self) -> Self::Gt
fn final_exponentiation(&self) -> Self::Gt
This performs a “final exponentiation” routine to convert the result of a Miller
loop into an element of
MillerLoopResult::Gt
, so that it can be compared with
other elements of Gt
.Source§impl<'a, 'b> Mul<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
impl<'a, 'b> Mul<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
*
operator.Source§impl<'b> Mul<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
impl<'b> Mul<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
*
operator.Source§impl<'a> Mul<QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
impl<'a> Mul<QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
*
operator.Source§impl Mul for Fq12
impl Mul for Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
*
operator.Source§impl<'b> MulAssign<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
impl<'b> MulAssign<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
Source§fn mul_assign(&mut self, rhs: &'b Fq12)
fn mul_assign(&mut self, rhs: &'b Fq12)
Performs the
*=
operation. Read moreSource§impl MulAssign for Fq12
impl MulAssign for Fq12
Source§fn mul_assign(&mut self, rhs: Fq12)
fn mul_assign(&mut self, rhs: Fq12)
Performs the
*=
operation. Read moreSource§impl<'a> Neg for &'a Fq12
impl<'a> Neg for &'a Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
-
operator.Source§impl Neg for Fq12
impl Neg for Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
-
operator.Source§impl QuadExtFieldArith for Fq12
impl QuadExtFieldArith for Fq12
type Base = CubicExtField<QuadExtField<Fq>>
const SQRT: SQRT<Self::Base> = SQRT::Unimplemented
fn mul_assign( lhs: &mut QuadExtField<Self::Base>, rhs: &QuadExtField<Self::Base>, )
fn square_assign(el: &mut QuadExtField<Self::Base>)
Source§impl QuadSparseMul for Fq12
impl QuadSparseMul for Fq12
type Base = QuadExtField<Fq>
fn mul_by_014( lhs: &mut QuadExtField<CubicExtField<Self::Base>>, c0: &Self::Base, c1: &Self::Base, c4: &Self::Base, )
fn mul_by_034( lhs: &mut QuadExtField<CubicExtField<Self::Base>>, c0: &Self::Base, c3: &Self::Base, c4: &Self::Base, )
Source§impl<'a, 'b> Sub<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
impl<'a, 'b> Sub<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
-
operator.Source§impl<'b> Sub<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
impl<'b> Sub<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
-
operator.Source§impl<'a> Sub<QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
impl<'a> Sub<QuadExtField<CubicExtField<QuadExtField<Fq>>>> for &'a Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
-
operator.Source§impl Sub for Fq12
impl Sub for Fq12
Source§type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
type Output = QuadExtField<CubicExtField<QuadExtField<Fq>>>
The resulting type after applying the
-
operator.Source§impl<'b> SubAssign<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
impl<'b> SubAssign<&'b QuadExtField<CubicExtField<QuadExtField<Fq>>>> for Fq12
Source§fn sub_assign(&mut self, rhs: &'b Fq12)
fn sub_assign(&mut self, rhs: &'b Fq12)
Performs the
-=
operation. Read moreSource§impl SubAssign for Fq12
impl SubAssign for Fq12
Source§fn sub_assign(&mut self, rhs: Fq12)
fn sub_assign(&mut self, rhs: Fq12)
Performs the
-=
operation. Read moreSource§impl<F: Clone + Field> Clone for QuadExtField<F>
impl<F: Clone + Field> Clone for QuadExtField<F>
Source§fn clone(&self) -> QuadExtField<F>
fn clone(&self) -> QuadExtField<F>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<F: Field> ConditionallySelectable for QuadExtField<F>
impl<F: Field> ConditionallySelectable for QuadExtField<F>
Source§fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self
fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self
Source§fn conditional_assign(&mut self, other: &Self, choice: Choice)
fn conditional_assign(&mut self, other: &Self, choice: Choice)
Source§fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
Conditionally swap
self
and other
if choice == 1
; otherwise,
reassign both unto themselves. Read moreSource§impl<F: Field> ConstantTimeEq for QuadExtField<F>
impl<F: Field> ConstantTimeEq for QuadExtField<F>
Source§impl<F: Default + Field> Default for QuadExtField<F>
impl<F: Default + Field> Default for QuadExtField<F>
Source§fn default() -> QuadExtField<F>
fn default() -> QuadExtField<F>
Returns the “default value” for a type. Read more
Source§impl<'de, F> Deserialize<'de> for QuadExtField<F>where
F: Deserialize<'de> + Field,
impl<'de, F> Deserialize<'de> for QuadExtField<F>where
F: Deserialize<'de> + Field,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<F: ExtField> Field for QuadExtField<F>
impl<F: ExtField> Field for QuadExtField<F>
Source§fn random(rng: impl RngCore) -> Self
fn random(rng: impl RngCore) -> Self
Returns an element chosen uniformly at random using a user-provided RNG.
Source§fn sqrt(&self) -> CtOption<Self>
fn sqrt(&self) -> CtOption<Self>
Returns the square root of the field element, if it is
quadratic residue. Read more
Source§fn sqrt_ratio(_: &Self, _: &Self) -> (Choice, Self)
fn sqrt_ratio(_: &Self, _: &Self) -> (Choice, Self)
Computes: Read more
Source§fn invert(&self) -> CtOption<Self>
fn invert(&self) -> CtOption<Self>
Computes the multiplicative inverse of this element,
failing if the element is zero.
Source§fn is_zero_vartime(&self) -> bool
fn is_zero_vartime(&self) -> bool
Returns true iff this element is zero. Read more