pub struct M128(/* private fields */);Expand description
128-bit value that is used for 128-bit SIMD operations
Implementations§
Trait Implementations§
Source§impl BitAndAssign for M128
impl BitAndAssign for M128
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
Performs the
&= operation. Read moreSource§impl BitOrAssign for M128
impl BitOrAssign for M128
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
Performs the
|= operation. Read moreSource§impl BitXorAssign for M128
impl BitXorAssign for M128
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
Performs the
^= operation. Read moreSource§impl DeserializeBytes for M128
impl DeserializeBytes for M128
fn deserialize(read_buf: impl Buf) -> Result<Self, SerializationError>where
Self: Sized,
Source§impl Distribution<M128> for StandardUniform
impl Distribution<M128> for StandardUniform
Source§impl Divisible<u128> for M128
impl Divisible<u128> for M128
Source§fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u128> + Send + Clone
fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u128> + Send + Clone
Returns an iterator over subdivisions of this underlier value, ordered from LSB to MSB.
Source§fn ref_iter(
value: &Self,
) -> impl ExactSizeIterator<Item = u128> + Send + Clone + '_
fn ref_iter( value: &Self, ) -> impl ExactSizeIterator<Item = u128> + Send + Clone + '_
Returns an iterator over subdivisions of this underlier reference, ordered from LSB to MSB.
Source§fn slice_iter(
slice: &[Self],
) -> impl ExactSizeIterator<Item = u128> + Send + Clone + '_
fn slice_iter( slice: &[Self], ) -> impl ExactSizeIterator<Item = u128> + Send + Clone + '_
Returns an iterator over subdivisions of a slice of underliers, ordered from LSB to MSB.
Source§fn set(self, index: usize, val: u128) -> Self
fn set(self, index: usize, val: u128) -> Self
Set element at index (LSB-first ordering), returning modified value. Read more
Source§impl Divisible<u16> for M128
impl Divisible<u16> for M128
Source§fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u16> + Send + Clone
fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u16> + Send + Clone
Returns an iterator over subdivisions of this underlier value, ordered from LSB to MSB.
Source§fn ref_iter(
value: &Self,
) -> impl ExactSizeIterator<Item = u16> + Send + Clone + '_
fn ref_iter( value: &Self, ) -> impl ExactSizeIterator<Item = u16> + Send + Clone + '_
Returns an iterator over subdivisions of this underlier reference, ordered from LSB to MSB.
Source§fn slice_iter(
slice: &[Self],
) -> impl ExactSizeIterator<Item = u16> + Send + Clone + '_
fn slice_iter( slice: &[Self], ) -> impl ExactSizeIterator<Item = u16> + Send + Clone + '_
Returns an iterator over subdivisions of a slice of underliers, ordered from LSB to MSB.
Source§fn set(self, index: usize, val: u16) -> Self
fn set(self, index: usize, val: u16) -> Self
Set element at index (LSB-first ordering), returning modified value. Read more
Source§impl Divisible<u32> for M128
impl Divisible<u32> for M128
Source§fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u32> + Send + Clone
fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u32> + Send + Clone
Returns an iterator over subdivisions of this underlier value, ordered from LSB to MSB.
Source§fn ref_iter(
value: &Self,
) -> impl ExactSizeIterator<Item = u32> + Send + Clone + '_
fn ref_iter( value: &Self, ) -> impl ExactSizeIterator<Item = u32> + Send + Clone + '_
Returns an iterator over subdivisions of this underlier reference, ordered from LSB to MSB.
Source§fn slice_iter(
slice: &[Self],
) -> impl ExactSizeIterator<Item = u32> + Send + Clone + '_
fn slice_iter( slice: &[Self], ) -> impl ExactSizeIterator<Item = u32> + Send + Clone + '_
Returns an iterator over subdivisions of a slice of underliers, ordered from LSB to MSB.
Source§fn set(self, index: usize, val: u32) -> Self
fn set(self, index: usize, val: u32) -> Self
Set element at index (LSB-first ordering), returning modified value. Read more
Source§impl Divisible<u64> for M128
impl Divisible<u64> for M128
Source§fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u64> + Send + Clone
fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u64> + Send + Clone
Returns an iterator over subdivisions of this underlier value, ordered from LSB to MSB.
Source§fn ref_iter(
value: &Self,
) -> impl ExactSizeIterator<Item = u64> + Send + Clone + '_
fn ref_iter( value: &Self, ) -> impl ExactSizeIterator<Item = u64> + Send + Clone + '_
Returns an iterator over subdivisions of this underlier reference, ordered from LSB to MSB.
Source§fn slice_iter(
slice: &[Self],
) -> impl ExactSizeIterator<Item = u64> + Send + Clone + '_
fn slice_iter( slice: &[Self], ) -> impl ExactSizeIterator<Item = u64> + Send + Clone + '_
Returns an iterator over subdivisions of a slice of underliers, ordered from LSB to MSB.
Source§fn set(self, index: usize, val: u64) -> Self
fn set(self, index: usize, val: u64) -> Self
Set element at index (LSB-first ordering), returning modified value. Read more
Source§impl Divisible<u8> for M128
impl Divisible<u8> for M128
Source§fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u8> + Send + Clone
fn value_iter(value: Self) -> impl ExactSizeIterator<Item = u8> + Send + Clone
Returns an iterator over subdivisions of this underlier value, ordered from LSB to MSB.
Source§fn ref_iter(
value: &Self,
) -> impl ExactSizeIterator<Item = u8> + Send + Clone + '_
fn ref_iter( value: &Self, ) -> impl ExactSizeIterator<Item = u8> + Send + Clone + '_
Returns an iterator over subdivisions of this underlier reference, ordered from LSB to MSB.
Source§fn slice_iter(
slice: &[Self],
) -> impl ExactSizeIterator<Item = u8> + Send + Clone + '_
fn slice_iter( slice: &[Self], ) -> impl ExactSizeIterator<Item = u8> + Send + Clone + '_
Returns an iterator over subdivisions of a slice of underliers, ordered from LSB to MSB.
Source§fn set(self, index: usize, val: u8) -> Self
fn set(self, index: usize, val: u8) -> Self
Set element at index (LSB-first ordering), returning modified value. Read more
Source§impl Ord for M128
impl Ord for M128
Source§impl<F> PackScalar<F> for M128where
F: BinaryField,
PackedPrimitiveType<M128, F>: PackedField<Scalar = F> + WithUnderlier<Underlier = M128>,
impl<F> PackScalar<F> for M128where
F: BinaryField,
PackedPrimitiveType<M128, F>: PackedField<Scalar = F> + WithUnderlier<Underlier = M128>,
type Packed = PackedPrimitiveType<M128, F>
Source§impl PartialOrd for M128
impl PartialOrd for M128
Source§impl UnderlierWithBitOps for M128
impl UnderlierWithBitOps for M128
const ZERO: Self
const ONE: Self
const ONES: Self
Source§fn fill_with_bit(val: u8) -> Self
fn fill_with_bit(val: u8) -> Self
Fill value with the given bit
val must be 0 or 1.Source§fn interleave(self, other: Self, log_block_len: usize) -> (Self, Self)
fn interleave(self, other: Self, log_block_len: usize) -> (Self, Self)
Interleave with the given bit size
Source§unsafe fn spread<T>(self, log_block_len: usize, block_idx: usize) -> Selfwhere
T: UnderlierWithBitOps,
Self: Divisible<T>,
unsafe fn spread<T>(self, log_block_len: usize, block_idx: usize) -> Selfwhere
T: UnderlierWithBitOps,
Self: Divisible<T>,
Spread takes a block of sub_elements of
T type within the current value and
repeats them to the full underlier width. Read moreSource§fn transpose(self, other: Self, log_block_len: usize) -> (Self, Self)
fn transpose(self, other: Self, log_block_len: usize) -> (Self, Self)
Transpose with the given bit size
fn from_fn<T>(f: impl FnMut(usize) -> T) -> Selfwhere
T: UnderlierType,
Self: Divisible<T>,
Source§fn broadcast_subvalue<T>(value: T) -> Selfwhere
T: UnderlierType,
Self: Divisible<T>,
fn broadcast_subvalue<T>(value: T) -> Selfwhere
T: UnderlierType,
Self: Divisible<T>,
Broadcast subvalue to fill
Self.
Self::BITS/T::BITS is supposed to be a power of 2.Source§unsafe fn get_subvalue<T>(&self, i: usize) -> Twhere
T: UnderlierType,
Self: Divisible<T>,
unsafe fn get_subvalue<T>(&self, i: usize) -> Twhere
T: UnderlierType,
Self: Divisible<T>,
Gets the subvalue from the given position.
Function panics in case when index is out of range. Read more
Source§unsafe fn set_subvalue<T>(&mut self, i: usize, val: T)where
T: UnderlierWithBitOps,
Self: Divisible<T>,
unsafe fn set_subvalue<T>(&mut self, i: usize, val: T)where
T: UnderlierWithBitOps,
Self: Divisible<T>,
Sets the subvalue in the given position.
Function panics in case when index is out of range. Read more
impl Copy for M128
impl Eq for M128
impl Pod for M128
impl Send for M128
impl Sync for M128
Auto Trait Implementations§
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