pub struct ByteSlicedAES16x128b { /* private fields */ }
Implementations§
Source§impl ByteSlicedAES16x128b
impl ByteSlicedAES16x128b
pub const BYTES: usize = 256usize
Sourcepub unsafe fn get_byte_unchecked(&self, byte_index: usize) -> u8
pub unsafe fn get_byte_unchecked(&self, byte_index: usize) -> u8
Sourcepub fn transpose_to(
&self,
out: &mut [<<PackedAESBinaryField16x8b as WithUnderlier>::Underlier as PackScalar<AESTowerField128b>>::Packed; 16],
)
pub fn transpose_to( &self, out: &mut [<<PackedAESBinaryField16x8b as WithUnderlier>::Underlier as PackScalar<AESTowerField128b>>::Packed; 16], )
Convert the byte-sliced field to an array of “ordinary” packed fields preserving the order of scalars.
Sourcepub fn transpose_from(
underliers: &[<<PackedAESBinaryField16x8b as WithUnderlier>::Underlier as PackScalar<AESTowerField128b>>::Packed; 16],
) -> Self
pub fn transpose_from( underliers: &[<<PackedAESBinaryField16x8b as WithUnderlier>::Underlier as PackScalar<AESTowerField128b>>::Packed; 16], ) -> Self
Convert an array of “ordinary” packed fields to a byte-sliced field preserving the order of scalars.
Trait Implementations§
Source§impl Add<AESTowerField128b> for ByteSlicedAES16x128b
impl Add<AESTowerField128b> for ByteSlicedAES16x128b
Source§type Output = ByteSlicedAES16x128b
type Output = ByteSlicedAES16x128b
The resulting type after applying the
+
operator.Source§fn add(self, rhs: AESTowerField128b) -> ByteSlicedAES16x128b
fn add(self, rhs: AESTowerField128b) -> ByteSlicedAES16x128b
Performs the
+
operation. Read moreSource§impl Add for ByteSlicedAES16x128b
impl Add for ByteSlicedAES16x128b
Source§impl AddAssign<AESTowerField128b> for ByteSlicedAES16x128b
impl AddAssign<AESTowerField128b> for ByteSlicedAES16x128b
Source§fn add_assign(&mut self, rhs: AESTowerField128b)
fn add_assign(&mut self, rhs: AESTowerField128b)
Performs the
+=
operation. Read moreSource§impl AddAssign for ByteSlicedAES16x128b
impl AddAssign for ByteSlicedAES16x128b
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+=
operation. Read moreSource§impl Clone for ByteSlicedAES16x128b
impl Clone for ByteSlicedAES16x128b
Source§fn clone(&self) -> ByteSlicedAES16x128b
fn clone(&self) -> ByteSlicedAES16x128b
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 Debug for ByteSlicedAES16x128b
impl Debug for ByteSlicedAES16x128b
Source§impl Default for ByteSlicedAES16x128b
impl Default for ByteSlicedAES16x128b
Source§impl Mul<AESTowerField128b> for ByteSlicedAES16x128b
impl Mul<AESTowerField128b> for ByteSlicedAES16x128b
Source§type Output = ByteSlicedAES16x128b
type Output = ByteSlicedAES16x128b
The resulting type after applying the
*
operator.Source§fn mul(self, rhs: AESTowerField128b) -> ByteSlicedAES16x128b
fn mul(self, rhs: AESTowerField128b) -> ByteSlicedAES16x128b
Performs the
*
operation. Read moreSource§impl Mul for ByteSlicedAES16x128b
impl Mul for ByteSlicedAES16x128b
Source§impl MulAssign<AESTowerField128b> for ByteSlicedAES16x128b
impl MulAssign<AESTowerField128b> for ByteSlicedAES16x128b
Source§fn mul_assign(&mut self, rhs: AESTowerField128b)
fn mul_assign(&mut self, rhs: AESTowerField128b)
Performs the
*=
operation. Read moreSource§impl MulAssign for ByteSlicedAES16x128b
impl MulAssign for ByteSlicedAES16x128b
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the
*=
operation. Read moreSource§impl PackedField for ByteSlicedAES16x128b
impl PackedField for ByteSlicedAES16x128b
Source§const LOG_WIDTH: usize = 4usize
const LOG_WIDTH: usize = 4usize
Base-2 logarithm of the number of field elements packed into one packed element.
type Scalar = AESTowerField128b
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: Self::Scalar)
unsafe fn set_unchecked(&mut self, i: usize, scalar: Self::Scalar)
Set the scalar at a given index without bounds checking. Read more
fn random(rng: impl RngCore) -> Self
fn 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 from_scalars(scalars: impl IntoIterator<Item = Self::Scalar>) -> Self
fn from_scalars(scalars: impl IntoIterator<Item = Self::Scalar>) -> Self
Construct a packed field element from a sequence of scalars. Read more
fn iter(&self) -> impl Iterator<Item = Self::Scalar> + Clone + Send + '_
fn into_iter(self) -> impl Iterator<Item = Self::Scalar> + Clone + Send
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 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§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 iter_slice( slice: &[Self], ) -> impl Iterator<Item = Self::Scalar> + Send + Clone + '_
fn zero() -> Self
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 spread(self, log_block_len: usize, block_idx: usize) -> Self
fn spread(self, log_block_len: usize, block_idx: usize) -> Self
Spread takes a block of elements within a packed field and repeats them to the full packing
width. 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 moreSource§impl PackedTransformationFactory<ByteSlicedAES16x128b> for ByteSlicedAES16x128b
impl PackedTransformationFactory<ByteSlicedAES16x128b> for ByteSlicedAES16x128b
type PackedTransformation<Data: AsRef<[<ByteSlicedAES16x128b as PackedField>::Scalar]> + Sync> = TransformationWrapperNxN<<PackedPrimitiveType<M128, AESTowerField8b> as PackedTransformationFactory<PackedPrimitiveType<M128, AESTowerField8b>>>::PackedTransformation<[AESTowerField8b; 8]>, {<$scalar_tower_level as TowerLevel>::WIDTH}>
fn make_packed_transformation<Data: AsRef<[<ByteSlicedAES16x128b as PackedField>::Scalar]> + Sync>( transformation: FieldLinearTransformation<<ByteSlicedAES16x128b as PackedField>::Scalar, Data>, ) -> Self::PackedTransformation<Data>
Source§impl PartialEq for ByteSlicedAES16x128b
impl PartialEq for ByteSlicedAES16x128b
Source§impl Product for ByteSlicedAES16x128b
impl Product for ByteSlicedAES16x128b
Source§impl Sub<AESTowerField128b> for ByteSlicedAES16x128b
impl Sub<AESTowerField128b> for ByteSlicedAES16x128b
Source§type Output = ByteSlicedAES16x128b
type Output = ByteSlicedAES16x128b
The resulting type after applying the
-
operator.Source§fn sub(self, rhs: AESTowerField128b) -> ByteSlicedAES16x128b
fn sub(self, rhs: AESTowerField128b) -> ByteSlicedAES16x128b
Performs the
-
operation. Read moreSource§impl Sub for ByteSlicedAES16x128b
impl Sub for ByteSlicedAES16x128b
Source§impl SubAssign<AESTowerField128b> for ByteSlicedAES16x128b
impl SubAssign<AESTowerField128b> for ByteSlicedAES16x128b
Source§fn sub_assign(&mut self, rhs: AESTowerField128b)
fn sub_assign(&mut self, rhs: AESTowerField128b)
Performs the
-=
operation. Read moreSource§impl SubAssign for ByteSlicedAES16x128b
impl SubAssign for ByteSlicedAES16x128b
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-=
operation. Read moreSource§impl Sum for ByteSlicedAES16x128b
impl Sum for ByteSlicedAES16x128b
Source§impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES16x128b, ByteSlicedAES16x128b> for TransformationWrapperNxN<Inner, { <TowerLevel16 as TowerLevel>::WIDTH }>
impl<Inner: Transformation<PackedAESBinaryField16x8b, PackedAESBinaryField16x8b>> Transformation<ByteSlicedAES16x128b, ByteSlicedAES16x128b> for TransformationWrapperNxN<Inner, { <TowerLevel16 as TowerLevel>::WIDTH }>
fn transform(&self, data: &ByteSlicedAES16x128b) -> ByteSlicedAES16x128b
Source§impl WithUnderlier for ByteSlicedAES16x128b
impl WithUnderlier for ByteSlicedAES16x128b
Source§type Underlier = ByteSlicedUnderlier<<PackedPrimitiveType<M128, AESTowerField8b> as WithUnderlier>::Underlier, { <$storage_level as TowerLevel>::WIDTH }>
type Underlier = ByteSlicedUnderlier<<PackedPrimitiveType<M128, AESTowerField8b> as WithUnderlier>::Underlier, { <$storage_level as TowerLevel>::WIDTH }>
Underlier primitive type
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
impl Copy for ByteSlicedAES16x128b
impl Eq for ByteSlicedAES16x128b
impl Pod for ByteSlicedAES16x128b
impl StructuralPartialEq for ByteSlicedAES16x128b
Auto Trait Implementations§
impl Freeze for ByteSlicedAES16x128b
impl RefUnwindSafe for ByteSlicedAES16x128b
impl Send for ByteSlicedAES16x128b
impl Sync for ByteSlicedAES16x128b
impl Unpin for ByteSlicedAES16x128b
impl UnwindSafe for ByteSlicedAES16x128b
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,
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