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

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

A 512-bit vector with 16 `f32`

lanes.

## Methods

`impl f32x16`

[src]

`impl f32x16`

`pub const fn new(`

x0: f32,

x1: f32,

x2: f32,

x3: f32,

x4: f32,

x5: f32,

x6: f32,

x7: f32,

x8: f32,

x9: f32,

x10: f32,

x11: f32,

x12: f32,

x13: f32,

x14: f32,

x15: f32

) -> f32x16

[src]

`pub const fn new(`

x0: f32,

x1: f32,

x2: f32,

x3: f32,

x4: f32,

x5: f32,

x6: f32,

x7: f32,

x8: f32,

x9: f32,

x10: f32,

x11: f32,

x12: f32,

x13: f32,

x14: f32,

x15: f32

) -> f32x16

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: f32) -> f32x16`

[src]

`pub const fn splat(value: f32) -> f32x16`

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

.

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

[src]

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

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

[src]

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

`pub fn replace(self, index: usize, new_value: f32) -> f32x16`

[src]

`pub fn replace(self, index: usize, new_value: f32) -> f32x16`

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: f32) -> f32x16`

[src]

`pub unsafe fn replace_unchecked(self, index: usize, new_value: f32) -> f32x16`

Returns a new vector where the value at `index`

is replaced by `new_value`

.

# Precondition

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

the behavior is undefined.

`impl f32x16`

[src]

`impl f32x16`

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

[src]

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

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 [f32])`

[src]

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

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

[src]

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

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 [f32])`

[src]

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

Writes the values of the vector to the `slice`

.

# Precondition

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

the behavior is undefined.

`pub fn load_aligned(slice: &[f32]) -> f32x16`

[src]

`pub fn load_aligned(slice: &[f32]) -> f32x16`

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: &[f32]) -> f32x16`

[src]

`pub fn load_unaligned(slice: &[f32]) -> f32x16`

`pub unsafe fn load_aligned_unchecked(slice: &[f32]) -> f32x16`

[src]

`pub unsafe fn load_aligned_unchecked(slice: &[f32]) -> f32x16`

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: &[f32]) -> f32x16`

[src]

`pub unsafe fn load_unaligned_unchecked(slice: &[f32]) -> f32x16`

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

.

# Precondition

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

the behavior is undefined.

`impl f32x16`

[src]

`impl f32x16`

`pub fn eq(self, other: f32x16) -> m1x16`

[src]

`pub fn eq(self, other: f32x16) -> m1x16`

Lane-wise equality comparison.

`pub fn ne(self, other: f32x16) -> m1x16`

[src]

`pub fn ne(self, other: f32x16) -> m1x16`

Lane-wise inequality comparison.

`pub fn lt(self, other: f32x16) -> m1x16`

[src]

`pub fn lt(self, other: f32x16) -> m1x16`

Lane-wise less-than comparison.

`pub fn le(self, other: f32x16) -> m1x16`

[src]

`pub fn le(self, other: f32x16) -> m1x16`

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

`pub fn gt(self, other: f32x16) -> m1x16`

[src]

`pub fn gt(self, other: f32x16) -> m1x16`

Lane-wise greater-than comparison.

`pub fn ge(self, other: f32x16) -> m1x16`

[src]

`pub fn ge(self, other: f32x16) -> m1x16`

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

`impl f32x16`

[src]

`impl f32x16`

`pub fn wrapping_sum(self) -> f32`

[src]

`pub fn wrapping_sum(self) -> f32`

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

[src]

`pub fn wrapping_product(self) -> f32`

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

[src]

`impl f32x16`

`pub fn max_element(self) -> f32`

[src]

`pub fn max_element(self) -> f32`

Largest vector element value.

`pub fn min_element(self) -> f32`

[src]

`pub fn min_element(self) -> f32`

Smallest vector element value.

`impl f32x16`

[src]

`impl f32x16`

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

[src]

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

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

