# Struct std::simd::f64x4 [−][src]

#[repr(simd)]pub struct f64x4(_, _, _, _);

A 256-bit vector with 4 `f64`

lanes.

## Methods

`impl f64x4`

[src]

`impl f64x4`

`pub const fn new(x0: f64, x1: f64, x2: f64, x3: f64) -> f64x4`

[src]

`pub const fn new(x0: f64, x1: f64, x2: f64, x3: f64) -> f64x4`

Creates a new instance with each vector elements initialized with the provided values.

`pub const fn lanes() -> usize`

[src]

`pub const fn lanes() -> usize`

Returns the number of vector lanes.

`pub const fn splat(value: f64) -> f64x4`

[src]

`pub const fn splat(value: f64) -> f64x4`

Constructs a new instance with each element initialized to
`value`

.

`pub fn extract(self, index: usize) -> f64`

[src]

`pub fn extract(self, index: usize) -> f64`

`pub unsafe fn extract_unchecked(self, index: usize) -> f64`

[src]

`pub unsafe fn extract_unchecked(self, index: usize) -> f64`

```
#[must_use = "replace does not modify the original value - it returns a new vector with the value at `index` replaced by `new_value`d"]
pub fn replace(self, index: usize, new_value: f64) -> f64x4
```

[src]

```
#[must_use = "replace does not modify the original value - it returns a new vector with the value at `index` replaced by `new_value`d"]
pub fn replace(self, index: usize, new_value: f64) -> f64x4
```

Returns a new vector where the value at `index`

is replaced by `new_value`

.

# Panics

If `index >= Self::lanes()`

.

```
#[must_use = "replace_unchecked does not modify the original value - it returns a new vector with the value at `index` replaced by `new_value`d"]
pub unsafe fn replace_unchecked(self, index: usize, new_value: f64) -> f64x4
```

[src]

```
#[must_use = "replace_unchecked does not modify the original value - it returns a new vector with the value at `index` replaced by `new_value`d"]
pub unsafe fn replace_unchecked(self, index: usize, new_value: f64) -> f64x4
```

Returns a new vector where the value at `index`

is replaced by `new_value`

.

# Precondition

If `index >= Self::lanes()`

the behavior is undefined.

`impl f64x4`

[src]

`impl f64x4`

`pub fn store_aligned(self, slice: &mut [f64])`

[src]

`pub fn store_aligned(self, slice: &mut [f64])`

Writes the values of the vector to the `slice`

.

# Panics

If `slice.len() < Self::lanes()`

or `&slice[0]`

is not
aligned to an `align_of::<Self>()`

boundary.

`pub fn store_unaligned(self, slice: &mut [f64])`

[src]

`pub fn store_unaligned(self, slice: &mut [f64])`

`pub unsafe fn store_aligned_unchecked(self, slice: &mut [f64])`

[src]

`pub unsafe fn store_aligned_unchecked(self, slice: &mut [f64])`

Writes the values of the vector to the `slice`

.

# Precondition

If `slice.len() < Self::lanes()`

or `&slice[0]`

is not
aligned to an `align_of::<Self>()`

boundary, the behavior is
undefined.

`pub unsafe fn store_unaligned_unchecked(self, slice: &mut [f64])`

[src]

`pub unsafe fn store_unaligned_unchecked(self, slice: &mut [f64])`

Writes the values of the vector to the `slice`

.

# Precondition

If `slice.len() < Self::lanes()`

the behavior is undefined.

`pub fn load_aligned(slice: &[f64]) -> f64x4`

[src]

`pub fn load_aligned(slice: &[f64]) -> f64x4`

Instantiates a new vector with the values of the `slice`

.

# Panics

If `slice.len() < Self::lanes()`

or `&slice[0]`

is not aligned
to an `align_of::<Self>()`

boundary.

`pub fn load_unaligned(slice: &[f64]) -> f64x4`

[src]

`pub fn load_unaligned(slice: &[f64]) -> f64x4`

`pub unsafe fn load_aligned_unchecked(slice: &[f64]) -> f64x4`

[src]

`pub unsafe fn load_aligned_unchecked(slice: &[f64]) -> f64x4`

Instantiates a new vector with the values of the `slice`

.

# Precondition

If `slice.len() < Self::lanes()`

or `&slice[0]`

is not aligned
to an `align_of::<Self>()`

boundary, the behavior is undefined.

`pub unsafe fn load_unaligned_unchecked(slice: &[f64]) -> f64x4`

[src]

`pub unsafe fn load_unaligned_unchecked(slice: &[f64]) -> f64x4`

