Struct faster::vecs::f64x4
[−]
#[repr(simd)]pub struct f64x4(_, _, _, _);
Methods
impl f64x4
pub const fn new(x0: f64, x1: f64, x2: f64, x3: f64) -> f64x4
pub fn len() -> i32
pub fn splat(value: f64) -> f64x4
pub fn extract(self, idx: u32) -> f64
pub unsafe fn extract_unchecked(self, idx: u32) -> f64
pub fn replace(self, idx: u32, val: f64) -> f64x4
pub unsafe fn replace_unchecked(self, idx: u32, val: f64) -> f64x4
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) -> f64x4
pub unsafe fn load_unchecked(slice: &[f64], offset: usize) -> f64x4
pub fn eq(self, other: f64x4) -> i64x4
pub fn ne(self, other: f64x4) -> i64x4
pub fn lt(self, other: f64x4) -> i64x4
pub fn le(self, other: f64x4) -> i64x4
pub fn gt(self, other: f64x4) -> i64x4
pub fn ge(self, other: f64x4) -> i64x4
impl f64x4
impl f64x4
impl f64x4
Trait Implementations
impl Copy for f64x4
impl AddAssign<f64x4> for f64x4
fn add_assign(&mut self, other: f64x4)
Performs the +=
operation.
impl Neg for f64x4
type Output = f64x4
The resulting type after applying the -
operator.
fn neg(self) -> f64x4
Performs the unary -
operation.
impl Rem<f64x4> for f64x4
type Output = f64x4
The resulting type after applying the %
operator.
fn rem(self, other: f64x4) -> f64x4
Performs the %
operation.
impl Sub<f64x4> for f64x4
type Output = f64x4
The resulting type after applying the -
operator.
fn sub(self, other: f64x4) -> f64x4
Performs the -
operation.
impl Add<f64x4> for f64x4
type Output = f64x4
The resulting type after applying the +
operator.
fn add(self, other: f64x4) -> f64x4
Performs the +
operation.
impl Clone for f64x4
fn clone(&self) -> f64x4
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<f64x4> for f64x4
type Output = f64x4
The resulting type after applying the /
operator.
fn div(self, other: f64x4) -> f64x4
Performs the /
operation.
impl DivAssign<f64x4> for f64x4
fn div_assign(&mut self, other: f64x4)
Performs the /=
operation.
impl Mul<f64x4> for f64x4
type Output = f64x4
The resulting type after applying the *
operator.
fn mul(self, other: f64x4) -> f64x4
Performs the *
operation.
impl RemAssign<f64x4> for f64x4
fn rem_assign(&mut self, other: f64x4)
Performs the %=
operation.
impl Debug for f64x4
fn fmt(&self, __arg_0: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl SubAssign<f64x4> for f64x4
fn sub_assign(&mut self, other: f64x4)
Performs the -=
operation.
impl MulAssign<f64x4> for f64x4
fn mul_assign(&mut self, other: f64x4)
Performs the *=
operation.
impl PartialEq<f64x4> for f64x4
fn eq(&self, __arg_0: &f64x4) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &f64x4) -> bool
This method tests for !=
.
impl Packed for f64x4
[src]
type Scalar = f64
The type which fits into this SIMD vector
const WIDTH: usize
WIDTH: usize = 4
The number of elements in this vector
fn load(data: &[f64], offset: usize) -> f64x4
[src]
Create a new vector with Self::WIDTH
elements from data
, beginning at offset
. Read more
unsafe fn load_unchecked(data: &[f64], offset: usize) -> f64x4
[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 f64x4
[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 f64x4
[src]
type Out = f64x4
fn abs(&self) -> Self::Out
[src]
Return a vector the absolute value of the elements of self
. Read more
impl PackedSqrt for f64x4
[src]
fn sqrt(&self) -> Self
[src]
Return a vector the containing square roots of the elements of self
. Read more
impl PackedTransmute for f64x4
[src]
type i8s = i8x32
type u8s = u8x32
type i16s = i16x16
type u16s = u16x16
type i32s = i32x8
type u32s = u32x8
type f32s = f32x8
type i64s = i64x4
type u64s = u64x4
type f64s = f64x4
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 f64x4
[src]
type Cast = u64x4
fn as_u64s(self) -> Self::Cast
[src]
Return a vector containing all elements of self
cast to u64s.
impl Asi64s for f64x4
[src]
type Cast = i64x4
fn as_i64s(self) -> Self::Cast
[src]
Return a vector containing all elements of self
cast to i64s.
impl Upcast<f64x4> for f32x8
[src]
fn upcast(self) -> (f64x4, f64x4)
[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<f64x4> for i32x8
[src]
fn upcast(self) -> (f64x4, f64x4)
[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 Downcast<f32x8> for f64x4
[src]
fn saturating_downcast(self, other: Self) -> f32x8
[src]
Return a vector containing elements of the same value as self
and other
, but different type. The first half of the returned vector contains the downcast values of self
, whereas the second half of the returned vector contains the downcast values of other
. The returned vector is equal in size to self
and other
. If an element exceeds the maximum or minimum value of the downcast type, it is saturated. Read more
impl PackedRound for f64x4
[src]
fn round(&self) -> Self
[src]
Return a vector with all elements of self
rounded to the nearest integer. Read more
fn ceil(&self) -> Self
[src]
Return a vector with all elements of self
rounded up to the nearest integer. Read more
fn floor(&self) -> Self
[src]
Return a vector with all elements of self
rounded down to the nearest integer. Read more
fn trunc(&self) -> Self
[src]
Return a vector with all elements of self
truncated. Effectively rounds the elements towards zero. Read more
impl PackedHadd for f64x4
[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 f64x4
[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 PackedCmp for f64x4
[src]
fn min(&self, other: Self) -> Self
[src]
Return a vector where each element at an index i is the minimum of the elements at index i in self
and other
. Read more
fn max(&self, other: Self) -> Self
[src]
Return a vector where each element at an index i is the maximum of the elements at index i in self
and other
. Read more
impl PackedEq for f64x4
[src]
fn eq(&self, other: &Self) -> Self
[src]
Return a vector where each element at an index i is filled with 1s if the elements of self
and other
at index i are equal, and filled with zeroes otherwise. Read more
impl PackedMerge for f64x4
[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