Struct faster::vecs::f64x8
[−]
#[repr(simd)]pub struct f64x8(_, _, _, _, _, _, _, _);
Methods
impl f64x8
pub const fn new(
x0: f64,
x1: f64,
x2: f64,
x3: f64,
x4: f64,
x5: f64,
x6: f64,
x7: f64
) -> f64x8
x0: f64,
x1: f64,
x2: f64,
x3: f64,
x4: f64,
x5: f64,
x6: f64,
x7: f64
) -> f64x8
pub fn len() -> i32
pub fn splat(value: f64) -> f64x8
pub fn extract(self, idx: u32) -> f64
pub unsafe fn extract_unchecked(self, idx: u32) -> f64
pub fn replace(self, idx: u32, val: f64) -> f64x8
pub unsafe fn replace_unchecked(self, idx: u32, val: f64) -> f64x8
pub fn store(self, slice: &mut [f64], offset: usize)
pub unsafe fn store_unchecked(self, slice: &mut [f64], offset: usize)
pub fn load(slice: &[f64], offset: usize) -> f64x8
pub unsafe fn load_unchecked(slice: &[f64], offset: usize) -> f64x8
pub fn eq(self, other: f64x8) -> i64x8
pub fn ne(self, other: f64x8) -> i64x8
pub fn lt(self, other: f64x8) -> i64x8
pub fn le(self, other: f64x8) -> i64x8
pub fn gt(self, other: f64x8) -> i64x8
pub fn ge(self, other: f64x8) -> i64x8
impl f64x8
impl f64x8
impl f64x8
Trait Implementations
impl Copy for f64x8
impl AddAssign<f64x8> for f64x8
fn add_assign(&mut self, other: f64x8)
Performs the +=
operation.
impl Neg for f64x8
type Output = f64x8
The resulting type after applying the -
operator.
fn neg(self) -> f64x8
Performs the unary -
operation.
impl Rem<f64x8> for f64x8
type Output = f64x8
The resulting type after applying the %
operator.
fn rem(self, other: f64x8) -> f64x8
Performs the %
operation.
impl Sub<f64x8> for f64x8
type Output = f64x8
The resulting type after applying the -
operator.
fn sub(self, other: f64x8) -> f64x8
Performs the -
operation.
impl Add<f64x8> for f64x8
type Output = f64x8
The resulting type after applying the +
operator.
fn add(self, other: f64x8) -> f64x8
Performs the +
operation.
impl Clone for f64x8
fn clone(&self) -> f64x8
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 Div<f64x8> for f64x8
type Output = f64x8
The resulting type after applying the /
operator.
fn div(self, other: f64x8) -> f64x8
Performs the /
operation.
impl DivAssign<f64x8> for f64x8
fn div_assign(&mut self, other: f64x8)
Performs the /=
operation.
impl RemAssign<f64x8> for f64x8
fn rem_assign(&mut self, other: f64x8)
Performs the %=
operation.
impl Mul<f64x8> for f64x8
type Output = f64x8
The resulting type after applying the *
operator.
fn mul(self, other: f64x8) -> f64x8
Performs the *
operation.
impl Debug for f64x8
fn fmt(&self, __arg_0: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl SubAssign<f64x8> for f64x8
fn sub_assign(&mut self, other: f64x8)
Performs the -=
operation.
impl MulAssign<f64x8> for f64x8
fn mul_assign(&mut self, other: f64x8)
Performs the *=
operation.
impl PartialEq<f64x8> for f64x8
fn eq(&self, __arg_0: &f64x8) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &f64x8) -> bool
This method tests for !=
.
impl Packed for f64x8
[src]
type Scalar = f64
The type which fits into this SIMD vector
const WIDTH: usize
WIDTH: usize = 8
The number of elements in this vector
fn load(data: &[f64], offset: usize) -> f64x8
[src]
Create a new vector with Self::WIDTH
elements from data
, beginning at offset
. Read more
unsafe fn load_unchecked(data: &[f64], offset: usize) -> f64x8
[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 [f64], 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: f64) -> 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 f64x8
[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 PackedTransmute for f64x8
[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 f64x8
[src]
type Cast = u64x8
fn as_u64s(self) -> Self::Cast
[src]
Return a vector containing all elements of self
cast to u64s.
impl Asi64s for f64x8
[src]
type Cast = i64x8
fn as_i64s(self) -> Self::Cast
[src]
Return a vector containing all elements of self
cast to i64s.
impl Upcast<f64x8> for f32x16
[src]
fn upcast(self) -> (f64x8, f64x8)
[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 Upcast<f64x8> for i32x16
[src]
fn upcast(self) -> (f64x8, f64x8)
[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 f64x8
[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 f64x8
[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 PackedMerge for f64x8
[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