Instantiates a new vector with the values of the `slice`

.

# Precondition

If `slice.len() < Self::lanes()`

the behavior is undefined.

`impl f64x4`

[src]

`impl f64x4`

`pub fn eq(self, other: f64x4) -> m64x4`

[src]

`pub fn eq(self, other: f64x4) -> m64x4`

Lane-wise equality comparison.

`pub fn ne(self, other: f64x4) -> m64x4`

[src]

`pub fn ne(self, other: f64x4) -> m64x4`

Lane-wise inequality comparison.

`pub fn lt(self, other: f64x4) -> m64x4`

[src]

`pub fn lt(self, other: f64x4) -> m64x4`

Lane-wise less-than comparison.

`pub fn le(self, other: f64x4) -> m64x4`

[src]

`pub fn le(self, other: f64x4) -> m64x4`

Lane-wise less-than-or-equals comparison.

`pub fn gt(self, other: f64x4) -> m64x4`

[src]

`pub fn gt(self, other: f64x4) -> m64x4`

Lane-wise greater-than comparison.

`pub fn ge(self, other: f64x4) -> m64x4`

[src]

`pub fn ge(self, other: f64x4) -> m64x4`

Lane-wise greater-than-or-equals comparison.

`impl f64x4`

[src]

`impl f64x4`

`pub fn wrapping_sum(self) -> f64`

[src]

`pub fn wrapping_sum(self) -> f64`

Horizontal sum of the vector elements.

The intrinsic performs a tree-reduction of the vector elements. That is, for an 8 element vector:

((x0 + x1) + (x2 + x3)) + ((x4 + x5) + (x6 + x7))

# Integer vectors

If an operation overflows it returns the mathematical result
modulo `2^n`

where `n`

is the number of times it overflows.

# Floating-point vectors

If one of the vector element is `NaN`

the reduction returns
`NaN`

.

`pub fn wrapping_product(self) -> f64`

[src]

`pub fn wrapping_product(self) -> f64`

Horizontal product of the vector elements.

The intrinsic performs a tree-reduction of the vector elements. That is, for an 8 element vector:

((x0 * x1) * (x2 * x3)) * ((x4 * x5) * (x6 * x7))

# Integer vectors

If an operation overflows it returns the mathematical result
modulo `2^n`

where `n`

is the number of times it overflows.

# Floating-point vectors

If one of the vector element is `NaN`

the reduction returns
`NaN`

.

`impl f64x4`

[src]

`impl f64x4`

`pub fn max_element(self) -> f64`

[src]

`pub fn max_element(self) -> f64`

Largest vector element value.

`pub fn min_element(self) -> f64`

[src]

`pub fn min_element(self) -> f64`

Smallest vector element value.

`impl f64x4`

[src]

`impl f64x4`

`pub fn min(self, x: f64x4) -> f64x4`

[src]

`pub fn min(self, x: f64x4) -> f64x4`

Minimum of two vectors.

Returns a new vector containing the minimum value of each of the
input vector lanes. The lane-wise semantics are the same as that
of `min`

for the primitive floating-point types.

`pub fn max(self, x: f64x4) -> f64x4`

[src]

`pub fn max(self, x: f64x4) -> f64x4`

Maximum of two vectors.

Returns a new vector containing the minimum value of each of the
input vector lanes. The lane-wise semantics are the same as that
of `max`

for the primitive floating-point types.

## Trait Implementations

`impl Debug for f64x4`

[src]

`impl Debug for f64x4`

`fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`

[src]

`fn fmt(&self, f: &mut Formatter) -> Result<(), Error>`

Formats the value using the given formatter. Read more

`impl Default for f64x4`

[src]

`impl Default for f64x4`

`impl Div<f64> for f64x4`

[src]

`impl Div<f64> for f64x4`

`type Output = f64x4`

The resulting type after applying the `/`

operator.

`fn div(self, other: f64) -> f64x4`

[src]

`fn div(self, other: f64) -> f64x4`

Performs the `/`

operation.

`impl Div<f64x4> for f64x4`

[src]

`impl Div<f64x4> for f64x4`

`type Output = f64x4`

The resulting type after applying the `/`

operator.

`fn div(self, other: f64x4) -> f64x4`

[src]

`fn div(self, other: f64x4) -> f64x4`

Performs the `/`

operation.

`impl Div<f64x4> for f64`

[src]

`impl Div<f64x4> for f64`

`type Output = f64x4`

The resulting type after applying the `/`

operator.

`fn div(self, other: f64x4) -> f64x4`

