Struct faster::vecs::i64x8
[−]
#[repr(simd)]pub struct i64x8(_, _, _, _, _, _, _, _);
Methods
impl i64x8
pub const fn new(
x0: i64,
x1: i64,
x2: i64,
x3: i64,
x4: i64,
x5: i64,
x6: i64,
x7: i64
) -> i64x8
x0: i64,
x1: i64,
x2: i64,
x3: i64,
x4: i64,
x5: i64,
x6: i64,
x7: i64
) -> i64x8
pub fn len() -> i32
pub fn splat(value: i64) -> i64x8
pub fn extract(self, idx: u32) -> i64
pub unsafe fn extract_unchecked(self, idx: u32) -> i64
pub fn replace(self, idx: u32, val: i64) -> i64x8
pub unsafe fn replace_unchecked(self, idx: u32, val: i64) -> i64x8
pub fn store(self, slice: &mut [i64], offset: usize)
pub unsafe fn store_unchecked(self, slice: &mut [i64], offset: usize)
pub fn load(slice: &[i64], offset: usize) -> i64x8
pub unsafe fn load_unchecked(slice: &[i64], offset: usize) -> i64x8
pub fn eq(self, other: i64x8) -> i64x8
pub fn ne(self, other: i64x8) -> i64x8
pub fn lt(self, other: i64x8) -> i64x8
pub fn le(self, other: i64x8) -> i64x8
pub fn gt(self, other: i64x8) -> i64x8
pub fn ge(self, other: i64x8) -> i64x8
impl i64x8
impl i64x8
Trait Implementations
impl Shr<u8> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: u8) -> i64x8
Performs the >>
operation.
impl Shr<u64> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: u64) -> i64x8
Performs the >>
operation.
impl Shr<isize> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: isize) -> i64x8
Performs the >>
operation.
impl Shr<i8> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: i8) -> i64x8
Performs the >>
operation.
impl Shr<i32> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: i32) -> i64x8
Performs the >>
operation.
impl Shr<u16> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: u16) -> i64x8
Performs the >>
operation.
impl Shr<i64> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: i64) -> i64x8
Performs the >>
operation.
impl Shr<usize> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: usize) -> i64x8
Performs the >>
operation.
impl Shr<u32> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: u32) -> i64x8
Performs the >>
operation.
impl Shr<i16> for i64x8
type Output = i64x8
The resulting type after applying the >>
operator.
fn shr(self, other: i16) -> i64x8
Performs the >>
operation.
impl BitOr<i64x8> for i64x8
type Output = i64x8
The resulting type after applying the |
operator.
fn bitor(self, other: i64x8) -> i64x8
Performs the |
operation.
impl Copy for i64x8
impl LowerHex for i64x8
impl BitAnd<i64x8> for i64x8
type Output = i64x8
The resulting type after applying the &
operator.
fn bitand(self, other: i64x8) -> i64x8
Performs the &
operation.
impl BitOrAssign<i64x8> for i64x8
fn bitor_assign(&mut self, other: i64x8)
Performs the |=
operation.
impl Shl<usize> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: usize) -> i64x8
Performs the <<
operation.
impl Shl<i16> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: i16) -> i64x8
Performs the <<
operation.
impl Shl<u16> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: u16) -> i64x8
Performs the <<
operation.
impl Shl<u8> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: u8) -> i64x8
Performs the <<
operation.
impl Shl<u32> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: u32) -> i64x8
Performs the <<
operation.
impl Shl<u64> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: u64) -> i64x8
Performs the <<
operation.
impl Shl<i8> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: i8) -> i64x8
Performs the <<
operation.
impl Shl<i64> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: i64) -> i64x8
Performs the <<
operation.
impl Shl<i32> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: i32) -> i64x8
Performs the <<
operation.
impl Shl<isize> for i64x8
type Output = i64x8
The resulting type after applying the <<
operator.
fn shl(self, other: isize) -> i64x8
Performs the <<
operation.
impl AddAssign<i64x8> for i64x8
fn add_assign(&mut self, other: i64x8)
Performs the +=
operation.
impl Neg for i64x8
type Output = i64x8
The resulting type after applying the -
operator.
fn neg(self) -> i64x8
Performs the unary -
operation.
impl BitXor<i64x8> for i64x8
type Output = i64x8
The resulting type after applying the ^
operator.
fn bitxor(self, other: i64x8) -> i64x8
Performs the ^
operation.
impl ShlAssign<u64> for i64x8
fn shl_assign(&mut self, other: u64)
Performs the <<=
operation.
impl ShlAssign<i32> for i64x8
fn shl_assign(&mut self, other: i32)
Performs the <<=
operation.
impl ShlAssign<u8> for i64x8
fn shl_assign(&mut self, other: u8)
Performs the <<=
operation.
impl ShlAssign<isize> for i64x8
fn shl_assign(&mut self, other: isize)
Performs the <<=
operation.
impl ShlAssign<i8> for i64x8
fn shl_assign(&mut self, other: i8)
Performs the <<=
operation.
impl ShlAssign<usize> for i64x8
fn shl_assign(&mut self, other: usize)
Performs the <<=
operation.
impl ShlAssign<u16> for i64x8
fn shl_assign(&mut self, other: u16)
Performs the <<=
operation.
impl ShlAssign<u32> for i64x8
fn shl_assign(&mut self, other: u32)
Performs the <<=
operation.
impl ShlAssign<i64> for i64x8
fn shl_assign(&mut self, other: i64)
Performs the <<=
operation.
impl ShlAssign<i16> for i64x8
fn shl_assign(&mut self, other: i16)
Performs the <<=
operation.
impl Rem<i64x8> for i64x8
type Output = i64x8
The resulting type after applying the %
operator.
fn rem(self, other: i64x8) -> i64x8
Performs the %
operation.
impl Sub<i64x8> for i64x8
type Output = i64x8
The resulting type after applying the -
operator.
fn sub(self, other: i64x8) -> i64x8
Performs the -
operation.
impl Clone for i64x8
fn clone(&self) -> i64x8
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Add<i64x8> for i64x8
type Output = i64x8
The resulting type after applying the +
operator.
fn add(self, other: i64x8) -> i64x8
Performs the +
operation.
impl BitXorAssign<i64x8> for i64x8
fn bitxor_assign(&mut self, other: i64x8)
Performs the ^=
operation.
impl Div<i64x8> for i64x8
type Output = i64x8
The resulting type after applying the /
operator.
fn div(self, other: i64x8) -> i64x8
Performs the /
operation.
impl Not for i64x8
type Output = i64x8
The resulting type after applying the !
operator.
fn not(self) -> i64x8
Performs the unary !
operation.
impl From<i64x8> for u8x64
impl From<i64x8> for i32x16
impl From<i64x8> for i16x32
impl From<u8x64> for i64x8
impl From<i32x16> for i64x8
impl From<i64x8> for u16x32
impl From<i64x8> for u32x16
impl From<i16x32> for i64x8
impl From<i8x64> for i64x8
impl From<u32x16> for i64x8
impl From<u64x8> for i64x8
impl From<i64x8> for i8x64
impl From<i64x8> for u64x8
impl From<u16x32> for i64x8
impl ShrAssign<usize> for i64x8
fn shr_assign(&mut self, other: usize)
Performs the >>=
operation.
impl ShrAssign<u64> for i64x8
fn shr_assign(&mut self, other: u64)
Performs the >>=
operation.
impl ShrAssign<u16> for i64x8
fn shr_assign(&mut self, other: u16)
Performs the >>=
operation.
impl ShrAssign<i64> for i64x8
fn shr_assign(&mut self, other: i64)
Performs the >>=
operation.
impl ShrAssign<u32> for i64x8
fn shr_assign(&mut self, other: u32)
Performs the >>=
operation.
impl ShrAssign<u8> for i64x8
fn shr_assign(&mut self, other: u8)
Performs the >>=
operation.
impl ShrAssign<isize> for i64x8
fn shr_assign(&mut self, other: isize)
Performs the >>=
operation.
impl ShrAssign<i32> for i64x8
fn shr_assign(&mut self, other: i32)
Performs the >>=
operation.
impl ShrAssign<i8> for i64x8
fn shr_assign(&mut self, other: i8)
Performs the >>=
operation.
impl ShrAssign<i16> for i64x8
fn shr_assign(&mut self, other: i16)
Performs the >>=
operation.
impl BitAndAssign<i64x8> for i64x8
fn bitand_assign(&mut self, other: i64x8)
Performs the &=
operation.
impl DivAssign<i64x8> for i64x8
fn div_assign(&mut self, other: i64x8)
Performs the /=
operation.
impl RemAssign<i64x8> for i64x8
fn rem_assign(&mut self, other: i64x8)
Performs the %=
operation.
impl Mul<i64x8> for i64x8
type Output = i64x8
The resulting type after applying the *
operator.
fn mul(self, other: i64x8) -> i64x8
Performs the *
operation.
impl Debug for i64x8
fn fmt(&self, __arg_0: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl SubAssign<i64x8> for i64x8
fn sub_assign(&mut self, other: i64x8)
Performs the -=
operation.
impl PartialEq<i64x8> for i64x8
fn eq(&self, __arg_0: &i64x8) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &i64x8) -> bool
This method tests for !=
.
impl MulAssign<i64x8> for i64x8
fn mul_assign(&mut self, other: i64x8)
Performs the *=
operation.
impl Packed for i64x8
[src]
type Scalar = i64
The type which fits into this SIMD vector
const WIDTH: usize
WIDTH: usize = 8
The number of elements in this vector
fn load(data: &[i64], offset: usize) -> i64x8
[src]
Create a new vector with Self::WIDTH
elements from data
, beginning at offset
. Read more
unsafe fn load_unchecked(data: &[i64], offset: usize) -> i64x8
[src]
Create a new vector with Self::WIDTH
elements from data
, beginning at offset
, without asserting length of data. Read more
fn store(self, data: &mut [i64], offset: usize)
[src]
Write Self::WIDTH
elements from this vector to data
, beginning at offset
. Read more
fn coalesce(self) -> Self::Scalar
[src]
Assert all elements of the vector are equal, then return the element. Opposiite operation of Self::splat
. Read more
fn extract(&self, idx: usize) -> Self::Scalar
[src]
Return the idx
th element of this vector.
fn replace(&mut self, idx: usize, data: Self::Scalar) -> Self
[src]
Replace the idx
th element of this vector with data
.
fn splat(data: i64) -> Self
[src]
Return a vector with all elements initialized to data
. Opposite operation for Self::coalesce
. Read more
fn default() -> Self
[src]
Return a vector with all elements initialized to the default value for the underlying element type. Read more
fn product(&self) -> Self::Scalar
[src]
Return a scalar equivalent to the product of all elements of this vector. Read more
fn sum(&self) -> Self::Scalar
[src]
Return a scalar equivalent to the sum of all elements of this vector.
fn scalar_reduce<T, F>(&self, acc: T, func: F) -> T where
F: FnMut(T, Self::Scalar) -> T,
[src]
F: FnMut(T, Self::Scalar) -> T,
Return the result of a scalar reduction over this vector
fn width(&self) -> usize
[src]
Return the number of elements in this vector
impl PackedPattern for i64x8
[src]
fn halfs(hi: Self::Scalar, lo: Self::Scalar) -> Self
[src]
Return a vector whose first Self::WIDTH / 2
elements are hi
, and whose last Self::WIDTH / 2
elements are lo
. Read more
fn interleave(hi: Self::Scalar, lo: Self::Scalar) -> Self
[src]
Return a vector containing hi
at every even index, and lo at every odd index. Read more
fn partition_mask(off: usize) -> Self
[src]
Return a vector whose first off
elements are memset to 0x00, and whose last Self::WIDTH - off
elements are memset to 0xFF. Read more
fn partition(hi: Self::Scalar, lo: Self::Scalar, off: usize) -> Self
[src]
Return a vector whose first off
elements are hi
, and whose last Self::WIDTH - off
elements are lo
. Read more
impl PackedAbs for i64x8
[src]
type Out = u64x8
fn abs(&self) -> Self::Out
[src]
Return a vector the absolute value of the elements of self
. Read more
impl PackedTransmute for i64x8
[src]
type i8s = i8x64
type u8s = u8x64
type i16s = i16x32
type u16s = u16x32
type i32s = i32x16
type u32s = u32x16
type f32s = f32x16
type i64s = i64x8
type u64s = u64x8
type f64s = f64x8
fn be_i8s(&self) -> Self::i8s
[src]
fn be_u8s(&self) -> Self::u8s
[src]
fn be_i16s(&self) -> Self::i16s
[src]
fn be_u16s(&self) -> Self::u16s
[src]
fn be_i32s(&self) -> Self::i32s
[src]
fn be_u32s(&self) -> Self::u32s
[src]
unsafe fn be_f32s_unchecked(&self) -> Self::f32s
[src]
fn be_i64s(&self) -> Self::i64s
[src]
fn be_u64s(&self) -> Self::u64s
[src]
unsafe fn be_f64s_unchecked(&self) -> Self::f64s
[src]
impl Asu64s for i64x8
[src]
type Cast = u64x8
fn as_u64s(self) -> Self::Cast
[src]
Return a vector containing all elements of self
cast to u64s.
impl Asf64s for i64x8
[src]
type Cast = f64x8
fn as_f64s(self) -> Self::Cast
[src]
Return a vector containing all elements of self
cast to f64s.
impl Upcast<i64x8> for i32x16
[src]
fn upcast(self) -> (i64x8, i64x8)
[src]
Return two vectors containing elements of the same value, but different type. The first vector contains the first half of self
, and the second vector contains the second half. Both returned vectors are equal in size to self
. Read more
impl PackedHadd for i64x8
[src]
fn hadd(&self, other: Self) -> Self
[src]
Return a vector containing the interleaved sums of elements in self
and other
. The returned vector will begin with the sum of the first two elements in self
, and end with the sum of the last two elements in other
Read more
impl PackedHsub for i64x8
[src]
fn hsub(&self, other: Self) -> Self
[src]
Return a vector containing the interleaved differences of elements in self
and other
. The returned vector will begin with the difference of the first two elements in self
, and end with the difference of the last two elements in other
Read more
impl PackedSaturatingHadd for i64x8
[src]
fn saturating_hadd(&self, other: Self) -> Self
[src]
Return a vector containing the interleaved sums of elements in self
and other
, using saturating addition. The returned vector will begin with the sum of the first two elements in self
, and end with the sum of the last two elements in other
Read more
impl PackedSaturatingHsub for i64x8
[src]
fn saturating_hsub(&self, other: Self) -> Self
[src]
Return a vector containing the interleaved differences of elements in self
and other
, using saturating subtraction. The returned vector will begin with the difference of the first two elements in self
, and end with the difference of the last two elements in other
Read more
impl PackedMerge for i64x8
[src]
fn merge_halves(&self, other: Self) -> Self
[src]
Return a vector with the first half populated by the first half of self
, and the second half populated by the second half of other
. Read more
fn merge_interleaved(&self, other: Self) -> Self
[src]
Return a vector containing the even elements of self
interleaved with the odd elements of other, starting with the first element of self
. Read more
fn merge_partitioned(&self, other: Self, offset: usize) -> Self
[src]
Return a vector containing the first offset
elements of self
, then the last (Self::WIDTH - offset)
elements of other
. Read more
impl PackedSwizzle for i64x8
[src]
fn flip(&self) -> Self
[src]
Return a vector containing elements of self, but with even and odd elements swapped in-place. For (n = 0, 2, ... Self::WIDTH), elements at indices n and n + 1 are swapped. Read more