#[repr(C, align(32))]pub struct f32x8 { /* private fields */ }
Implementations§
source§impl f32x8
impl f32x8
pub const ONE: f32x8 = _
pub const HALF: f32x8 = _
pub const ZERO: f32x8 = _
pub const E: f32x8 = _
pub const FRAC_1_PI: f32x8 = _
pub const FRAC_2_PI: f32x8 = _
pub const FRAC_2_SQRT_PI: f32x8 = _
pub const FRAC_1_SQRT_2: f32x8 = _
pub const FRAC_PI_2: f32x8 = _
pub const FRAC_PI_3: f32x8 = _
pub const FRAC_PI_4: f32x8 = _
pub const FRAC_PI_6: f32x8 = _
pub const FRAC_PI_8: f32x8 = _
pub const LN_2: f32x8 = _
pub const LN_10: f32x8 = _
pub const LOG2_E: f32x8 = _
pub const LOG10_E: f32x8 = _
pub const LOG10_2: f32x8 = _
pub const LOG2_10: f32x8 = _
pub const PI: f32x8 = _
pub const SQRT_2: f32x8 = _
pub const TAU: f32x8 = _
source§impl f32x8
impl f32x8
pub fn new(array: [f32; 8]) -> Self
pub fn blend(self, t: Self, f: Self) -> Self
pub fn abs(self) -> Self
sourcepub fn fast_max(self, rhs: Self) -> Self
pub fn fast_max(self, rhs: Self) -> Self
Calculates the lanewise maximum of both vectors. This is a faster
implementation than max
, but it doesn’t specify any behavior if NaNs are
involved.
sourcepub fn max(self, rhs: Self) -> Self
pub fn max(self, rhs: Self) -> Self
Calculates the lanewise maximum of both vectors. This doesn’t match
IEEE-754 and instead is defined as self < rhs ? rhs : self
.
sourcepub fn fast_min(self, rhs: Self) -> Self
pub fn fast_min(self, rhs: Self) -> Self
Calculates the lanewise minimum of both vectors. This is a faster
implementation than min
, but it doesn’t specify any behavior if NaNs are
involved.
sourcepub fn min(self, rhs: Self) -> Self
pub fn min(self, rhs: Self) -> Self
Calculates the lanewise minimum of both vectors. If either lane is NaN,
the other lane gets chosen. Use fast_min
for a faster implementation
that doesn’t handle NaNs.
pub fn is_nan(self) -> Self
pub fn is_finite(self) -> Self
pub fn is_inf(self) -> Self
pub fn round(self) -> Self
sourcepub fn fast_round_int(self) -> i32x8
pub fn fast_round_int(self) -> i32x8
Rounds each lane into an integer. This is a faster implementation than
round_int
, but it doesn’t handle out of range values or NaNs. For those
values you get implementation defined behavior.
sourcepub fn round_int(self) -> i32x8
pub fn round_int(self) -> i32x8
Rounds each lane into an integer. This saturates out of range values and
turns NaNs into 0. Use fast_round_int
for a faster implementation that
doesn’t handle out of range values or NaNs.
sourcepub fn fast_trunc_int(self) -> i32x8
pub fn fast_trunc_int(self) -> i32x8
Truncates each lane into an integer. This is a faster implementation than
trunc_int
, but it doesn’t handle out of range values or NaNs. For those
values you get implementation defined behavior.
sourcepub fn trunc_int(self) -> i32x8
pub fn trunc_int(self) -> i32x8
Truncates each lane into an integer. This saturates out of range values
and turns NaNs into 0. Use fast_trunc_int
for a faster implementation
that doesn’t handle out of range values or NaNs.
pub fn mul_add(self, m: Self, a: Self) -> Self
pub fn mul_sub(self, m: Self, a: Self) -> Self
pub fn mul_neg_add(self, m: Self, a: Self) -> Self
pub fn mul_neg_sub(self, m: Self, a: Self) -> Self
pub fn flip_signs(self, signs: Self) -> Self
pub fn copysign(self, sign: Self) -> Self
pub fn asin_acos(self) -> (Self, Self)
pub fn asin(self) -> Self
pub fn acos(self) -> Self
pub fn atan(self) -> Self
pub fn atan2(self, x: Self) -> Self
pub fn sin_cos(self) -> (Self, Self)
pub fn sin(self) -> Self
pub fn cos(self) -> Self
pub fn tan(self) -> Self
pub fn to_degrees(self) -> Self
pub fn to_radians(self) -> Self
pub fn recip(self) -> Self
pub fn recip_sqrt(self) -> Self
pub fn sqrt(self) -> Self
pub fn move_mask(self) -> i32
pub fn any(self) -> bool
pub fn all(self) -> bool
pub fn none(self) -> bool
pub fn sign_bit(self) -> Self
sourcepub fn reduce_add(self) -> f32
pub fn reduce_add(self) -> f32
horizontal add of all the elements of the vector
pub fn log2(self) -> Self
pub fn log10(self) -> Self
pub fn pow_f32x8(self, y: Self) -> Self
pub fn powf(self, y: f32) -> Self
sourcepub fn transpose(data: [f32x8; 8]) -> [f32x8; 8]
pub fn transpose(data: [f32x8; 8]) -> [f32x8; 8]
Transpose matrix of 8x8 f32
matrix. Currently only accelerated on AVX.
pub fn to_array(self) -> [f32; 8]
pub fn as_array_ref(&self) -> &[f32; 8]
pub fn as_array_mut(&mut self) -> &mut [f32; 8]
pub fn from_i32x8(v: i32x8) -> Self
Trait Implementations§
source§impl AddAssign<&f32x8> for f32x8
impl AddAssign<&f32x8> for f32x8
source§fn add_assign(&mut self, rhs: &Self)
fn add_assign(&mut self, rhs: &Self)
+=
operation. Read moresource§impl AddAssign for f32x8
impl AddAssign for f32x8
source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+=
operation. Read moresource§impl BitAndAssign<&f32x8> for f32x8
impl BitAndAssign<&f32x8> for f32x8
source§fn bitand_assign(&mut self, rhs: &Self)
fn bitand_assign(&mut self, rhs: &Self)
&=
operation. Read moresource§impl BitAndAssign for f32x8
impl BitAndAssign for f32x8
source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&=
operation. Read moresource§impl BitOrAssign<&f32x8> for f32x8
impl BitOrAssign<&f32x8> for f32x8
source§fn bitor_assign(&mut self, rhs: &Self)
fn bitor_assign(&mut self, rhs: &Self)
|=
operation. Read moresource§impl BitOrAssign for f32x8
impl BitOrAssign for f32x8
source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|=
operation. Read moresource§impl BitXorAssign<&f32x8> for f32x8
impl BitXorAssign<&f32x8> for f32x8
source§fn bitxor_assign(&mut self, rhs: &Self)
fn bitxor_assign(&mut self, rhs: &Self)
^=
operation. Read moresource§impl BitXorAssign for f32x8
impl BitXorAssign for f32x8
source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^=
operation. Read moresource§impl DivAssign<&f32x8> for f32x8
impl DivAssign<&f32x8> for f32x8
source§fn div_assign(&mut self, rhs: &Self)
fn div_assign(&mut self, rhs: &Self)
/=
operation. Read moresource§impl DivAssign for f32x8
impl DivAssign for f32x8
source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
/=
operation. Read moresource§impl MulAssign<&f32x8> for f32x8
impl MulAssign<&f32x8> for f32x8
source§fn mul_assign(&mut self, rhs: &Self)
fn mul_assign(&mut self, rhs: &Self)
*=
operation. Read moresource§impl MulAssign for f32x8
impl MulAssign for f32x8
source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*=
operation. Read moresource§impl SubAssign<&f32x8> for f32x8
impl SubAssign<&f32x8> for f32x8
source§fn sub_assign(&mut self, rhs: &Self)
fn sub_assign(&mut self, rhs: &Self)
-=
operation. Read moresource§impl SubAssign for f32x8
impl SubAssign for f32x8
source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-=
operation. Read moreimpl Copy for f32x8
impl Pod for f32x8
impl StructuralPartialEq for f32x8
Auto Trait Implementations§
impl Freeze for f32x8
impl RefUnwindSafe for f32x8
impl Send for f32x8
impl Sync for f32x8
impl Unpin for f32x8
impl UnwindSafe for f32x8
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
source§type Bits = T
type Bits = T
Self
must have the same layout as the specified Bits
except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern
.source§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
bits
as &Self
.source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)