[src]

`fn div(self, other: f64x4) -> f64x4`

Performs the `/`

operation.

`impl Add<f64x4> for f64x4`

[src]

`impl Add<f64x4> for f64x4`

`type Output = f64x4`

The resulting type after applying the `+`

operator.

`fn add(self, other: f64x4) -> f64x4`

[src]

`fn add(self, other: f64x4) -> f64x4`

Performs the `+`

operation.

`impl Add<f64x4> for f64`

[src]

`impl Add<f64x4> for f64`

`type Output = f64x4`

The resulting type after applying the `+`

operator.

`fn add(self, other: f64x4) -> f64x4`

[src]

`fn add(self, other: f64x4) -> f64x4`

Performs the `+`

operation.

`impl Add<f64> for f64x4`

[src]

`impl Add<f64> for f64x4`

`type Output = f64x4`

The resulting type after applying the `+`

operator.

`fn add(self, other: f64) -> f64x4`

[src]

`fn add(self, other: f64) -> f64x4`

Performs the `+`

operation.

`impl RemAssign<f64> for f64x4`

[src]

`impl RemAssign<f64> for f64x4`

`fn rem_assign(&mut self, other: f64)`

[src]

`fn rem_assign(&mut self, other: f64)`

Performs the `%=`

operation.

`impl RemAssign<f64x4> for f64x4`

[src]

`impl RemAssign<f64x4> for f64x4`

`fn rem_assign(&mut self, other: f64x4)`

[src]

`fn rem_assign(&mut self, other: f64x4)`

Performs the `%=`

operation.

`impl Copy for f64x4`

[src]

`impl Copy for f64x4`

`impl DivAssign<f64> for f64x4`

[src]

`impl DivAssign<f64> for f64x4`

`fn div_assign(&mut self, other: f64)`

[src]

`fn div_assign(&mut self, other: f64)`

Performs the `/=`

operation.

`impl DivAssign<f64x4> for f64x4`

[src]

`impl DivAssign<f64x4> for f64x4`

`fn div_assign(&mut self, other: f64x4)`

[src]

`fn div_assign(&mut self, other: f64x4)`

Performs the `/=`

operation.

`impl MulAssign<f64> for f64x4`

[src]

`impl MulAssign<f64> for f64x4`

`fn mul_assign(&mut self, other: f64)`

[src]

`fn mul_assign(&mut self, other: f64)`

Performs the `*=`

operation.

`impl MulAssign<f64x4> for f64x4`

[src]

`impl MulAssign<f64x4> for f64x4`

`fn mul_assign(&mut self, other: f64x4)`

[src]

`fn mul_assign(&mut self, other: f64x4)`

Performs the `*=`

operation.

`impl SubAssign<f64x4> for f64x4`

[src]

`impl SubAssign<f64x4> for f64x4`

`fn sub_assign(&mut self, other: f64x4)`

[src]

`fn sub_assign(&mut self, other: f64x4)`

Performs the `-=`

operation.

`impl SubAssign<f64> for f64x4`

[src]

`impl SubAssign<f64> for f64x4`

`fn sub_assign(&mut self, other: f64)`

[src]

`fn sub_assign(&mut self, other: f64)`

Performs the `-=`

operation.

`impl From<u64x4> for f64x4`

[src]

`impl From<u64x4> for f64x4`

`impl From<f64x4> for i8x4`

[src]

`impl From<f64x4> for i8x4`

`impl From<f64x4> for u64x4`

[src]

`impl From<f64x4> for u64x4`

`impl From<f64x4> for u8x4`

[src]

`impl From<f64x4> for u8x4`

`impl From<f64x4> for u16x4`

[src]

`impl From<f64x4> for u16x4`

`impl From<f64x4> for i32x4`

[src]

`impl From<f64x4> for i32x4`

`impl From<m32x4> for f64x4`

[src]

`impl From<m32x4> for f64x4`

`impl From<f64x4> for i16x4`

[src]

`impl From<f64x4> for i16x4`

`impl From<i32x4> for f64x4`

[src]

`impl From<i32x4> for f64x4`

`impl From<u16x4> for f64x4`

[src]

`impl From<u16x4> for f64x4`

`impl From<m8x4> for f64x4`

[src]

`impl From<m8x4> for f64x4`

`impl From<f64x4> for i64x4`

[src]

`impl From<f64x4> for i64x4`

`impl From<i8x4> for f64x4`

[src]

`impl From<i8x4> for f64x4`

`impl From<f32x4> for f64x4`

[src]

`impl From<f32x4> for f64x4`

