[−][src]Struct wide::f32x4
Four f32
values packed together.
Methods
impl f32x4
[src]
Wide Methods
pub fn andnot(self, rhs: Self) -> Self
[src]
Bitwise (!self) & rhs
pub fn is_nan(self) -> Self
[src]
Lanewise "is the value a NaN value?"
pub fn is_ordinary(self) -> Self
[src]
Lanewise "is the value a non-NaN value?"
pub fn merge(self, a: Self, b: Self) -> Self
[src]
Use self
(a boolish value) to merge a
and b
.
For each lane index, if the self
lane is "true" then the a
value will
be used in the output, otherwise the b
value will be used in the output.
If sse4.1
is enabled, then "true" only checks the sign bit. With less
features enabled the entire bit pattern of the lane will matter. This is
not normally a problem, because the comparison methods naturally return
all 1s or all 0s anyway.
pub fn move_mask(self) -> i32
[src]
use wide::f32x4; let a = f32x4::new(1.0, 2.0, 3.0, 4.0); let b = f32x4::from(2.5); assert_eq!(a.cmp_lt(b).move_mask(), 0b0011);
pub fn cmp_eq(self, rhs: Self) -> Self
[src]
Lanewise ==
pub fn cmp_ge(self, rhs: Self) -> Self
[src]
Lanewise >=
pub fn cmp_gt(self, rhs: Self) -> Self
[src]
Lanewise >
pub fn cmp_le(self, rhs: Self) -> Self
[src]
Lanewise <=
pub fn cmp_lt(self, rhs: Self) -> Self
[src]
Lanewise <
pub fn cmp_nan(self, rhs: Self) -> Self
[src]
Lanewise "self.is_nan() | other.is_nan()"
pub fn cmp_ne(self, rhs: Self) -> Self
[src]
Lanewise !=
pub fn cmp_nge(self, rhs: Self) -> Self
[src]
Lanewise !(a >= b)
If you call this method it triggers Third Impact
pub fn cmp_ngt(self, rhs: Self) -> Self
[src]
Lanewise !(a > b)
pub fn cmp_nle(self, rhs: Self) -> Self
[src]
Lanewise !(a <= b)
pub fn cmp_nlt(self, rhs: Self) -> Self
[src]
Lanewise !(a < b)
pub fn ceil(self) -> Self
[src]
Lanewise ceiling (next larger whole number)
pub fn floor(self) -> Self
[src]
Lanewise floor (next smaller whole number)
pub fn abs(self) -> Self
[src]
Lanewise absolute value
pub fn cos(self) -> Self
[src]
Lanewise cosine
pub fn round(self) -> Self
[src]
Lanewise round to nearest whole number.
pub fn sin(self) -> Self
[src]
Lanewise sine.
"We called it 'Sin'."
pub fn mul_add(self, b: Self, c: Self) -> Self
[src]
Performs a "fused multiply-add", (self * b) + c
This is only different from a normal mul and then add if the fma
target_feature is enabled during the build. This is not on by default,
you must enable it yourself. To be clear, this is not a cargo feature,
this is a CPU feature. Read the
guide
for info on how to enable CPU features if you haven't done that before.
pub fn negated_mul_add(self, b: Self, c: Self) -> Self
[src]
Negated "mul_add", c - (self * b)
.
Fused if fma
feature is enabled, see (mul_add)f32x4::mul_add.
pub fn recip(self) -> Self
[src]
Lanewise reciprocal, 1.0/lane
pub fn max(self, b: Self) -> Self
[src]
Lanewise maximum
pub fn min(self, b: Self) -> Self
[src]
Lanewise minimum
pub fn round_i32(self) -> i32x4
[src]
Lanewise round and get i32x4
output
pub fn is_finite(self) -> f32x4
[src]
If it's some finite value.
- True for normal, denormal, and zero.
- False for +/- INF, NaN
- boolish
pub fn cast_i32x4(self) -> i32x4
[src]
Cast directly to i32x4
(no change in bit pattern).
pub fn copysign(self, b: Self) -> Self
[src]
Copy the sign of b
onto the value of self
.
pub fn clamp(self, min: Self, max: Self) -> Self
[src]
Lanewise clamp to a per-lane min and max.
pub fn signum(self) -> Self
[src]
Lanewise sign-number (-1.0 if < 0.0, otherwise 1.0)
pub fn tan(self) -> Self
[src]
Lanewise tangent
pub fn sin_cos(self) -> (Self, Self)
[src]
Sine and Cosine as a single operation.
pub fn to_degrees(self) -> Self
[src]
Lanewise radians -> degrees.
pub fn to_radians(self) -> Self
[src]
Lanewise degrees -> radians.
pub fn fract(self) -> Self
[src]
Lanewise fractional part.
pub fn sqrt(self) -> Self
[src]
Lanewise sqrt
impl f32x4
[src]
pub const EPSILON: f32x4
[src]
Machine epsilon value for f32
.
pub const INFINITY: f32x4
[src]
Positive Infinity (∞).
pub const MAX: f32x4
[src]
Largest finite f32
value.
pub const MIN: f32x4
[src]
Smallest finite f32
value.
pub const MIN_POSITIVE: f32x4
[src]
Smallest positive normal f32
value.
pub const NAN: f32x4
[src]
Not a Number (NaN).
Reminder: This is one possible NaN value, but there are many NaN bit
patterns within the f32
space.
pub const NEG_INFINITY: f32x4
[src]
Negative infinity (-∞).
pub const E: f32x4
[src]
Euler's number (e)
pub const FRAC_1_PI: f32x4
[src]
1/π
pub const FRAC_2_PI: f32x4
[src]
2/π
pub const FRAC_2_SQRT_PI: f32x4
[src]
2/sqrt(π)
pub const FRAC_1_SQRT_2: f32x4
[src]
1/sqrt(2)
pub const FRAC_PI_2: f32x4
[src]
π/2
pub const FRAC_PI_3: f32x4
[src]
π/3
pub const FRAC_PI_4: f32x4
[src]
π/4
pub const FRAC_PI_6: f32x4
[src]
π/6
pub const FRAC_PI_8: f32x4
[src]
π/8
pub const LN_2: f32x4
[src]
ln(2)
pub const LN_10: f32x4
[src]
ln(10)
pub const LOG2_E: f32x4
[src]
log2(e)
pub const LOG10_E: f32x4
[src]
log10(e)
pub const PI: f32x4
[src]
Archimedes' constant (π)
pub const SQRT_2: f32x4
[src]
sqrt(2)
pub const ALL_BITS_ACTIVE: f32x4
[src]
All bits active.
pub const ALL_EXCEPT_SIGN: f32x4
[src]
All bits active.
pub const ZERO: f32x4
[src]
0.0
pub const NEGATIVE_ZERO: f32x4
[src]
-0.0
pub const HALF: f32x4
[src]
0.5
pub const ONE: f32x4
[src]
1.0
pub const NEGATIVE_ONE: f32x4
[src]
1.0
pub const TWO_PI: f32x4
[src]
2.0 * π, the number of radians in a circle.
impl f32x4
[src]
impl f32x4
[src]
pub fn exp2(self) -> Self
[src]
pub fn exp(self) -> Self
[src]
pub fn log10(self) -> Self
[src]
pub fn log2(self) -> Self
[src]
pub fn trunc(self) -> Self
[src]
Truncate the fractional part.
pub fn ln(self) -> Self
[src]
pub fn powf(self, b: Self) -> Self
[src]
pub fn powi(self, b: [i32; 4]) -> Self
[src]
pub fn classify(self) -> [FpCategory; 4]
[src]
pub fn acos(self) -> Self
[src]
pub fn acosh(self) -> Self
[src]
pub fn asin(self) -> Self
[src]
pub fn asinh(self) -> Self
[src]
pub fn atan(self) -> Self
[src]
pub fn atanh(self) -> Self
[src]
pub fn cbrt(self) -> Self
[src]
pub fn cosh(self) -> Self
[src]
pub fn exp_m1(self) -> Self
[src]
pub fn ln_1p(self) -> Self
[src]
pub fn log(self, b: Self) -> Self
[src]
pub fn sinh(self) -> Self
[src]
pub fn tanh(self) -> Self
[src]
pub fn atan2(self, b: Self) -> Self
[src]
pub fn hypot(self, b: Self) -> Self
[src]
Trait Implementations
impl AsMut<[f32; 4]> for f32x4
[src]
impl AsRef<[f32; 4]> for f32x4
[src]
impl From<f32> for f32x4
[src]
impl From<[f32; 4]> for f32x4
[src]
impl From<(f32, f32, f32, f32)> for f32x4
[src]
impl From<[i8; 4]> for f32x4
[src]
impl From<[u8; 4]> for f32x4
[src]
impl From<[i16; 4]> for f32x4
[src]
impl From<[u16; 4]> for f32x4
[src]
impl Clone for f32x4
[src]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for f32x4
[src]
impl Default for f32x4
[src]
impl Debug for f32x4
[src]
impl Display for f32x4
[src]
impl LowerExp for f32x4
[src]
impl UpperExp for f32x4
[src]
impl Div<f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the /
operator.
fn div(self, rhs: Self) -> Self
[src]
impl<'_> Div<&'_ f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the /
operator.
fn div(self, rhs: &Self) -> Self
[src]
impl Rem<f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the %
operator.
fn rem(self, rhs: Self) -> Self
[src]
impl<'_> Rem<&'_ f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the %
operator.
fn rem(self, rhs: &Self) -> Self
[src]
impl Sub<f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, rhs: Self) -> Self
[src]
impl<'_> Sub<&'_ f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, rhs: &Self) -> Self
[src]
impl Add<f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the +
operator.
fn add(self, rhs: Self) -> Self
[src]
impl<'_> Add<&'_ f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the +
operator.
fn add(self, rhs: &Self) -> Self
[src]
impl Mul<f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the *
operator.
fn mul(self, rhs: Self) -> Self
[src]
impl<'_> Mul<&'_ f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the *
operator.
fn mul(self, rhs: &Self) -> Self
[src]
impl Neg for f32x4
[src]
impl<'_> Neg for &'_ f32x4
[src]
impl AddAssign<f32x4> for f32x4
[src]
fn add_assign(&mut self, rhs: Self)
[src]
impl<'_> AddAssign<&'_ f32x4> for f32x4
[src]
fn add_assign(&mut self, rhs: &Self)
[src]
impl SubAssign<f32x4> for f32x4
[src]
fn sub_assign(&mut self, rhs: Self)
[src]
impl<'_> SubAssign<&'_ f32x4> for f32x4
[src]
fn sub_assign(&mut self, rhs: &Self)
[src]
impl MulAssign<f32x4> for f32x4
[src]
fn mul_assign(&mut self, rhs: Self)
[src]
impl<'_> MulAssign<&'_ f32x4> for f32x4
[src]
fn mul_assign(&mut self, rhs: &Self)
[src]
impl DivAssign<f32x4> for f32x4
[src]
fn div_assign(&mut self, rhs: Self)
[src]
impl<'_> DivAssign<&'_ f32x4> for f32x4
[src]
fn div_assign(&mut self, rhs: &Self)
[src]
impl RemAssign<f32x4> for f32x4
[src]
fn rem_assign(&mut self, rhs: Self)
[src]
impl<'_> RemAssign<&'_ f32x4> for f32x4
[src]
fn rem_assign(&mut self, rhs: &Self)
[src]
impl Not for f32x4
[src]
type Output = Self
The resulting type after applying the !
operator.
fn not(self) -> Self
[src]
Bitwise negation
impl BitAnd<f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the &
operator.
fn bitand(self, rhs: Self) -> Self
[src]
impl<'_> BitAnd<&'_ f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the &
operator.
fn bitand(self, rhs: &Self) -> Self
[src]
impl BitOr<f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the |
operator.
fn bitor(self, rhs: Self) -> Self
[src]
impl<'_> BitOr<&'_ f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the |
operator.
fn bitor(self, rhs: &Self) -> Self
[src]
impl BitXor<f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: Self) -> Self
[src]
impl<'_> BitXor<&'_ f32x4> for f32x4
[src]
type Output = Self
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: &Self) -> Self
[src]
impl BitAndAssign<f32x4> for f32x4
[src]
fn bitand_assign(&mut self, rhs: Self)
[src]
impl<'_> BitAndAssign<&'_ f32x4> for f32x4
[src]
fn bitand_assign(&mut self, rhs: &Self)
[src]
impl BitOrAssign<f32x4> for f32x4
[src]
fn bitor_assign(&mut self, rhs: Self)
[src]
impl<'_> BitOrAssign<&'_ f32x4> for f32x4
[src]
fn bitor_assign(&mut self, rhs: &Self)
[src]
impl BitXorAssign<f32x4> for f32x4
[src]
fn bitxor_assign(&mut self, rhs: Self)
[src]
impl<'_> BitXorAssign<&'_ f32x4> for f32x4
[src]
fn bitxor_assign(&mut self, rhs: &Self)
[src]
impl Index<usize> for f32x4
[src]
impl IndexMut<usize> for f32x4
[src]
impl Sum<f32x4> for f32x4
[src]
impl<'a> Sum<&'a f32x4> for f32x4
[src]
impl Product<f32x4> for f32x4
[src]
impl<'a> Product<&'a f32x4> for f32x4
[src]
impl Octal for f32x4
[src]
impl Binary for f32x4
[src]
impl LowerHex for f32x4
[src]
impl UpperHex for f32x4
[src]
impl Zeroable for f32x4
[src]
impl Pod for f32x4
[src]
Auto Trait Implementations
impl Send for f32x4
impl Sync for f32x4
impl Unpin for f32x4
impl UnwindSafe for f32x4
impl RefUnwindSafe for f32x4
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,