Type Definition packed_simd_2::f32x8 [−][src]
type f32x8 = Simd<[f32; 8]>;
Expand description
A 256-bit vector with 8 f32 lanes.
Implementations
impl f32x8[src]
impl f32x8[src]pub const fn new(
x0: f32,
x1: f32,
x2: f32,
x3: f32,
x4: f32,
x5: f32,
x6: f32,
x7: f32
) -> Self[src]
pub const fn new(
x0: f32,
x1: f32,
x2: f32,
x3: f32,
x4: f32,
x5: f32,
x6: f32,
x7: 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 f32x8[src]
impl f32x8[src]impl f32x8[src]
impl f32x8[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 NaNs 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 NaNs in the vector.
impl f32x8[src]
impl f32x8[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 f32x8[src]
impl f32x8[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 f32x8[src]
impl f32x8[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 f32x8[src]
impl f32x8[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 f32x8[src]
impl f32x8[src]pub const MIN_POSITIVE: f32x8[src]
pub const MIN_POSITIVE: f32x8[src]Smallest positive normal value.
pub const NEG_INFINITY: f32x8[src]
pub const NEG_INFINITY: f32x8[src]Negative infinity (-∞).
pub const FRAC_2_SQRT_PI: f32x8[src]
pub const FRAC_2_SQRT_PI: f32x8[src]2/sqrt(π)
pub const FRAC_1_SQRT_2: f32x8[src]
pub const FRAC_1_SQRT_2: f32x8[src]1/sqrt(2)
impl f32x8[src]
impl f32x8[src]impl f32x8[src]
impl f32x8[src]impl f32x8[src]
impl f32x8[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 f32x8[src]
impl f32x8[src]impl f32x8[src]
impl f32x8[src]impl f32x8[src]
impl f32x8[src]impl f32x8[src]
impl f32x8[src]impl f32x8[src]
impl f32x8[src]impl f32x8[src]
impl f32x8[src]Trait Implementations
impl AddAssign<Simd<[f32; 8]>> for f32x8[src]
impl AddAssign<Simd<[f32; 8]>> for f32x8[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 f32x8[src]
impl AddAssign<f32> for f32x8[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; 8]>> for f32x8[src]
impl DivAssign<Simd<[f32; 8]>> for f32x8[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 f32x8[src]
impl DivAssign<f32> for f32x8[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; 8]>> for f32x8[src]
impl MulAssign<Simd<[f32; 8]>> for f32x8[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 f32x8[src]
impl MulAssign<f32> for f32x8[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; 8]>> for f32x8[src]
impl RemAssign<Simd<[f32; 8]>> for f32x8[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 f32x8[src]
impl RemAssign<f32> for f32x8[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; 8]>> for f32x8[src]
impl SubAssign<Simd<[f32; 8]>> for f32x8[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 f32x8[src]
impl SubAssign<f32> for f32x8[src]fn sub_assign(&mut self, other: f32)[src]
fn sub_assign(&mut self, other: f32)[src]Performs the -= operation. Read more