`impl From<u8x4> for f64x4`

[src]

`impl From<u8x4> for f64x4`

`impl From<i16x4> for f64x4`

[src]

`impl From<i16x4> for f64x4`

`impl From<f64x4> for f32x4`

[src]

`impl From<f64x4> for f32x4`

`impl From<u32x4> for f64x4`

[src]

`impl From<u32x4> for f64x4`

`impl From<f64x4> for u32x4`

[src]

`impl From<f64x4> for u32x4`

`impl From<m64x4> for f64x4`

[src]

`impl From<m64x4> for f64x4`

`impl From<m16x4> for f64x4`

[src]

`impl From<m16x4> for f64x4`

`impl From<i64x4> for f64x4`

[src]

`impl From<i64x4> for f64x4`

`impl AddAssign<f64x4> for f64x4`

[src]

`impl AddAssign<f64x4> for f64x4`

`fn add_assign(&mut self, other: f64x4)`

[src]

`fn add_assign(&mut self, other: f64x4)`

Performs the `+=`

operation.

`impl AddAssign<f64> for f64x4`

[src]

`impl AddAssign<f64> for f64x4`

`fn add_assign(&mut self, other: f64)`

[src]

`fn add_assign(&mut self, other: f64)`

Performs the `+=`

operation.

`impl Neg for f64x4`

[src]

`impl Neg for f64x4`

`type Output = f64x4`

The resulting type after applying the `-`

operator.

`fn neg(self) -> f64x4`

[src]

`fn neg(self) -> f64x4`

Performs the unary `-`

operation.

`impl Sub<f64x4> for f64x4`

[src]

`impl Sub<f64x4> for f64x4`

`type Output = f64x4`

The resulting type after applying the `-`

operator.

`fn sub(self, other: f64x4) -> f64x4`

[src]

`fn sub(self, other: f64x4) -> f64x4`

Performs the `-`

operation.

`impl Sub<f64> for f64x4`

[src]

`impl Sub<f64> for f64x4`

`type Output = f64x4`

The resulting type after applying the `-`

operator.

`fn sub(self, other: f64) -> f64x4`

[src]

`fn sub(self, other: f64) -> f64x4`

Performs the `-`

operation.

`impl Sub<f64x4> for f64`

[src]

`impl Sub<f64x4> for f64`

`type Output = f64x4`

The resulting type after applying the `-`

operator.

`fn sub(self, other: f64x4) -> f64x4`

[src]

`fn sub(self, other: f64x4) -> f64x4`

Performs the `-`

operation.

`impl Clone for f64x4`

[src]

`impl Clone for f64x4`

`fn clone(&self) -> f64x4`

[src]

`fn clone(&self) -> f64x4`

Returns a copy of the value. Read more

`fn clone_from(&mut self, source: &Self)`

1.0.0[src]

`fn clone_from(&mut self, source: &Self)`

Performs copy-assignment from `source`

. Read more

`impl PartialOrd<f64x4> for f64x4`

[src]

`impl PartialOrd<f64x4> for f64x4`

`fn partial_cmp(&self, other: &f64x4) -> Option<Ordering>`

[src]

`fn partial_cmp(&self, other: &f64x4) -> Option<Ordering>`

This method returns an ordering between `self`

and `other`

values if one exists. Read more

`fn lt(&self, other: &f64x4) -> bool`

[src]

`fn lt(&self, other: &f64x4) -> bool`

This method tests less than (for `self`

and `other`

) and is used by the `<`

operator. Read more

`fn le(&self, other: &f64x4) -> bool`

[src]

`fn le(&self, other: &f64x4) -> bool`

This method tests less than or equal to (for `self`

and `other`

) and is used by the `<=`

operator. Read more

`fn gt(&self, other: &f64x4) -> bool`

[src]

`fn gt(&self, other: &f64x4) -> bool`

This method tests greater than (for `self`

and `other`

) and is used by the `>`

operator. Read more

`fn ge(&self, other: &f64x4) -> bool`

[src]

`fn ge(&self, other: &f64x4) -> bool`

This method tests greater than or equal to (for `self`

and `other`

) and is used by the `>=`

operator. Read more

`impl PartialEq<f64x4> for f64x4`

[src]

`impl PartialEq<f64x4> for f64x4`

`fn eq(&self, other: &f64x4) -> bool`

[src]

`fn eq(&self, other: &f64x4) -> bool`

This method tests for `self`

and `other`

values to be equal, and is used by `==`

. Read more

`fn ne(&self, other: &f64x4) -> bool`

[src]

