# Struct core::simd::f64x2 [−][src]

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

A 128-bit vector with 2 `f64`

lanes.

## Methods

`impl f64x2`

[src]

`impl f64x2`

`pub const fn new(x0: f64, x1: f64) -> Self`

[src]

`pub const fn new(x0: f64, x1: f64) -> Self`

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) -> Self`

[src]

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

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`

`pub fn replace(self, index: usize, new_value: f64) -> Self`

[src]

`pub fn replace(self, index: usize, new_value: f64) -> Self`

Returns a new vector where the value at `index`

is replaced by `new_value`

.

# Panics

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

.

`pub unsafe fn replace_unchecked(self, index: usize, new_value: f64) -> Self`

[src]

`pub unsafe fn replace_unchecked(self, index: usize, new_value: f64) -> Self`

Returns a new vector where the value at `index`

is replaced by `new_value`

.

# Precondition

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

the behavior is undefined.

`impl f64x2`

[src]

`impl f64x2`

`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]) -> Self`

[src]

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

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]) -> Self`

[src]

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

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

[src]

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

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]) -> Self`

[src]

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

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

.

# Precondition

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

the behavior is undefined.

`impl f64x2`

[src]

`impl f64x2`

`pub fn eq(self, other: f64x2) -> m64x2`

[src]

`pub fn eq(self, other: f64x2) -> m64x2`

Lane-wise equality comparison.

`pub fn ne(self, other: f64x2) -> m64x2`

[src]

`pub fn ne(self, other: f64x2) -> m64x2`

Lane-wise inequality comparison.

`pub fn lt(self, other: f64x2) -> m64x2`

[src]

`pub fn lt(self, other: f64x2) -> m64x2`

Lane-wise less-than comparison.

`pub fn le(self, other: f64x2) -> m64x2`

[src]

`pub fn le(self, other: f64x2) -> m64x2`

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

`pub fn gt(self, other: f64x2) -> m64x2`

[src]

`pub fn gt(self, other: f64x2) -> m64x2`

Lane-wise greater-than comparison.

`pub fn ge(self, other: f64x2) -> m64x2`

[src]

`pub fn ge(self, other: f64x2) -> m64x2`

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

`impl f64x2`

[src]

`impl f64x2`

`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 f64x2`

[src]

`impl f64x2`

`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 f64x2`

[src]

`impl f64x2`

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

[src]

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

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: Self) -> Self`

[src]

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

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 Copy for f64x2`

[src]

`impl Copy for f64x2`

`impl Clone for f64x2`

[src]

`impl Clone for f64x2`

`fn clone(&self) -> f64x2`

[src]