[src]

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

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 RemAssign<f32x16> for f32x16`

[src]

`impl RemAssign<f32x16> for f32x16`

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

[src]

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

Performs the `%=`

operation.

`impl RemAssign<f32> for f32x16`

[src]

`impl RemAssign<f32> for f32x16`

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

[src]

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

Performs the `%=`

operation.

`impl DivAssign<f32x16> for f32x16`

[src]

`impl DivAssign<f32x16> for f32x16`

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

[src]

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

Performs the `/=`

operation.

`impl DivAssign<f32> for f32x16`

[src]

`impl DivAssign<f32> for f32x16`

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

[src]

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

Performs the `/=`

operation.

`impl MulAssign<f32> for f32x16`

[src]

`impl MulAssign<f32> for f32x16`

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

[src]

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

Performs the `*=`

operation.

`impl MulAssign<f32x16> for f32x16`

[src]

`impl MulAssign<f32x16> for f32x16`

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

[src]

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

Performs the `*=`

operation.

`impl SubAssign<f32x16> for f32x16`

[src]

`impl SubAssign<f32x16> for f32x16`

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

[src]

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

Performs the `-=`

operation.

`impl SubAssign<f32> for f32x16`

[src]

`impl SubAssign<f32> for f32x16`

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

[src]

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

Performs the `-=`

operation.

`impl From<m1x16> for f32x16`

[src]

`impl From<m1x16> for f32x16`

`impl From<i32x16> for f32x16`

[src]

`impl From<i32x16> for f32x16`

`impl From<f32x16> for u32x16`

[src]

`impl From<f32x16> for u32x16`

`impl From<m8x16> for f32x16`

[src]

`impl From<m8x16> for f32x16`

`impl From<f32x16> for u8x16`

[src]

`impl From<f32x16> for u8x16`

`impl From<i16x16> for f32x16`

[src]

`impl From<i16x16> for f32x16`

`impl From<f32x16> for i16x16`

[src]

`impl From<f32x16> for i16x16`

`impl From<u16x16> for f32x16`

[src]

`impl From<u16x16> for f32x16`

`impl From<i8x16> for f32x16`

[src]

`impl From<i8x16> for f32x16`

`impl From<m16x16> for f32x16`

[src]

`impl From<m16x16> for f32x16`

`impl From<f32x16> for i32x16`

[src]

`impl From<f32x16> for i32x16`

`impl From<f32x16> for u16x16`

[src]

`impl From<f32x16> for u16x16`

`impl From<f32x16> for i8x16`

[src]

`impl From<f32x16> for i8x16`

`impl From<u32x16> for f32x16`

[src]

`impl From<u32x16> for f32x16`

`impl From<u8x16> for f32x16`

[src]

`impl From<u8x16> for f32x16`

`impl AddAssign<f32> for f32x16`

[src]

`impl AddAssign<f32> for f32x16`

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

[src]

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

Performs the `+=`

operation.

`impl AddAssign<f32x16> for f32x16`

[src]

`impl AddAssign<f32x16> for f32x16`

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

[src]

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

Performs the `+=`

operation.

`impl Neg for f32x16`

[src]

`impl Neg for f32x16`

`type Output = f32x16`

The resulting type after applying the `-`

operator.

`fn neg(self) -> f32x16`

[src]

`fn neg(self) -> f32x16`

Performs the unary `-`

operation.

`impl Sub<f32x16> for f32x16`

[src]

`impl Sub<f32x16> for f32x16`

`type Output = f32x16`

The resulting type after applying the `-`

operator.

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

[src]

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

Performs the `-`

operation.

`impl Sub<f32> for f32x16`

[src]

`impl Sub<f32> for f32x16`

`type Output = f32x16`

The resulting type after applying the `-`

operator.

`fn sub(self, other: f32) -> f32x16`

[src]

`fn sub(self, other: f32) -> f32x16`

Performs the `-`

operation.

`impl Sub<f32x16> for f32`

[src]

`impl Sub<f32x16> for f32`

`type Output = f32x16`

The resulting type after applying the `-`

operator.

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

[src]

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

Performs the `-`

operation.

`impl Clone for f32x16`

[src]

`impl Clone for f32x16`

`fn clone(&self) -> f32x16`

[src]

`fn clone(&self) -> f32x16`

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<f32x16> for f32x16`

[src]

`impl PartialOrd<f32x16> for f32x16`

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

[src]

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

This method returns an ordering between `self`

and `other`

values if one exists. Read more

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

[src]

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

This method tests less than (for `self`

and `other`

) and is used by the `<`

operator. Read more

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

[src]

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

[src]

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

This method tests greater than (for `self`

and `other`

) and is used by the `>`

operator. Read more

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

[src]

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

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

and `other`

) and is used by the `>=`

operator. Read more

`impl Copy for f32x16`

[src]

`impl Copy for f32x16`

`impl PartialEq<f32x16> for f32x16`

[src]

`impl PartialEq<f32x16> for f32x16`

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

[src]

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

This method tests for `self`

and `other`

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

. Read more

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

[src]

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

This method tests for `!=`

.

`impl Rem<f32x16> for f32`

[src]

`impl Rem<f32x16> for f32`

`type Output = f32x16`

The resulting type after applying the `%`

operator.

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

[src]

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

Performs the `%`

operation.

`impl Rem<f32x16> for f32x16`

[src]

`impl Rem<f32x16> for f32x16`

`type Output = f32x16`

The resulting type after applying the `%`

operator.

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

[src]

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

Performs the `%`

operation.

`impl Rem<f32> for f32x16`

[src]

`impl Rem<f32> for f32x16`

`type Output = f32x16`

The resulting type after applying the `%`

operator.

`fn rem(self, other: f32) -> f32x16`

[src]

`fn rem(self, other: f32) -> f32x16`