`fn ne(&self, other: &f64x4) -> bool`

This method tests for `!=`

.

`impl Rem<f64> for f64x4`

[src]

`impl Rem<f64> for f64x4`

`type Output = f64x4`

The resulting type after applying the `%`

operator.

`fn rem(self, other: f64) -> f64x4`

[src]

`fn rem(self, other: f64) -> f64x4`

Performs the `%`

operation.

`impl Rem<f64x4> for f64x4`

[src]

`impl Rem<f64x4> for f64x4`

`type Output = f64x4`

The resulting type after applying the `%`

operator.

`fn rem(self, other: f64x4) -> f64x4`

[src]

`fn rem(self, other: f64x4) -> f64x4`

Performs the `%`

operation.

`impl Rem<f64x4> for f64`

[src]

`impl Rem<f64x4> for f64`

`type Output = f64x4`

The resulting type after applying the `%`

operator.

`fn rem(self, other: f64x4) -> f64x4`

[src]

`fn rem(self, other: f64x4) -> f64x4`

Performs the `%`

operation.

`impl FromBits<m16x16> for f64x4`

[src]

`impl FromBits<m16x16> for f64x4`

`impl FromBits<f64x4> for u16x16`

[src]

`impl FromBits<f64x4> for u16x16`

`impl FromBits<f64x4> for i32x8`

[src]

`impl FromBits<f64x4> for i32x8`

`impl FromBits<f32x8> for f64x4`

[src]

`impl FromBits<f32x8> for f64x4`

`impl FromBits<i16x16> for f64x4`

[src]

`impl FromBits<i16x16> for f64x4`

`impl FromBits<__m256i> for f64x4`

[src]

`impl FromBits<__m256i> for f64x4`

`impl FromBits<f64x4> for f32x8`

[src]

`impl FromBits<f64x4> for f32x8`

`impl FromBits<m64x4> for f64x4`

[src]

`impl FromBits<m64x4> for f64x4`

`impl FromBits<u8x32> for f64x4`

[src]

`impl FromBits<u8x32> for f64x4`

`impl FromBits<i8x32> for f64x4`

[src]

`impl FromBits<i8x32> for f64x4`

`impl FromBits<u32x8> for f64x4`

[src]

`impl FromBits<u32x8> for f64x4`

`impl FromBits<f64x4> for u8x32`

[src]

`impl FromBits<f64x4> for u8x32`

`impl FromBits<u16x16> for f64x4`

[src]

`impl FromBits<u16x16> for f64x4`

`impl FromBits<__m256d> for f64x4`

[src]

`impl FromBits<__m256d> for f64x4`

`impl FromBits<u64x4> for f64x4`

[src]

`impl FromBits<u64x4> for f64x4`

`impl FromBits<i32x8> for f64x4`

[src]

`impl FromBits<i32x8> for f64x4`

`impl FromBits<m32x8> for f64x4`

[src]

`impl FromBits<m32x8> for f64x4`

`impl FromBits<f64x4> for u32x8`

[src]

`impl FromBits<f64x4> for u32x8`

`impl FromBits<f64x4> for i16x16`

[src]

`impl FromBits<f64x4> for i16x16`

`impl FromBits<m8x32> for f64x4`

[src]

`impl FromBits<m8x32> for f64x4`

`impl FromBits<f64x4> for i8x32`

[src]

`impl FromBits<f64x4> for i8x32`

`impl FromBits<i64x4> for f64x4`

[src]

`impl FromBits<i64x4> for f64x4`

`impl FromBits<f64x4> for u64x4`

[src]

`impl FromBits<f64x4> for u64x4`

`impl FromBits<__m256> for f64x4`

[src]

`impl FromBits<__m256> for f64x4`

`impl FromBits<f64x4> for i64x4`

[src]

`impl FromBits<f64x4> for i64x4`

`impl Mul<f64x4> for f64x4`

[src]

`impl Mul<f64x4> for f64x4`

`type Output = f64x4`

The resulting type after applying the `*`

operator.

`fn mul(self, other: f64x4) -> f64x4`

[src]

`fn mul(self, other: f64x4) -> f64x4`

Performs the `*`

operation.

`impl Mul<f64> for f64x4`

[src]

`impl Mul<f64> for f64x4`

`type Output = f64x4`

The resulting type after applying the `*`

operator.

`fn mul(self, other: f64) -> f64x4`

[src]

`fn mul(self, other: f64) -> f64x4`

Performs the `*`

operation.

`impl Mul<f64x4> for f64`

[src]

`impl Mul<f64x4> for f64`