#[repr(transparent)]pub struct PackedPrimitiveType<U: UnderlierType, Scalar: BinaryField>(pub U, pub PhantomData<Scalar>);Tuple Fields§
§0: U§1: PhantomData<Scalar>Implementations§
Source§impl<U: UnderlierType, Scalar: BinaryField> PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> PackedPrimitiveType<U, Scalar>
pub const WIDTH: usize
pub const LOG_WIDTH: usize
pub const fn from_underlier(val: U) -> Self
pub const fn to_underlier(self) -> U
Trait Implementations§
Source§impl<U: UnderlierType, Scalar: BinaryField> Add<Scalar> for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> Add<Scalar> for PackedPrimitiveType<U, Scalar>
Source§impl<U: UnderlierWithBitOps, Scalar: BinaryField> Add for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierWithBitOps, Scalar: BinaryField> Add for PackedPrimitiveType<U, Scalar>
Source§impl<U: UnderlierType, Scalar: BinaryField> AddAssign<Scalar> for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> AddAssign<Scalar> for PackedPrimitiveType<U, Scalar>
Source§fn add_assign(&mut self, rhs: Scalar)
fn add_assign(&mut self, rhs: Scalar)
Performs the
+= operation. Read moreSource§impl<U: UnderlierType, Scalar: BinaryField> AddAssign for PackedPrimitiveType<U, Scalar>where
Self: Add<Output = Self>,
impl<U: UnderlierType, Scalar: BinaryField> AddAssign for PackedPrimitiveType<U, Scalar>where
Self: Add<Output = Self>,
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl Broadcast<AESTowerField8b> for PackedPrimitiveType<M128, AESTowerField8b>
impl Broadcast<AESTowerField8b> for PackedPrimitiveType<M128, AESTowerField8b>
Source§fn broadcast(scalar: AESTowerField8b) -> Self
fn broadcast(scalar: AESTowerField8b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<AESTowerField8b> for PackedPrimitiveType<M256, AESTowerField8b>
impl Broadcast<AESTowerField8b> for PackedPrimitiveType<M256, AESTowerField8b>
Source§fn broadcast(scalar: AESTowerField8b) -> Self
fn broadcast(scalar: AESTowerField8b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<AESTowerField8b> for PackedPrimitiveType<M512, AESTowerField8b>
impl Broadcast<AESTowerField8b> for PackedPrimitiveType<M512, AESTowerField8b>
Source§fn broadcast(scalar: AESTowerField8b) -> Self
fn broadcast(scalar: AESTowerField8b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u128, AESTowerField8b>
impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u128, AESTowerField8b>
Source§fn broadcast(scalar: AESTowerField8b) -> Self
fn broadcast(scalar: AESTowerField8b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u16, AESTowerField8b>
impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u16, AESTowerField8b>
Source§fn broadcast(scalar: AESTowerField8b) -> Self
fn broadcast(scalar: AESTowerField8b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u32, AESTowerField8b>
impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u32, AESTowerField8b>
Source§fn broadcast(scalar: AESTowerField8b) -> Self
fn broadcast(scalar: AESTowerField8b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u64, AESTowerField8b>
impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u64, AESTowerField8b>
Source§fn broadcast(scalar: AESTowerField8b) -> Self
fn broadcast(scalar: AESTowerField8b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u8, AESTowerField8b>
impl Broadcast<AESTowerField8b> for PackedPrimitiveType<u8, AESTowerField8b>
Source§fn broadcast(scalar: AESTowerField8b) -> Self
fn broadcast(scalar: AESTowerField8b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField128bGhash> for PackedPrimitiveType<M128, BinaryField128bGhash>
impl Broadcast<BinaryField128bGhash> for PackedPrimitiveType<M128, BinaryField128bGhash>
Source§fn broadcast(scalar: BinaryField128bGhash) -> Self
fn broadcast(scalar: BinaryField128bGhash) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField128bGhash> for PackedPrimitiveType<M256, BinaryField128bGhash>
impl Broadcast<BinaryField128bGhash> for PackedPrimitiveType<M256, BinaryField128bGhash>
Source§fn broadcast(scalar: BinaryField128bGhash) -> Self
fn broadcast(scalar: BinaryField128bGhash) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField128bGhash> for PackedPrimitiveType<M512, BinaryField128bGhash>
impl Broadcast<BinaryField128bGhash> for PackedPrimitiveType<M512, BinaryField128bGhash>
Source§fn broadcast(scalar: BinaryField128bGhash) -> Self
fn broadcast(scalar: BinaryField128bGhash) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField128bGhash> for PackedPrimitiveType<u128, BinaryField128bGhash>
impl Broadcast<BinaryField128bGhash> for PackedPrimitiveType<u128, BinaryField128bGhash>
Source§fn broadcast(scalar: BinaryField128bGhash) -> Self
fn broadcast(scalar: BinaryField128bGhash) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<M128, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<M128, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<M256, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<M256, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<M512, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<M512, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<SmallU<1>, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<SmallU<1>, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<SmallU<2>, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<SmallU<2>, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<SmallU<4>, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<SmallU<4>, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<u128, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<u128, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<u16, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<u16, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<u32, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<u32, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<u64, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<u64, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl Broadcast<BinaryField1b> for PackedPrimitiveType<u8, BinaryField1b>
impl Broadcast<BinaryField1b> for PackedPrimitiveType<u8, BinaryField1b>
Source§fn broadcast(scalar: BinaryField1b) -> Self
fn broadcast(scalar: BinaryField1b) -> Self
Set `scalar`` value to all the positions
Source§impl<U: Clone + UnderlierType, Scalar: Clone + BinaryField> Clone for PackedPrimitiveType<U, Scalar>
impl<U: Clone + UnderlierType, Scalar: Clone + BinaryField> Clone for PackedPrimitiveType<U, Scalar>
Source§fn clone(&self) -> PackedPrimitiveType<U, Scalar>
fn clone(&self) -> PackedPrimitiveType<U, Scalar>
Returns a duplicate 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<U: UnderlierWithBitOps, Scalar: BinaryField> Debug for PackedPrimitiveType<U, Scalar>where
Self: PackedField,
impl<U: UnderlierWithBitOps, Scalar: BinaryField> Debug for PackedPrimitiveType<U, Scalar>where
Self: PackedField,
Source§impl<U: Default + UnderlierType, Scalar: Default + BinaryField> Default for PackedPrimitiveType<U, Scalar>
impl<U: Default + UnderlierType, Scalar: Default + BinaryField> Default for PackedPrimitiveType<U, Scalar>
Source§fn default() -> PackedPrimitiveType<U, Scalar>
fn default() -> PackedPrimitiveType<U, Scalar>
Returns the “default value” for a type. Read more
Source§impl DeserializeBytes for PackedPrimitiveType<u128, AESTowerField8b>
impl DeserializeBytes for PackedPrimitiveType<u128, AESTowerField8b>
fn deserialize(read_buf: impl Buf) -> Result<Self, SerializationError>
Source§impl DeserializeBytes for PackedPrimitiveType<u128, BinaryField128bGhash>
impl DeserializeBytes for PackedPrimitiveType<u128, BinaryField128bGhash>
fn deserialize(read_buf: impl Buf) -> Result<Self, SerializationError>
Source§impl DeserializeBytes for PackedPrimitiveType<u128, BinaryField1b>
impl DeserializeBytes for PackedPrimitiveType<u128, BinaryField1b>
fn deserialize(read_buf: impl Buf) -> Result<Self, SerializationError>
Source§impl<U: UnderlierType, Scalar: BinaryField> Distribution<PackedPrimitiveType<U, Scalar>> for StandardUniform
impl<U: UnderlierType, Scalar: BinaryField> Distribution<PackedPrimitiveType<U, Scalar>> for StandardUniform
Source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> PackedPrimitiveType<U, Scalar>
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> PackedPrimitiveType<U, Scalar>
Generate a random value of
T, using rng as the source of randomness.Source§fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T>
fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T>
Create an iterator that generates random values of
T, using rng as
the source of randomness. Read moreSource§impl<Scalar: BinaryField> From<PackedPrimitiveType<M128, Scalar>> for __m128i
impl<Scalar: BinaryField> From<PackedPrimitiveType<M128, Scalar>> for __m128i
Source§fn from(value: PackedPrimitiveType<M128, Scalar>) -> Self
fn from(value: PackedPrimitiveType<M128, Scalar>) -> Self
Converts to this type from the input type.
Source§impl<U: UnderlierType, Scalar: BinaryField> From<U> for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> From<U> for PackedPrimitiveType<U, Scalar>
Source§impl<Scalar: BinaryField> From<__m128i> for PackedPrimitiveType<M128, Scalar>
impl<Scalar: BinaryField> From<__m128i> for PackedPrimitiveType<M128, Scalar>
Source§impl<Scalar: BinaryField> From<u128> for PackedPrimitiveType<M128, Scalar>
impl<Scalar: BinaryField> From<u128> for PackedPrimitiveType<M128, Scalar>
Source§impl InvertOrZero for PackedPrimitiveType<u128, AESTowerField8b>
impl InvertOrZero for PackedPrimitiveType<u128, AESTowerField8b>
Source§fn invert_or_zero(self) -> Self
fn invert_or_zero(self) -> Self
Returns the inverted value or zero in case when
self is zeroSource§impl InvertOrZero for PackedPrimitiveType<u128, BinaryField128bGhash>
impl InvertOrZero for PackedPrimitiveType<u128, BinaryField128bGhash>
Source§fn invert_or_zero(self) -> Self
fn invert_or_zero(self) -> Self
Returns the inverted value or zero in case when
self is zeroSource§impl InvertOrZero for PackedPrimitiveType<u128, BinaryField1b>
impl InvertOrZero for PackedPrimitiveType<u128, BinaryField1b>
Source§fn invert_or_zero(self) -> Self
fn invert_or_zero(self) -> Self
Returns the inverted value or zero in case when
self is zeroSource§impl<U: UnderlierType, Scalar: BinaryField> Mul<Scalar> for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> Mul<Scalar> for PackedPrimitiveType<U, Scalar>
Source§impl Mul for PackedPrimitiveType<u128, AESTowerField8b>
impl Mul for PackedPrimitiveType<u128, AESTowerField8b>
Source§type Output = PackedPrimitiveType<u128, AESTowerField8b>
type Output = PackedPrimitiveType<u128, AESTowerField8b>
The resulting type after applying the
* operator.Source§impl Mul for PackedPrimitiveType<u128, BinaryField128bGhash>
impl Mul for PackedPrimitiveType<u128, BinaryField128bGhash>
Source§type Output = PackedPrimitiveType<u128, BinaryField128bGhash>
type Output = PackedPrimitiveType<u128, BinaryField128bGhash>
The resulting type after applying the
* operator.Source§impl Mul for PackedPrimitiveType<u128, BinaryField1b>
impl Mul for PackedPrimitiveType<u128, BinaryField1b>
Source§type Output = PackedPrimitiveType<u128, BinaryField1b>
type Output = PackedPrimitiveType<u128, BinaryField1b>
The resulting type after applying the
* operator.Source§impl MulAlpha for PackedPrimitiveType<u128, AESTowerField8b>
impl MulAlpha for PackedPrimitiveType<u128, AESTowerField8b>
Source§impl MulAlpha for PackedPrimitiveType<u128, BinaryField1b>
impl MulAlpha for PackedPrimitiveType<u128, BinaryField1b>
Source§impl<U: UnderlierType, Scalar: BinaryField> MulAssign<Scalar> for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> MulAssign<Scalar> for PackedPrimitiveType<U, Scalar>
Source§fn mul_assign(&mut self, rhs: Scalar)
fn mul_assign(&mut self, rhs: Scalar)
Performs the
*= operation. Read moreSource§impl<U: UnderlierType, Scalar: BinaryField> MulAssign for PackedPrimitiveType<U, Scalar>where
Self: Mul<Output = Self>,
impl<U: UnderlierType, Scalar: BinaryField> MulAssign for PackedPrimitiveType<U, Scalar>where
Self: Mul<Output = Self>,
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the
*= operation. Read moreSource§impl<U, Scalar> PackedField for PackedPrimitiveType<U, Scalar>where
Self: Broadcast<Scalar> + Square + InvertOrZero + Mul<Output = Self>,
U: UnderlierWithBitOps + Divisible<Scalar::Underlier>,
Scalar: BinaryField,
impl<U, Scalar> PackedField for PackedPrimitiveType<U, Scalar>where
Self: Broadcast<Scalar> + Square + InvertOrZero + Mul<Output = Self>,
U: UnderlierWithBitOps + Divisible<Scalar::Underlier>,
Scalar: BinaryField,
Source§const LOG_WIDTH: usize
const LOG_WIDTH: usize
Base-2 logarithm of the number of field elements packed into one packed element.
type Scalar = Scalar
Source§unsafe fn get_unchecked(&self, i: usize) -> Self::Scalar
unsafe fn get_unchecked(&self, i: usize) -> Self::Scalar
Get the scalar at a given index without bounds checking. Read more
Source§unsafe fn set_unchecked(&mut self, i: usize, scalar: Scalar)
unsafe fn set_unchecked(&mut self, i: usize, scalar: Scalar)
Set the scalar at a given index without bounds checking. Read more
fn zero() -> Self
fn iter(&self) -> impl Iterator<Item = Self::Scalar> + Send + Clone + '_
fn into_iter(self) -> impl Iterator<Item = Self::Scalar> + Send + Clone
fn iter_slice( slice: &[Self], ) -> impl Iterator<Item = Self::Scalar> + Send + Clone + '_
Source§fn interleave(self, other: Self, log_block_len: usize) -> (Self, Self)
fn interleave(self, other: Self, log_block_len: usize) -> (Self, Self)
Interleaves blocks of this packed vector with another packed vector. Read more
Source§fn unzip(self, other: Self, log_block_len: usize) -> (Self, Self)
fn unzip(self, other: Self, log_block_len: usize) -> (Self, Self)
Unzips interleaved blocks of this packed vector with another packed vector. Read more
Source§unsafe fn spread_unchecked(self, log_block_len: usize, block_idx: usize) -> Self
unsafe fn spread_unchecked(self, log_block_len: usize, block_idx: usize) -> Self
Unsafe version of
Self::spread. Read morefn broadcast(scalar: Self::Scalar) -> Self
Source§fn from_fn(f: impl FnMut(usize) -> Self::Scalar) -> Self
fn from_fn(f: impl FnMut(usize) -> Self::Scalar) -> Self
Construct a packed field element from a function that returns scalar values by index.
Source§fn invert_or_zero(self) -> Self
fn invert_or_zero(self) -> Self
Returns the packed inverse values or zeroes at indices where
self is zero.Source§fn get_checked(&self, i: usize) -> Result<Self::Scalar, Error>
fn get_checked(&self, i: usize) -> Result<Self::Scalar, Error>
Get the scalar at a given index.
Source§fn set_checked(&mut self, i: usize, scalar: Self::Scalar) -> Result<(), Error>
fn set_checked(&mut self, i: usize, scalar: Self::Scalar) -> Result<(), Error>
Set the scalar at a given index.
fn one() -> Self
Source§fn set_single(scalar: Self::Scalar) -> Self
fn set_single(scalar: Self::Scalar) -> Self
Initialize zero position with
scalar, set other elements to zero.Source§fn try_from_fn<E>(
f: impl FnMut(usize) -> Result<Self::Scalar, E>,
) -> Result<Self, E>
fn try_from_fn<E>( f: impl FnMut(usize) -> Result<Self::Scalar, E>, ) -> Result<Self, E>
Creates a packed field from a fallible function applied to each index.
Source§fn from_scalars(values: impl IntoIterator<Item = Self::Scalar>) -> Self
fn from_scalars(values: impl IntoIterator<Item = Self::Scalar>) -> Self
Construct a packed field element from a sequence of scalars. Read more
Source§impl<U: PartialEq + UnderlierType, Scalar: PartialEq + BinaryField> PartialEq for PackedPrimitiveType<U, Scalar>
impl<U: PartialEq + UnderlierType, Scalar: PartialEq + BinaryField> PartialEq for PackedPrimitiveType<U, Scalar>
Source§fn eq(&self, other: &PackedPrimitiveType<U, Scalar>) -> bool
fn eq(&self, other: &PackedPrimitiveType<U, Scalar>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<U: UnderlierType, Scalar: BinaryField> Product for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> Product for PackedPrimitiveType<U, Scalar>
Source§impl SerializeBytes for PackedPrimitiveType<u128, AESTowerField8b>
impl SerializeBytes for PackedPrimitiveType<u128, AESTowerField8b>
Source§impl SerializeBytes for PackedPrimitiveType<u128, BinaryField128bGhash>
impl SerializeBytes for PackedPrimitiveType<u128, BinaryField128bGhash>
Source§impl SerializeBytes for PackedPrimitiveType<u128, BinaryField1b>
impl SerializeBytes for PackedPrimitiveType<u128, BinaryField1b>
Source§impl Square for PackedPrimitiveType<u128, AESTowerField8b>
impl Square for PackedPrimitiveType<u128, AESTowerField8b>
Source§impl Square for PackedPrimitiveType<u128, BinaryField128bGhash>
impl Square for PackedPrimitiveType<u128, BinaryField128bGhash>
Source§impl Square for PackedPrimitiveType<u128, BinaryField1b>
impl Square for PackedPrimitiveType<u128, BinaryField1b>
Source§impl<U: UnderlierType, Scalar: BinaryField> Sub<Scalar> for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> Sub<Scalar> for PackedPrimitiveType<U, Scalar>
Source§impl<U: UnderlierWithBitOps, Scalar: BinaryField> Sub for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierWithBitOps, Scalar: BinaryField> Sub for PackedPrimitiveType<U, Scalar>
Source§impl<U: UnderlierType, Scalar: BinaryField> SubAssign<Scalar> for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> SubAssign<Scalar> for PackedPrimitiveType<U, Scalar>
Source§fn sub_assign(&mut self, rhs: Scalar)
fn sub_assign(&mut self, rhs: Scalar)
Performs the
-= operation. Read moreSource§impl<U: UnderlierType, Scalar: BinaryField> SubAssign for PackedPrimitiveType<U, Scalar>where
Self: Sub<Output = Self>,
impl<U: UnderlierType, Scalar: BinaryField> SubAssign for PackedPrimitiveType<U, Scalar>where
Self: Sub<Output = Self>,
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-= operation. Read moreSource§impl<U: UnderlierType, Scalar: BinaryField> Sum for PackedPrimitiveType<U, Scalar>where
Self: Add<Output = Self>,
impl<U: UnderlierType, Scalar: BinaryField> Sum for PackedPrimitiveType<U, Scalar>where
Self: Add<Output = Self>,
Source§impl<U: UnderlierWithBitOps> TaggedInvertOrZero<BitwiseAndStrategy> for PackedPrimitiveType<U, BinaryField1b>
impl<U: UnderlierWithBitOps> TaggedInvertOrZero<BitwiseAndStrategy> for PackedPrimitiveType<U, BinaryField1b>
fn invert_or_zero(self) -> Self
Source§impl<U: UnderlierType> TaggedInvertOrZero<PairwiseTableStrategy> for PackedPrimitiveType<U, AESTowerField8b>where
Self: PackedField<Scalar = AESTowerField8b>,
impl<U: UnderlierType> TaggedInvertOrZero<PairwiseTableStrategy> for PackedPrimitiveType<U, AESTowerField8b>where
Self: PackedField<Scalar = AESTowerField8b>,
fn invert_or_zero(self) -> Self
Source§impl<U: UnderlierType + Pod, Scalar: BinaryField, const N: usize> TaggedInvertOrZero<ScaledStrategy> for PackedPrimitiveType<ScaledUnderlier<U, N>, Scalar>where
PackedPrimitiveType<U, Scalar>: InvertOrZero,
impl<U: UnderlierType + Pod, Scalar: BinaryField, const N: usize> TaggedInvertOrZero<ScaledStrategy> for PackedPrimitiveType<ScaledUnderlier<U, N>, Scalar>where
PackedPrimitiveType<U, Scalar>: InvertOrZero,
fn invert_or_zero(self) -> Self
Source§impl<U: UnderlierWithBitOps> TaggedMul<BitwiseAndStrategy> for PackedPrimitiveType<U, BinaryField1b>
impl<U: UnderlierWithBitOps> TaggedMul<BitwiseAndStrategy> for PackedPrimitiveType<U, BinaryField1b>
Source§impl<U: UnderlierType> TaggedMul<PairwiseTableStrategy> for PackedPrimitiveType<U, AESTowerField8b>where
Self: PackedField<Scalar = AESTowerField8b>,
impl<U: UnderlierType> TaggedMul<PairwiseTableStrategy> for PackedPrimitiveType<U, AESTowerField8b>where
Self: PackedField<Scalar = AESTowerField8b>,
Source§impl<U: UnderlierType + Pod, Scalar: BinaryField, const N: usize> TaggedMul<ScaledStrategy> for PackedPrimitiveType<ScaledUnderlier<U, N>, Scalar>
impl<U: UnderlierType + Pod, Scalar: BinaryField, const N: usize> TaggedMul<ScaledStrategy> for PackedPrimitiveType<ScaledUnderlier<U, N>, Scalar>
Source§impl<U: UnderlierWithBitOps> TaggedMulAlpha<BitwiseAndStrategy> for PackedPrimitiveType<U, BinaryField1b>
impl<U: UnderlierWithBitOps> TaggedMulAlpha<BitwiseAndStrategy> for PackedPrimitiveType<U, BinaryField1b>
Source§impl<U: UnderlierType> TaggedMulAlpha<PairwiseTableStrategy> for PackedPrimitiveType<U, AESTowerField8b>where
Self: PackedField<Scalar = AESTowerField8b>,
impl<U: UnderlierType> TaggedMulAlpha<PairwiseTableStrategy> for PackedPrimitiveType<U, AESTowerField8b>where
Self: PackedField<Scalar = AESTowerField8b>,
Source§impl<U: UnderlierType + Pod, Scalar: BinaryField, const N: usize> TaggedMulAlpha<ScaledStrategy> for PackedPrimitiveType<ScaledUnderlier<U, N>, Scalar>where
PackedPrimitiveType<U, Scalar>: MulAlpha,
impl<U: UnderlierType + Pod, Scalar: BinaryField, const N: usize> TaggedMulAlpha<ScaledStrategy> for PackedPrimitiveType<ScaledUnderlier<U, N>, Scalar>where
PackedPrimitiveType<U, Scalar>: MulAlpha,
Source§impl<U: UnderlierWithBitOps> TaggedSquare<BitwiseAndStrategy> for PackedPrimitiveType<U, BinaryField1b>
impl<U: UnderlierWithBitOps> TaggedSquare<BitwiseAndStrategy> for PackedPrimitiveType<U, BinaryField1b>
Source§impl<U: UnderlierType> TaggedSquare<PairwiseTableStrategy> for PackedPrimitiveType<U, AESTowerField8b>where
Self: PackedField<Scalar = AESTowerField8b>,
impl<U: UnderlierType> TaggedSquare<PairwiseTableStrategy> for PackedPrimitiveType<U, AESTowerField8b>where
Self: PackedField<Scalar = AESTowerField8b>,
Source§impl<U: UnderlierType + Pod, Scalar: BinaryField, const N: usize> TaggedSquare<ScaledStrategy> for PackedPrimitiveType<ScaledUnderlier<U, N>, Scalar>where
PackedPrimitiveType<U, Scalar>: Square,
impl<U: UnderlierType + Pod, Scalar: BinaryField, const N: usize> TaggedSquare<ScaledStrategy> for PackedPrimitiveType<ScaledUnderlier<U, N>, Scalar>where
PackedPrimitiveType<U, Scalar>: Square,
Source§impl<U: UnderlierType, Scalar: BinaryField> TransparentWrapper<U> for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> TransparentWrapper<U> for PackedPrimitiveType<U, Scalar>
§fn wrap_ref(s: &Inner) -> &Self
fn wrap_ref(s: &Inner) -> &Self
Convert a reference to the inner type into a reference to the wrapper
type.
§fn wrap_mut(s: &mut Inner) -> &mut Self
fn wrap_mut(s: &mut Inner) -> &mut Self
Convert a mutable reference to the inner type into a mutable reference to
the wrapper type.
§fn wrap_slice(s: &[Inner]) -> &[Self]where
Self: Sized,
fn wrap_slice(s: &[Inner]) -> &[Self]where
Self: Sized,
Convert a slice to the inner type into a slice to the wrapper type.
§fn wrap_slice_mut(s: &mut [Inner]) -> &mut [Self]where
Self: Sized,
fn wrap_slice_mut(s: &mut [Inner]) -> &mut [Self]where
Self: Sized,
Convert a mutable slice to the inner type into a mutable slice to the
wrapper type.
§fn peel_ref(s: &Self) -> &Inner
fn peel_ref(s: &Self) -> &Inner
Convert a reference to the wrapper type into a reference to the inner
type.
§fn peel_mut(s: &mut Self) -> &mut Inner
fn peel_mut(s: &mut Self) -> &mut Inner
Convert a mutable reference to the wrapper type into a mutable reference
to the inner type.
§fn peel_slice(s: &[Self]) -> &[Inner]where
Self: Sized,
fn peel_slice(s: &[Self]) -> &[Inner]where
Self: Sized,
Convert a slice to the wrapped type into a slice to the inner type.
§fn peel_slice_mut(s: &mut [Self]) -> &mut [Inner]where
Self: Sized,
fn peel_slice_mut(s: &mut [Self]) -> &mut [Inner]where
Self: Sized,
Convert a mutable slice to the wrapped type into a mutable slice to the
inner type.
Source§impl<U: UnderlierType, Scalar: BinaryField> WithUnderlier for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> WithUnderlier for PackedPrimitiveType<U, Scalar>
Source§fn to_underlier(self) -> Self::Underlier
fn to_underlier(self) -> Self::Underlier
Convert value to underlier.
fn to_underlier_ref(&self) -> &Self::Underlier
fn to_underlier_ref_mut(&mut self) -> &mut Self::Underlier
fn to_underliers_ref(val: &[Self]) -> &[Self::Underlier]
fn to_underliers_ref_mut(val: &mut [Self]) -> &mut [Self::Underlier]
fn from_underlier(val: Self::Underlier) -> Self
fn from_underlier_ref(val: &Self::Underlier) -> &Self
fn from_underlier_ref_mut(val: &mut Self::Underlier) -> &mut Self
fn from_underliers_ref(val: &[Self::Underlier]) -> &[Self]
fn from_underliers_ref_mut(val: &mut [Self::Underlier]) -> &mut [Self]
fn to_underliers_arr<const N: usize>(val: [Self; N]) -> [Self::Underlier; N]
fn to_underliers_arr_ref<const N: usize>( val: &[Self; N], ) -> &[Self::Underlier; N]
fn to_underliers_arr_ref_mut<const N: usize>( val: &mut [Self; N], ) -> &mut [Self::Underlier; N]
fn from_underliers_arr<const N: usize>(val: [Self::Underlier; N]) -> [Self; N]
fn from_underliers_arr_ref<const N: usize>( val: &[Self::Underlier; N], ) -> &[Self; N]
fn from_underliers_arr_ref_mut<const N: usize>( val: &mut [Self::Underlier; N], ) -> &mut [Self; N]
fn mutate_underlier( self, f: impl FnOnce(Self::Underlier) -> Self::Underlier, ) -> Self
Source§impl<U: UnderlierType + Zeroable, Scalar: BinaryField> Zeroable for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType + Zeroable, Scalar: BinaryField> Zeroable for PackedPrimitiveType<U, Scalar>
impl<U: Copy + UnderlierType, Scalar: Copy + BinaryField> Copy for PackedPrimitiveType<U, Scalar>
impl<U: Eq + UnderlierType, Scalar: Eq + BinaryField> Eq for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType + Pod, Scalar: BinaryField> Pod for PackedPrimitiveType<U, Scalar>
impl<U: UnderlierType, Scalar: BinaryField> StructuralPartialEq for PackedPrimitiveType<U, Scalar>
Auto Trait Implementations§
impl<U, Scalar> Freeze for PackedPrimitiveType<U, Scalar>
impl<U, Scalar> RefUnwindSafe for PackedPrimitiveType<U, Scalar>
impl<U, Scalar> Send for PackedPrimitiveType<U, Scalar>
impl<U, Scalar> Sync for PackedPrimitiveType<U, Scalar>
impl<U, Scalar> Unpin for PackedPrimitiveType<U, Scalar>
impl<U, Scalar> UnwindSafe for PackedPrimitiveType<U, Scalar>
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
§impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
§type Bits = T
type Bits = T
Self must have the same layout as the specified Bits except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern.§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
If this function returns true, then it must be valid to reinterpret
bits
as &Self.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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> Pointable for T
impl<T> Pointable for T
Source§impl<T> Random for Twhere
StandardUniform: Distribution<T>,
impl<T> Random for Twhere
StandardUniform: Distribution<T>,
Source§impl<PT> TaggedInvertOrZero<PairwiseStrategy> for PT
impl<PT> TaggedInvertOrZero<PairwiseStrategy> for PT
fn invert_or_zero(self) -> PT
Source§impl<PT> TaggedMul<PairwiseStrategy> for PTwhere
PT: PackedField,
impl<PT> TaggedMul<PairwiseStrategy> for PTwhere
PT: PackedField,
Source§impl<T> TaggedMulAlpha<ReuseMultiplyStrategy> for Twhere
T: Mul<Output = T> + Alpha,
impl<T> TaggedMulAlpha<ReuseMultiplyStrategy> for Twhere
T: Mul<Output = T> + Alpha,
Source§impl<PT> TaggedSquare<PairwiseStrategy> for PT
impl<PT> TaggedSquare<PairwiseStrategy> for PT
Source§impl<T> TaggedSquare<ReuseMultiplyStrategy> for T
impl<T> TaggedSquare<ReuseMultiplyStrategy> for T
§impl<I, T> TransparentWrapperAlloc<I> for T
impl<I, T> TransparentWrapperAlloc<I> for T
§fn wrap_vec(s: Vec<Inner>) -> Vec<Self>where
Self: Sized,
fn wrap_vec(s: Vec<Inner>) -> Vec<Self>where
Self: Sized,
Convert a vec of the inner type into a vec of the wrapper type.
§fn wrap_box(s: Box<Inner>) -> Box<Self>
fn wrap_box(s: Box<Inner>) -> Box<Self>
Convert a box to the inner type into a box to the wrapper
type.
§fn wrap_rc(s: Rc<Inner>) -> Rc<Self>
fn wrap_rc(s: Rc<Inner>) -> Rc<Self>
Convert an
Rc to the inner type into an Rc to the wrapper type.§fn wrap_arc(s: Arc<Inner>) -> Arc<Self>
fn wrap_arc(s: Arc<Inner>) -> Arc<Self>
Convert an
Arc to the inner type into an Arc to the wrapper type.§fn peel_vec(s: Vec<Self>) -> Vec<Inner>where
Self: Sized,
fn peel_vec(s: Vec<Self>) -> Vec<Inner>where
Self: Sized,
Convert a vec of the wrapper type into a vec of the inner type.
§fn peel_box(s: Box<Self>) -> Box<Inner>
fn peel_box(s: Box<Self>) -> Box<Inner>
Convert a box to the wrapper type into a box to the inner
type.