Struct lambdaworks_math::field::extensions::cubic::CubicExtensionField
source · pub struct CubicExtensionField<T> { /* private fields */ }
Expand description
A general cubic extension field over F
with cubic non residue Q::residue()
Trait Implementations§
source§impl<T: Clone> Clone for CubicExtensionField<T>
impl<T: Clone> Clone for CubicExtensionField<T>
source§fn clone(&self) -> CubicExtensionField<T>
fn clone(&self) -> CubicExtensionField<T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<T: Debug> Debug for CubicExtensionField<T>
impl<T: Debug> Debug for CubicExtensionField<T>
source§impl<Q> IsField for CubicExtensionField<Q>where
Q: Clone + Debug + HasCubicNonResidue,
impl<Q> IsField for CubicExtensionField<Q>where Q: Clone + Debug + HasCubicNonResidue,
source§fn add(
a: &[FieldElement<Q::BaseField>; 3],
b: &[FieldElement<Q::BaseField>; 3]
) -> [FieldElement<Q::BaseField>; 3]
fn add( a: &[FieldElement<Q::BaseField>; 3], b: &[FieldElement<Q::BaseField>; 3] ) -> [FieldElement<Q::BaseField>; 3]
Returns the component wise addition of a
and b
source§fn mul(
a: &[FieldElement<Q::BaseField>; 3],
b: &[FieldElement<Q::BaseField>; 3]
) -> [FieldElement<Q::BaseField>; 3]
fn mul( a: &[FieldElement<Q::BaseField>; 3], b: &[FieldElement<Q::BaseField>; 3] ) -> [FieldElement<Q::BaseField>; 3]
Returns the multiplication of a
and b
using the following
equation:
(a0 + a1 * t) * (b0 + b1 * t) = a0 * b0 + a1 * b1 * Q::residue() + (a0 * b1 + a1 * b0) * t
where t.pow(2)
equals Q::residue()
.
source§fn sub(
a: &[FieldElement<Q::BaseField>; 3],
b: &[FieldElement<Q::BaseField>; 3]
) -> [FieldElement<Q::BaseField>; 3]
fn sub( a: &[FieldElement<Q::BaseField>; 3], b: &[FieldElement<Q::BaseField>; 3] ) -> [FieldElement<Q::BaseField>; 3]
Returns the component wise subtraction of a
and b
source§fn neg(a: &[FieldElement<Q::BaseField>; 3]) -> [FieldElement<Q::BaseField>; 3]
fn neg(a: &[FieldElement<Q::BaseField>; 3]) -> [FieldElement<Q::BaseField>; 3]
Returns the component wise negation of a
source§fn inv(a: &[FieldElement<Q::BaseField>; 3]) -> [FieldElement<Q::BaseField>; 3]
fn inv(a: &[FieldElement<Q::BaseField>; 3]) -> [FieldElement<Q::BaseField>; 3]
Returns the multiplicative inverse of a
source§fn div(
a: &[FieldElement<Q::BaseField>; 3],
b: &[FieldElement<Q::BaseField>; 3]
) -> [FieldElement<Q::BaseField>; 3]
fn div( a: &[FieldElement<Q::BaseField>; 3], b: &[FieldElement<Q::BaseField>; 3] ) -> [FieldElement<Q::BaseField>; 3]
Returns the division of a
and b
source§fn eq(
a: &[FieldElement<Q::BaseField>; 3],
b: &[FieldElement<Q::BaseField>; 3]
) -> bool
fn eq( a: &[FieldElement<Q::BaseField>; 3], b: &[FieldElement<Q::BaseField>; 3] ) -> bool
Returns a boolean indicating whether a
and b
are equal component wise.
source§fn zero() -> [FieldElement<Q::BaseField>; 3]
fn zero() -> [FieldElement<Q::BaseField>; 3]
Returns the additive neutral element of the field extension.
source§fn one() -> [FieldElement<Q::BaseField>; 3]
fn one() -> [FieldElement<Q::BaseField>; 3]
Returns the multiplicative neutral element of the field extension.
source§fn from_u64(x: u64) -> Self::BaseType
fn from_u64(x: u64) -> Self::BaseType
Returns the element x * 1
where 1 is the multiplicative neutral element.
source§fn from_base_type(
x: [FieldElement<Q::BaseField>; 3]
) -> [FieldElement<Q::BaseField>; 3]
fn from_base_type( x: [FieldElement<Q::BaseField>; 3] ) -> [FieldElement<Q::BaseField>; 3]
Takes as input an element of BaseType and returns the internal representation of that element in the field. Note: for this case this is simply the identity, because the components already have correct representations.
§type BaseType = [FieldElement<<Q as HasCubicNonResidue>::BaseField>; 3]
type BaseType = [FieldElement<<Q as HasCubicNonResidue>::BaseField>; 3]
fn pow<T>(a: &Self::BaseType, exponent: T) -> Self::BaseTypewhere T: IsUnsignedInteger,
source§impl<T: PartialEq> PartialEq<CubicExtensionField<T>> for CubicExtensionField<T>
impl<T: PartialEq> PartialEq<CubicExtensionField<T>> for CubicExtensionField<T>
source§fn eq(&self, other: &CubicExtensionField<T>) -> bool
fn eq(&self, other: &CubicExtensionField<T>) -> bool
self
and other
values to be equal, and is used
by ==
.