Type Definition packed_simd_2::f32x16 [−][src]
type f32x16 = Simd<[f32; 16]>;
Expand description
A 512-bit vector with 16 f32
lanes.
Implementations
impl f32x16
[src]
impl 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
) -> Self
[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
) -> Self
[src]Creates a new instance with each vector elements initialized with the provided values.
pub const fn splat(value: f32) -> Self
[src]
pub const fn splat(value: f32) -> Self
[src]Constructs a new instance with each element initialized to
value
.
pub unsafe fn extract_unchecked(self, index: usize) -> f32
[src]
pub unsafe fn extract_unchecked(self, index: usize) -> f32
[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: f32) -> Self
[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: f32) -> Self
[src]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: f32) -> Self
[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: f32) -> Self
[src]Returns a new vector where the value at index
is replaced by new_value
.
Safety
If index >= Self::lanes()
the behavior is undefined.
impl f32x16
[src]
impl f32x16
[src]impl f32x16
[src]
impl f32x16
[src]pub fn sum(self) -> f32
[src]
pub fn sum(self) -> f32
[src]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))
If one of the vector element is NaN
the reduction returns
NaN
. The resulting NaN
is not required to be equal to any
of the NaN
s in the vector.
pub fn product(self) -> f32
[src]
pub fn product(self) -> f32
[src]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))
If one of the vector element is NaN
the reduction returns
NaN
. The resulting NaN
is not required to be equal to any
of the NaN
s in the vector.
impl f32x16
[src]
impl f32x16
[src]pub fn max_element(self) -> f32
[src]
pub fn max_element(self) -> f32
[src]Largest vector element value.
pub fn min_element(self) -> f32
[src]
pub fn min_element(self) -> f32
[src]Smallest vector element value.
impl f32x16
[src]
impl f32x16
[src]pub fn from_slice_aligned(slice: &[f32]) -> Self
[src]
pub fn from_slice_aligned(slice: &[f32]) -> Self
[src]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 from_slice_unaligned(slice: &[f32]) -> Self
[src]
pub fn from_slice_unaligned(slice: &[f32]) -> Self
[src]pub unsafe fn from_slice_aligned_unchecked(slice: &[f32]) -> Self
[src]
pub unsafe fn from_slice_aligned_unchecked(slice: &[f32]) -> Self
[src]Instantiates a new vector with the values of the slice
.
Safety
If slice.len() < Self::lanes()
or &slice[0]
is not aligned
to an align_of::<Self>()
boundary, the behavior is undefined.
pub unsafe fn from_slice_unaligned_unchecked(slice: &[f32]) -> Self
[src]
pub unsafe fn from_slice_unaligned_unchecked(slice: &[f32]) -> Self
[src]Instantiates a new vector with the values of the slice
.
Safety
If slice.len() < Self::lanes()
the behavior is undefined.
impl f32x16
[src]
impl f32x16
[src]pub fn write_to_slice_aligned(self, slice: &mut [f32])
[src]
pub fn write_to_slice_aligned(self, slice: &mut [f32])
[src]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 write_to_slice_unaligned(self, slice: &mut [f32])
[src]
pub fn write_to_slice_unaligned(self, slice: &mut [f32])
[src]pub unsafe fn write_to_slice_aligned_unchecked(self, slice: &mut [f32])
[src]
pub unsafe fn write_to_slice_aligned_unchecked(self, slice: &mut [f32])
[src]Writes the values of the vector to the slice
.
Safety
If slice.len() < Self::lanes()
or &slice[0]
is not
aligned to an align_of::<Self>()
boundary, the behavior is
undefined.
pub unsafe fn write_to_slice_unaligned_unchecked(self, slice: &mut [f32])
[src]
pub unsafe fn write_to_slice_unaligned_unchecked(self, slice: &mut [f32])
[src]Writes the values of the vector to the slice
.
Safety
If slice.len() < Self::lanes()
the behavior is undefined.
impl f32x16
[src]
impl f32x16
[src]pub fn shuffle1_dyn<I>(self, indices: I) -> Self where
Self: Shuffle1Dyn<Indices = I>,
[src]
pub fn shuffle1_dyn<I>(self, indices: I) -> Self where
Self: Shuffle1Dyn<Indices = I>,
[src]Shuffle vector elements according to indices
.
impl f32x16
[src]
impl f32x16
[src]pub const MIN_POSITIVE: f32x16
[src]
pub const MIN_POSITIVE: f32x16
[src]Smallest positive normal value.
pub const NEG_INFINITY: f32x16
[src]
pub const NEG_INFINITY: f32x16
[src]Negative infinity (-∞).
pub const FRAC_2_SQRT_PI: f32x16
[src]
pub const FRAC_2_SQRT_PI: f32x16
[src]2/sqrt(π)
pub const FRAC_1_SQRT_2: f32x16
[src]
pub const FRAC_1_SQRT_2: f32x16
[src]1/sqrt(2)
impl f32x16
[src]
impl f32x16
[src]impl f32x16
[src]
impl f32x16
[src]impl f32x16
[src]
impl f32x16
[src]pub fn mul_adde(self, y: Self, z: Self) -> Self
[src]
pub fn mul_adde(self, y: Self, z: Self) -> Self
[src]Fused multiply add estimate: ~= self * y + z
While fused multiply-add (fma
) has infinite precision,
mul_adde
has at worst the same precision of a multiply followed by an add.
This might be more efficient on architectures that do not have an fma
instruction.
impl f32x16
[src]
impl f32x16
[src]impl f32x16
[src]
impl f32x16
[src]impl f32x16
[src]
impl f32x16
[src]impl f32x16
[src]
impl f32x16
[src]impl f32x16
[src]
impl f32x16
[src]impl f32x16
[src]
impl f32x16
[src]Trait Implementations
impl AddAssign<Simd<[f32; 16]>> for f32x16
[src]
impl AddAssign<Simd<[f32; 16]>> for f32x16
[src]fn add_assign(&mut self, other: Self)
[src]
fn add_assign(&mut self, other: Self)
[src]Performs the +=
operation. Read more
impl AddAssign<f32> for f32x16
[src]
impl AddAssign<f32> for f32x16
[src]fn add_assign(&mut self, other: f32)
[src]
fn add_assign(&mut self, other: f32)
[src]Performs the +=
operation. Read more
impl DivAssign<Simd<[f32; 16]>> for f32x16
[src]
impl DivAssign<Simd<[f32; 16]>> for f32x16
[src]fn div_assign(&mut self, other: Self)
[src]
fn div_assign(&mut self, other: Self)
[src]Performs the /=
operation. Read more
impl DivAssign<f32> for f32x16
[src]
impl DivAssign<f32> for f32x16
[src]fn div_assign(&mut self, other: f32)
[src]
fn div_assign(&mut self, other: f32)
[src]Performs the /=
operation. Read more
impl MulAssign<Simd<[f32; 16]>> for f32x16
[src]
impl MulAssign<Simd<[f32; 16]>> for f32x16
[src]fn mul_assign(&mut self, other: Self)
[src]
fn mul_assign(&mut self, other: Self)
[src]Performs the *=
operation. Read more
impl MulAssign<f32> for f32x16
[src]
impl MulAssign<f32> for f32x16
[src]fn mul_assign(&mut self, other: f32)
[src]
fn mul_assign(&mut self, other: f32)
[src]Performs the *=
operation. Read more
impl RemAssign<Simd<[f32; 16]>> for f32x16
[src]
impl RemAssign<Simd<[f32; 16]>> for f32x16
[src]fn rem_assign(&mut self, other: Self)
[src]
fn rem_assign(&mut self, other: Self)
[src]Performs the %=
operation. Read more
impl RemAssign<f32> for f32x16
[src]
impl RemAssign<f32> for f32x16
[src]fn rem_assign(&mut self, other: f32)
[src]
fn rem_assign(&mut self, other: f32)
[src]Performs the %=
operation. Read more
impl SubAssign<Simd<[f32; 16]>> for f32x16
[src]
impl SubAssign<Simd<[f32; 16]>> for f32x16
[src]fn sub_assign(&mut self, other: Self)
[src]
fn sub_assign(&mut self, other: Self)
[src]Performs the -=
operation. Read more
impl SubAssign<f32> for f32x16
[src]
impl SubAssign<f32> for f32x16
[src]fn sub_assign(&mut self, other: f32)
[src]
fn sub_assign(&mut self, other: f32)
[src]Performs the -=
operation. Read more