Performs the `%`

operation.

`impl Mul<f32x16> for f32x16`

[src]

`impl Mul<f32x16> for f32x16`

`type Output = f32x16`

The resulting type after applying the `*`

operator.

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

[src]

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

Performs the `*`

operation.

`impl Mul<f32x16> for f32`

[src]

`impl Mul<f32x16> for f32`

`type Output = f32x16`

The resulting type after applying the `*`

operator.

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

[src]

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

Performs the `*`

operation.

`impl Mul<f32> for f32x16`

[src]

`impl Mul<f32> for f32x16`

`type Output = f32x16`

The resulting type after applying the `*`

operator.

`fn mul(self, other: f32) -> f32x16`

[src]

`fn mul(self, other: f32) -> f32x16`

Performs the `*`

operation.

`impl Default for f32x16`

[src]

`impl Default for f32x16`

`impl Div<f32> for f32x16`

[src]

`impl Div<f32> for f32x16`

`type Output = f32x16`

The resulting type after applying the `/`

operator.

`fn div(self, other: f32) -> f32x16`

[src]

`fn div(self, other: f32) -> f32x16`

Performs the `/`

operation.

`impl Div<f32x16> for f32`

[src]

`impl Div<f32x16> for f32`

`type Output = f32x16`

The resulting type after applying the `/`

operator.

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

[src]

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

Performs the `/`

operation.

`impl Div<f32x16> for f32x16`

[src]

`impl Div<f32x16> for f32x16`

`type Output = f32x16`

The resulting type after applying the `/`

operator.

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

[src]

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

Performs the `/`

operation.

`impl FromBits<u16x32> for f32x16`

[src]

`impl FromBits<u16x32> for f32x16`

`impl FromBits<u64x8> for f32x16`

[src]

`impl FromBits<u64x8> for f32x16`

`impl FromBits<f32x16> for i8x64`

[src]

`impl FromBits<f32x16> for i8x64`

`impl FromBits<f32x16> for u32x16`

[src]

`impl FromBits<f32x16> for u32x16`

`impl FromBits<f32x16> for u16x32`

[src]

`impl FromBits<f32x16> for u16x32`

`impl FromBits<f32x16> for i64x8`

[src]

`impl FromBits<f32x16> for i64x8`

`impl FromBits<u32x16> for f32x16`

[src]

`impl FromBits<u32x16> for f32x16`

`impl FromBits<m1x8> for f32x16`

[src]

`impl FromBits<m1x8> for f32x16`

`impl FromBits<f32x16> for i16x32`

[src]

`impl FromBits<f32x16> for i16x32`

`impl FromBits<m1x32> for f32x16`

[src]

`impl FromBits<m1x32> for f32x16`

`impl FromBits<f64x8> for f32x16`

[src]

`impl FromBits<f64x8> for f32x16`

`impl FromBits<f32x16> for i32x16`

[src]

`impl FromBits<f32x16> for i32x16`

`impl FromBits<i16x32> for f32x16`

[src]

`impl FromBits<i16x32> for f32x16`

`impl FromBits<i8x64> for f32x16`

[src]

`impl FromBits<i8x64> for f32x16`

`impl FromBits<f32x16> for f64x8`

[src]

`impl FromBits<f32x16> for f64x8`

`impl FromBits<u8x64> for f32x16`

[src]

`impl FromBits<u8x64> for f32x16`

`impl FromBits<m1x16> for f32x16`

[src]

`impl FromBits<m1x16> for f32x16`

`impl FromBits<f32x16> for u8x64`

[src]

`impl FromBits<f32x16> for u8x64`

`impl FromBits<m1x64> for f32x16`

[src]

`impl FromBits<m1x64> for f32x16`

`impl FromBits<i32x16> for f32x16`

[src]

`impl FromBits<i32x16> for f32x16`

`impl FromBits<f32x16> for u64x8`

[src]

`impl FromBits<f32x16> for u64x8`

`impl FromBits<i64x8> for f32x16`

[src]

`impl FromBits<i64x8> for f32x16`

`impl Add<f32x16> for f32x16`

[src]

`impl Add<f32x16> for f32x16`

`type Output = f32x16`

The resulting type after applying the `+`

operator.

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

[src]

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

Performs the `+`

operation.

`impl Add<f32> for f32x16`

[src]

`impl Add<f32> for f32x16`

`type Output = f32x16`

The resulting type after applying the `+`

operator.

`fn add(self, other: f32) -> f32x16`

[src]

`fn add(self, other: f32) -> f32x16`

Performs the `+`

operation.

`impl Add<f32x16> for f32`

[src]

`impl Add<f32x16> for f32`

`type Output = f32x16`

The resulting type after applying the `+`

operator.

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

[src]

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

Performs the `+`

operation.

`impl Debug for f32x16`

[src]

`impl Debug for f32x16`