pub struct WireMod3 { /* private fields */ }Expand description
Representation of a mod-3 wire.
We represent a mod-3 wire by 64 mod-3 elements. These elements are
stored as follows: the least-significant bits of each element are stored
in lsb and the most-significant bits of each element are stored in
msb. This representation allows for efficient addition and
multiplication as described here by the paper “Hardware Implementation
of Finite Fields of Characteristic Three.” D. Page, N.P. Smart. CHES
2002. Link:
https://link.springer.com/content/pdf/10.1007/3-540-36400-5_38.pdf.
Trait Implementations§
Source§impl AddAssign for WireMod3
impl AddAssign for WireMod3
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl<'de> Deserialize<'de> for WireMod3
impl<'de> Deserialize<'de> for WireMod3
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 MulAssign<u16> for WireMod3
impl MulAssign<u16> for WireMod3
Source§fn mul_assign(&mut self, rhs: u16)
fn mul_assign(&mut self, rhs: u16)
Performs the
*= operation. Read moreSource§impl SubAssign for WireMod3
impl SubAssign for WireMod3
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-= operation. Read moreSource§impl WireLabel for WireMod3
impl WireLabel for WireMod3
Source§fn hash_to_mod(hash: U8x16, q: u16) -> Self
fn hash_to_mod(hash: U8x16, q: u16) -> Self
Converts a hashed block into a valid wire of the given modulus
q. Read moreimpl ArithmeticWire for WireMod3
impl Copy for WireMod3
impl StructuralPartialEq for WireMod3
Auto Trait Implementations§
impl Freeze for WireMod3
impl RefUnwindSafe for WireMod3
impl Send for WireMod3
impl Sync for WireMod3
impl Unpin for WireMod3
impl UnwindSafe for WireMod3
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IsSameType<T> for T
impl<T> IsSameType<T> for T
§type EqualityProposition = TrueEqualityProposition
type EqualityProposition = TrueEqualityProposition
The [
EqualityProposition] that Self == T