`fn clone(&self) -> f64x2`

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 Debug for f64x2`

[src]

`impl Debug for f64x2`

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

[src]

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

Formats the value using the given formatter. Read more

`impl PartialOrd for f64x2`

[src]

`impl PartialOrd for f64x2`

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

[src]

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

This method returns an ordering between `self`

and `other`

values if one exists. Read more

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

[src]

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

This method tests less than (for `self`

and `other`

) and is used by the `<`

operator. Read more

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

[src]

`fn le(&self, other: &f64x2) -> 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: &f64x2) -> bool`

[src]

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

This method tests greater than (for `self`

and `other`

) and is used by the `>`

operator. Read more

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

[src]

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

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

and `other`

) and is used by the `>=`

operator. Read more

`impl Add for f64x2`

[src]

`impl Add for f64x2`

`type Output = Self`

The resulting type after applying the `+`

operator.

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

[src]

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

Performs the `+`

operation.

`impl Sub for f64x2`

[src]

`impl Sub for f64x2`

`type Output = Self`

The resulting type after applying the `-`

operator.

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

[src]

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

Performs the `-`

operation.

`impl Mul for f64x2`

[src]

`impl Mul for f64x2`

`type Output = Self`

The resulting type after applying the `*`

operator.

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

[src]

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

Performs the `*`

operation.

`impl Div for f64x2`

[src]

`impl Div for f64x2`

`type Output = Self`

The resulting type after applying the `/`

operator.

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

[src]

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

Performs the `/`

operation.

`impl Rem for f64x2`

[src]

`impl Rem for f64x2`

`type Output = Self`

The resulting type after applying the `%`

operator.

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

[src]

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

Performs the `%`

operation.

`impl AddAssign for f64x2`

[src]

`impl AddAssign for f64x2`

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

[src]

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

Performs the `+=`

operation.

`impl SubAssign for f64x2`

[src]

`impl SubAssign for f64x2`

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

[src]

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

Performs the `-=`

operation.

`impl MulAssign for f64x2`

[src]

`impl MulAssign for f64x2`

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

[src]

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

Performs the `*=`

operation.

`impl DivAssign for f64x2`

[src]

`impl DivAssign for f64x2`

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

[src]

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

Performs the `/=`

operation.

`impl RemAssign for f64x2`

[src]

`impl RemAssign for f64x2`

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

[src]

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

Performs the `%=`

operation.

`impl Add<f64> for f64x2`

[src]

`impl Add<f64> for f64x2`

`type Output = Self`

The resulting type after applying the `+`

operator.

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

[src]

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

Performs the `+`

operation.

`impl Add<f64x2> for f64`

[src]

`impl Add<f64x2> for f64`

`type Output = f64x2`

The resulting type after applying the `+`

operator.

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

[src]

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

Performs the `+`

operation.

`impl Sub<f64> for f64x2`

[src]

`impl Sub<f64> for f64x2`

`type Output = Self`

The resulting type after applying the `-`

operator.

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

[src]

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

Performs the `-`

operation.

`impl Sub<f64x2> for f64`

[src]

`impl Sub<f64x2> for f64`

`type Output = f64x2`

The resulting type after applying the `-`

operator.

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

[src]

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

Performs the `-`

operation.

`impl Mul<f64> for f64x2`

[src]

`impl Mul<f64> for f64x2`

`type Output = Self`

The resulting type after applying the `*`

operator.

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

[src]

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

Performs the `*`

operation.

`impl Mul<f64x2> for f64`

[src]

`impl Mul<f64x2> for f64`

`type Output = f64x2`

The resulting type after applying the `*`

operator.

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

[src]

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

Performs the `*`

operation.

`impl Div<f64> for f64x2`

[src]

`impl Div<f64> for f64x2`

`type Output = Self`

The resulting type after applying the `/`

operator.

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

[src]

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

Performs the `/`

operation.

`impl Div<f64x2> for f64`

[src]

`impl Div<f64x2> for f64`

`type Output = f64x2`

The resulting type after applying the `/`

operator.

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

[src]

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

Performs the `/`

operation.

`impl Rem<f64> for f64x2`

[src]

`impl Rem<f64> for f64x2`

`type Output = Self`

The resulting type after applying the `%`

operator.

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

[src]

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

Performs the `%`

operation.

`impl Rem<f64x2> for f64`

[src]

`impl Rem<f64x2> for f64`

`type Output = f64x2`

The resulting type after applying the `%`

operator.

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

[src]

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

Performs the `%`

operation.

`impl AddAssign<f64> for f64x2`

[src]

`impl AddAssign<f64> for f64x2`

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

[src]

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

Performs the `+=`

operation.

`impl SubAssign<f64> for f64x2`

[src]

`impl SubAssign<f64> for f64x2`

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

[src]

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

Performs the `-=`

operation.

`impl MulAssign<f64> for f64x2`

[src]

`impl MulAssign<f64> for f64x2`

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

[src]

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

Performs the `*=`

operation.

`impl DivAssign<f64> for f64x2`

[src]

`impl DivAssign<f64> for f64x2`

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

[src]

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

Performs the `/=`

operation.

`impl RemAssign<f64> for f64x2`

[src]

`impl RemAssign<f64> for f64x2`

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

[src]

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

Performs the `%=`

operation.

`impl Neg for f64x2`

[src]

`impl Neg for f64x2`

`type Output = Self`

The resulting type after applying the `-`

operator.

`fn neg(self) -> Self`

[src]

`fn neg(self) -> Self`

Performs the unary `-`

operation.

`impl PartialEq<f64x2> for f64x2`

[src]

`impl PartialEq<f64x2> for f64x2`

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

[src]

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

This method tests for `self`

and `other`

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

. Read more

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

[src]

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

This method tests for `!=`

.

`impl Default for f64x2`

[src]

`impl Default for f64x2`

`impl FromBits<f64x2> for u64x2`

[src]

`impl FromBits<f64x2> for u64x2`

`impl FromBits<f64x2> for i64x2`

[src]

`impl FromBits<f64x2> for i64x2`

`impl FromBits<i64x2> for f64x2`

[src]

`impl FromBits<i64x2> for f64x2`

`impl FromBits<u64x2> for f64x2`

[src]

`impl FromBits<u64x2> for f64x2`

`impl FromBits<m64x2> for f64x2`

[src]

`impl FromBits<m64x2> for f64x2`

`impl FromBits<u32x4> for f64x2`

[src]

`impl FromBits<u32x4> for f64x2`

`impl FromBits<i32x4> for f64x2`

[src]

`impl FromBits<i32x4> for f64x2`

`impl FromBits<f32x4> for f64x2`

[src]

`impl FromBits<f32x4> for f64x2`

`impl FromBits<m32x4> for f64x2`

[src]

`impl FromBits<m32x4> for f64x2`

`impl FromBits<u16x8> for f64x2`

[src]

`impl FromBits<u16x8> for f64x2`

`impl FromBits<i16x8> for f64x2`

[src]

`impl FromBits<i16x8> for f64x2`

`impl FromBits<m16x8> for f64x2`

[src]

`impl FromBits<m16x8> for f64x2`

`impl FromBits<u8x16> for f64x2`

[src]

`impl FromBits<u8x16> for f64x2`

`impl FromBits<i8x16> for f64x2`

[src]

`impl FromBits<i8x16> for f64x2`

`impl FromBits<m8x16> for f64x2`

[src]

`impl FromBits<m8x16> for f64x2`

`impl FromBits<__m128> for f64x2`

[src]

`impl FromBits<__m128> for f64x2`

`impl FromBits<__m128i> for f64x2`

[src]

`impl FromBits<__m128i> for f64x2`

`impl FromBits<__m128d> for f64x2`

[src]

`impl FromBits<__m128d> for f64x2`

`impl FromBits<f64x2> for u32x4`

[src]

`impl FromBits<f64x2> for u32x4`

`impl FromBits<f64x2> for i32x4`

[src]

`impl FromBits<f64x2> for i32x4`

`impl FromBits<f64x2> for f32x4`

[src]

`impl FromBits<f64x2> for f32x4`

`impl FromBits<f64x2> for u16x8`

[src]

`impl FromBits<f64x2> for u16x8`

`impl FromBits<f64x2> for i16x8`

[src]

`impl FromBits<f64x2> for i16x8`

`impl FromBits<f64x2> for u8x16`

[src]

`impl FromBits<f64x2> for u8x16`

`impl FromBits<f64x2> for i8x16`

[src]

`impl FromBits<f64x2> for i8x16`

`impl From<f32x2> for f64x2`

[src]

`impl From<f32x2> for f64x2`

`impl From<u64x2> for f64x2`

[src]

`impl From<u64x2> for f64x2`

`impl From<i64x2> for f64x2`

[src]

`impl From<i64x2> for f64x2`

`impl From<m64x2> for f64x2`

[src]

`impl From<m64x2> for f64x2`

`impl From<u32x2> for f64x2`

[src]

`impl From<u32x2> for f64x2`

`impl From<i32x2> for f64x2`

[src]

`impl From<i32x2> for f64x2`

`impl From<m32x2> for f64x2`

[src]

`impl From<m32x2> for f64x2`

`impl From<u16x2> for f64x2`

[src]

`impl From<u16x2> for f64x2`

`impl From<i16x2> for f64x2`

[src]

`impl From<i16x2> for f64x2`

`impl From<m16x2> for f64x2`

[src]

`impl From<m16x2> for f64x2`

`impl From<u8x2> for f64x2`

[src]

`impl From<u8x2> for f64x2`

`impl From<i8x2> for f64x2`

[src]

`impl From<i8x2> for f64x2`

`impl From<m8x2> for f64x2`

[src]

`impl From<m8x2> for f64x2`

`impl From<f64x2> for u64x2`

[src]

`impl From<f64x2> for u64x2`

`impl From<f64x2> for i64x2`

[src]

`impl From<f64x2> for i64x2`

`impl From<f64x2> for i8x2`

[src]

`impl From<f64x2> for i8x2`

`impl From<f64x2> for u8x2`

[src]

`impl From<f64x2> for u8x2`

`impl From<f64x2> for i16x2`

[src]

`impl From<f64x2> for i16x2`

`impl From<f64x2> for u16x2`

[src]

`impl From<f64x2> for u16x2`

`impl From<f64x2> for f32x2`

[src]

`impl From<f64x2> for f32x2`

`impl From<f64x2> for u32x2`

[src]

`impl From<f64x2> for u32x2`

`impl From<f64x2> for i32x2`

[src]

`impl From<f64x2> for i32x2`

`impl FromBits<f64x2> for __m128`

[src]

`impl FromBits<f64x2> for __m128`

`impl FromBits<f64x2> for __m128i`

[src]

`impl FromBits<f64x2> for __m128i`

`impl FromBits<f64x2> for __m128d`

[src]

`impl FromBits<f64x2> for __m128d`

`impl FromBits<f64x2> for float64x2_t`

[src]

`impl FromBits<f64x2> for float64x2_t`

`impl FromBits<f64x2> for int8x16_t`

[src]

`impl FromBits<f64x2> for int8x16_t`

`impl FromBits<f64x2> for uint8x16_t`

[src]

`impl FromBits<f64x2> for uint8x16_t`

`impl FromBits<f64x2> for poly8x16_t`

[src]

`impl FromBits<f64x2> for poly8x16_t`

`impl FromBits<f64x2> for int16x8_t`

[src]

`impl FromBits<f64x2> for int16x8_t`

`impl FromBits<f64x2> for uint16x8_t`

[src]

`impl FromBits<f64x2> for uint16x8_t`

`impl FromBits<f64x2> for poly16x8_t`

[src]

`impl FromBits<f64x2> for poly16x8_t`

`impl FromBits<f64x2> for int32x4_t`

[src]

`impl FromBits<f64x2> for int32x4_t`

`impl FromBits<f64x2> for uint32x4_t`

[src]

`impl FromBits<f64x2> for uint32x4_t`

`impl FromBits<f64x2> for float32x4_t`

[src]

`impl FromBits<f64x2> for float32x4_t`

`impl FromBits<f64x2> for int64x2_t`

[src]

`impl FromBits<f64x2> for int64x2_t`

`impl FromBits<f64x2> for uint64x2_t`

[src]

`impl FromBits<f64x2> for uint64x2_t`