Struct ultraviolet::m32x4
source · #[repr(C, align(16))]pub struct m32x4 { /* private fields */ }
Implementations§
source§impl f32x4
impl f32x4
pub const ONE: f32x4 = _
pub const ZERO: f32x4 = _
pub const HALF: f32x4 = _
pub const E: f32x4 = _
pub const FRAC_1_PI: f32x4 = _
pub const FRAC_2_PI: f32x4 = _
pub const FRAC_2_SQRT_PI: f32x4 = _
pub const FRAC_1_SQRT_2: f32x4 = _
pub const FRAC_PI_2: f32x4 = _
pub const FRAC_PI_3: f32x4 = _
pub const FRAC_PI_4: f32x4 = _
pub const FRAC_PI_6: f32x4 = _
pub const FRAC_PI_8: f32x4 = _
pub const LN_2: f32x4 = _
pub const LN_10: f32x4 = _
pub const LOG2_E: f32x4 = _
pub const LOG10_E: f32x4 = _
pub const LOG10_2: f32x4 = _
pub const LOG2_10: f32x4 = _
pub const PI: f32x4 = _
pub const SQRT_2: f32x4 = _
pub const TAU: f32x4 = _
source§impl f32x4
impl f32x4
pub fn new(array: [f32; 4]) -> f32x4
pub fn blend(self, t: f32x4, f: f32x4) -> f32x4
pub fn abs(self) -> f32x4
sourcepub fn fast_max(self, rhs: f32x4) -> f32x4
pub fn fast_max(self, rhs: f32x4) -> f32x4
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: f32x4) -> f32x4
pub fn max(self, rhs: f32x4) -> f32x4
Calculates the lanewise maximum of both vectors. If either lane is NaN,
the other lane gets chosen. Use fast_max
for a faster implementation
that doesn’t handle NaNs.
sourcepub fn fast_min(self, rhs: f32x4) -> f32x4
pub fn fast_min(self, rhs: f32x4) -> f32x4
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: f32x4) -> f32x4
pub fn min(self, rhs: f32x4) -> f32x4
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) -> f32x4
pub fn is_finite(self) -> f32x4
pub fn is_inf(self) -> f32x4
pub fn round(self) -> f32x4
sourcepub fn fast_round_int(self) -> i32x4
pub fn fast_round_int(self) -> i32x4
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) -> i32x4
pub fn round_int(self) -> i32x4
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) -> i32x4
pub fn fast_trunc_int(self) -> i32x4
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) -> i32x4
pub fn trunc_int(self) -> i32x4
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: f32x4, a: f32x4) -> f32x4
pub fn mul_sub(self, m: f32x4, s: f32x4) -> f32x4
pub fn mul_neg_add(self, m: f32x4, a: f32x4) -> f32x4
pub fn mul_neg_sub(self, m: f32x4, a: f32x4) -> f32x4
pub fn flip_signs(self, signs: f32x4) -> f32x4
pub fn copysign(self, sign: f32x4) -> f32x4
pub fn asin_acos(self) -> (f32x4, f32x4)
pub fn asin(self) -> f32x4
pub fn acos(self) -> f32x4
pub fn atan(self) -> f32x4
pub fn atan2(self, x: f32x4) -> f32x4
pub fn sin_cos(self) -> (f32x4, f32x4)
pub fn sin(self) -> f32x4
pub fn cos(self) -> f32x4
pub fn tan(self) -> f32x4
pub fn to_degrees(self) -> f32x4
pub fn to_radians(self) -> f32x4
pub fn recip(self) -> f32x4
pub fn recip_sqrt(self) -> f32x4
pub fn sqrt(self) -> f32x4
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) -> f32x4
pub fn reduce_add(self) -> f32
pub fn log2(self) -> f32x4
pub fn log10(self) -> f32x4
pub fn pow_f32x4(self, y: f32x4) -> f32x4
pub fn powf(self, y: f32) -> f32x4
pub fn to_array(self) -> [f32; 4]
pub fn as_array_ref(&self) -> &[f32; 4]
Trait Implementations§
source§impl AddAssign<&f32x4> for f32x4
impl AddAssign<&f32x4> for f32x4
source§fn add_assign(&mut self, rhs: &f32x4)
fn add_assign(&mut self, rhs: &f32x4)
+=
operation. Read moresource§impl AddAssign<f32x4> for f32x4
impl AddAssign<f32x4> for f32x4
source§fn add_assign(&mut self, rhs: f32x4)
fn add_assign(&mut self, rhs: f32x4)
+=
operation. Read moresource§impl BitAndAssign<&f32x4> for f32x4
impl BitAndAssign<&f32x4> for f32x4
source§fn bitand_assign(&mut self, rhs: &f32x4)
fn bitand_assign(&mut self, rhs: &f32x4)
&=
operation. Read moresource§impl BitAndAssign<f32x4> for f32x4
impl BitAndAssign<f32x4> for f32x4
source§fn bitand_assign(&mut self, rhs: f32x4)
fn bitand_assign(&mut self, rhs: f32x4)
&=
operation. Read moresource§impl BitOrAssign<&f32x4> for f32x4
impl BitOrAssign<&f32x4> for f32x4
source§fn bitor_assign(&mut self, rhs: &f32x4)
fn bitor_assign(&mut self, rhs: &f32x4)
|=
operation. Read moresource§impl BitOrAssign<f32x4> for f32x4
impl BitOrAssign<f32x4> for f32x4
source§fn bitor_assign(&mut self, rhs: f32x4)
fn bitor_assign(&mut self, rhs: f32x4)
|=
operation. Read moresource§impl BitXorAssign<&f32x4> for f32x4
impl BitXorAssign<&f32x4> for f32x4
source§fn bitxor_assign(&mut self, rhs: &f32x4)
fn bitxor_assign(&mut self, rhs: &f32x4)
^=
operation. Read moresource§impl BitXorAssign<f32x4> for f32x4
impl BitXorAssign<f32x4> for f32x4
source§fn bitxor_assign(&mut self, rhs: f32x4)
fn bitxor_assign(&mut self, rhs: f32x4)
^=
operation. Read moresource§impl DivAssign<&f32x4> for f32x4
impl DivAssign<&f32x4> for f32x4
source§fn div_assign(&mut self, rhs: &f32x4)
fn div_assign(&mut self, rhs: &f32x4)
/=
operation. Read moresource§impl DivAssign<f32x4> for Bivec2x4
impl DivAssign<f32x4> for Bivec2x4
source§fn div_assign(&mut self, rhs: f32x4)
fn div_assign(&mut self, rhs: f32x4)
/=
operation. Read moresource§impl DivAssign<f32x4> for Bivec3x4
impl DivAssign<f32x4> for Bivec3x4
source§fn div_assign(&mut self, rhs: f32x4)
fn div_assign(&mut self, rhs: f32x4)
/=
operation. Read moresource§impl DivAssign<f32x4> for Rotor2x4
impl DivAssign<f32x4> for Rotor2x4
source§fn div_assign(&mut self, rhs: f32x4)
fn div_assign(&mut self, rhs: f32x4)
/=
operation. Read moresource§impl DivAssign<f32x4> for Rotor3x4
impl DivAssign<f32x4> for Rotor3x4
source§fn div_assign(&mut self, rhs: f32x4)
fn div_assign(&mut self, rhs: f32x4)
/=
operation. Read moresource§impl DivAssign<f32x4> for Vec2x4
impl DivAssign<f32x4> for Vec2x4
source§fn div_assign(&mut self, rhs: f32x4)
fn div_assign(&mut self, rhs: f32x4)
/=
operation. Read moresource§impl DivAssign<f32x4> for Vec3x4
impl DivAssign<f32x4> for Vec3x4
source§fn div_assign(&mut self, rhs: f32x4)
fn div_assign(&mut self, rhs: f32x4)
/=
operation. Read moresource§impl DivAssign<f32x4> for Vec4x4
impl DivAssign<f32x4> for Vec4x4
source§fn div_assign(&mut self, rhs: f32x4)
fn div_assign(&mut self, rhs: f32x4)
/=
operation. Read moresource§impl DivAssign<f32x4> for f32x4
impl DivAssign<f32x4> for f32x4
source§fn div_assign(&mut self, rhs: f32x4)
fn div_assign(&mut self, rhs: f32x4)
/=
operation. Read moresource§impl Lerp<f32x4> for Bivec2x4
impl Lerp<f32x4> for Bivec2x4
source§fn lerp(&self, end: Self, t: f32x4) -> Self
fn lerp(&self, end: Self, t: f32x4) -> Self
Linearly interpolate between self
and end
by t
between 0.0 and 1.0.
i.e. (1.0 - t) * self + (t) * end
.
For interpolating Rotor
s with linear interpolation, you almost certainly
want to normalize the returned Rotor
. For example,
let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();
For most cases (especially where performance is the primary concern, like in
animation interpolation for games, this ‘normalized lerp’ or ‘nlerp’ is probably
what you want to use. However, there are situations in which you really want
the interpolation between two Rotor
s to be of constant angular velocity. In this
case, check out Slerp
.
source§impl Lerp<f32x4> for Bivec3x4
impl Lerp<f32x4> for Bivec3x4
source§fn lerp(&self, end: Self, t: f32x4) -> Self
fn lerp(&self, end: Self, t: f32x4) -> Self
Linearly interpolate between self
and end
by t
between 0.0 and 1.0.
i.e. (1.0 - t) * self + (t) * end
.
For interpolating Rotor
s with linear interpolation, you almost certainly
want to normalize the returned Rotor
. For example,
let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();
For most cases (especially where performance is the primary concern, like in
animation interpolation for games, this ‘normalized lerp’ or ‘nlerp’ is probably
what you want to use. However, there are situations in which you really want
the interpolation between two Rotor
s to be of constant angular velocity. In this
case, check out Slerp
.
source§impl Lerp<f32x4> for Rotor2x4
impl Lerp<f32x4> for Rotor2x4
source§fn lerp(&self, end: Self, t: f32x4) -> Self
fn lerp(&self, end: Self, t: f32x4) -> Self
Linearly interpolate between self
and end
by t
between 0.0 and 1.0.
i.e. (1.0 - t) * self + (t) * end
.
For interpolating Rotor
s with linear interpolation, you almost certainly
want to normalize the returned Rotor
. For example,
let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();
For most cases (especially where performance is the primary concern, like in
animation interpolation for games, this ‘normalized lerp’ or ‘nlerp’ is probably
what you want to use. However, there are situations in which you really want
the interpolation between two Rotor
s to be of constant angular velocity. In this
case, check out Slerp
.
source§impl Lerp<f32x4> for Rotor3x4
impl Lerp<f32x4> for Rotor3x4
source§fn lerp(&self, end: Self, t: f32x4) -> Self
fn lerp(&self, end: Self, t: f32x4) -> Self
Linearly interpolate between self
and end
by t
between 0.0 and 1.0.
i.e. (1.0 - t) * self + (t) * end
.
For interpolating Rotor
s with linear interpolation, you almost certainly
want to normalize the returned Rotor
. For example,
let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();
For most cases (especially where performance is the primary concern, like in
animation interpolation for games, this ‘normalized lerp’ or ‘nlerp’ is probably
what you want to use. However, there are situations in which you really want
the interpolation between two Rotor
s to be of constant angular velocity. In this
case, check out Slerp
.
source§impl Lerp<f32x4> for Vec2x4
impl Lerp<f32x4> for Vec2x4
source§fn lerp(&self, end: Self, t: f32x4) -> Self
fn lerp(&self, end: Self, t: f32x4) -> Self
Linearly interpolate between self
and end
by t
between 0.0 and 1.0.
i.e. (1.0 - t) * self + (t) * end
.
For interpolating Rotor
s with linear interpolation, you almost certainly
want to normalize the returned Rotor
. For example,
let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();
For most cases (especially where performance is the primary concern, like in
animation interpolation for games, this ‘normalized lerp’ or ‘nlerp’ is probably
what you want to use. However, there are situations in which you really want
the interpolation between two Rotor
s to be of constant angular velocity. In this
case, check out Slerp
.
source§impl Lerp<f32x4> for Vec3x4
impl Lerp<f32x4> for Vec3x4
source§fn lerp(&self, end: Self, t: f32x4) -> Self
fn lerp(&self, end: Self, t: f32x4) -> Self
Linearly interpolate between self
and end
by t
between 0.0 and 1.0.
i.e. (1.0 - t) * self + (t) * end
.
For interpolating Rotor
s with linear interpolation, you almost certainly
want to normalize the returned Rotor
. For example,
let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();
For most cases (especially where performance is the primary concern, like in
animation interpolation for games, this ‘normalized lerp’ or ‘nlerp’ is probably
what you want to use. However, there are situations in which you really want
the interpolation between two Rotor
s to be of constant angular velocity. In this
case, check out Slerp
.
source§impl Lerp<f32x4> for Vec4x4
impl Lerp<f32x4> for Vec4x4
source§fn lerp(&self, end: Self, t: f32x4) -> Self
fn lerp(&self, end: Self, t: f32x4) -> Self
Linearly interpolate between self
and end
by t
between 0.0 and 1.0.
i.e. (1.0 - t) * self + (t) * end
.
For interpolating Rotor
s with linear interpolation, you almost certainly
want to normalize the returned Rotor
. For example,
let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();
For most cases (especially where performance is the primary concern, like in
animation interpolation for games, this ‘normalized lerp’ or ‘nlerp’ is probably
what you want to use. However, there are situations in which you really want
the interpolation between two Rotor
s to be of constant angular velocity. In this
case, check out Slerp
.
source§impl Lerp<f32x4> for f32x4
impl Lerp<f32x4> for f32x4
source§fn lerp(&self, end: Self, t: f32x4) -> Self
fn lerp(&self, end: Self, t: f32x4) -> Self
Linearly interpolate between self
and end
by t
between 0.0 and 1.0.
i.e. (1.0 - t) * self + (t) * end
.
For interpolating Rotor
s with linear interpolation, you almost certainly
want to normalize the returned Rotor
. For example,
let interpolated_rotor = rotor1.lerp(rotor2, 0.5).normalized();
For most cases (especially where performance is the primary concern, like in
animation interpolation for games, this ‘normalized lerp’ or ‘nlerp’ is probably
what you want to use. However, there are situations in which you really want
the interpolation between two Rotor
s to be of constant angular velocity. In this
case, check out Slerp
.
source§impl Mul<f32x4> for Isometry2x4
impl Mul<f32x4> for Isometry2x4
§type Output = Isometry2x4
type Output = Isometry2x4
*
operator.source§impl Mul<f32x4> for Isometry3x4
impl Mul<f32x4> for Isometry3x4
§type Output = Isometry3x4
type Output = Isometry3x4
*
operator.source§impl Mul<f32x4> for Similarity2x4
impl Mul<f32x4> for Similarity2x4
§type Output = Similarity2x4
type Output = Similarity2x4
*
operator.source§impl Mul<f32x4> for Similarity3x4
impl Mul<f32x4> for Similarity3x4
§type Output = Similarity3x4
type Output = Similarity3x4
*
operator.source§impl MulAssign<&f32x4> for f32x4
impl MulAssign<&f32x4> for f32x4
source§fn mul_assign(&mut self, rhs: &f32x4)
fn mul_assign(&mut self, rhs: &f32x4)
*=
operation. Read moresource§impl MulAssign<f32x4> for Bivec2x4
impl MulAssign<f32x4> for Bivec2x4
source§fn mul_assign(&mut self, rhs: f32x4)
fn mul_assign(&mut self, rhs: f32x4)
*=
operation. Read moresource§impl MulAssign<f32x4> for Bivec3x4
impl MulAssign<f32x4> for Bivec3x4
source§fn mul_assign(&mut self, rhs: f32x4)
fn mul_assign(&mut self, rhs: f32x4)
*=
operation. Read moresource§impl MulAssign<f32x4> for Rotor2x4
impl MulAssign<f32x4> for Rotor2x4
source§fn mul_assign(&mut self, rhs: f32x4)
fn mul_assign(&mut self, rhs: f32x4)
*=
operation. Read moresource§impl MulAssign<f32x4> for Rotor3x4
impl MulAssign<f32x4> for Rotor3x4
source§fn mul_assign(&mut self, rhs: f32x4)
fn mul_assign(&mut self, rhs: f32x4)
*=
operation. Read moresource§impl MulAssign<f32x4> for Vec2x4
impl MulAssign<f32x4> for Vec2x4
source§fn mul_assign(&mut self, rhs: f32x4)
fn mul_assign(&mut self, rhs: f32x4)
*=
operation. Read moresource§impl MulAssign<f32x4> for Vec3x4
impl MulAssign<f32x4> for Vec3x4
source§fn mul_assign(&mut self, rhs: f32x4)
fn mul_assign(&mut self, rhs: f32x4)
*=
operation. Read moresource§impl MulAssign<f32x4> for Vec4x4
impl MulAssign<f32x4> for Vec4x4
source§fn mul_assign(&mut self, rhs: f32x4)
fn mul_assign(&mut self, rhs: f32x4)
*=
operation. Read moresource§impl MulAssign<f32x4> for f32x4
impl MulAssign<f32x4> for f32x4
source§fn mul_assign(&mut self, rhs: f32x4)
fn mul_assign(&mut self, rhs: f32x4)
*=
operation. Read moresource§impl PartialEq<f32x4> for f32x4
impl PartialEq<f32x4> for f32x4
source§impl Slerp<f32x4> for Bivec2x4
impl Slerp<f32x4> for Bivec2x4
source§fn slerp(&self, end: Self, t: f32x4) -> Self
fn slerp(&self, end: Self, t: f32x4) -> Self
Spherical-linear interpolation between self
and end
based on t
from 0.0 to 1.0.
self
and end
should both be normalized or something bad will happen!
The implementation for SIMD types also requires that the two things being interpolated between are not exactly aligned, or else the result is undefined.
Basically, interpolation that maintains a constant angular velocity
from one orientation on a unit hypersphere to another. This is sorta the “high quality” interpolation
for Rotor
s, and it can also be used to interpolate other things, one example being interpolation of
3d normal vectors.
Note that you should often normalize the result returned by this operation, when working with Rotor
s, etc!
source§impl Slerp<f32x4> for Bivec3x4
impl Slerp<f32x4> for Bivec3x4
source§fn slerp(&self, end: Self, t: f32x4) -> Self
fn slerp(&self, end: Self, t: f32x4) -> Self
Spherical-linear interpolation between self
and end
based on t
from 0.0 to 1.0.
self
and end
should both be normalized or something bad will happen!
The implementation for SIMD types also requires that the two things being interpolated between are not exactly aligned, or else the result is undefined.
Basically, interpolation that maintains a constant angular velocity
from one orientation on a unit hypersphere to another. This is sorta the “high quality” interpolation
for Rotor
s, and it can also be used to interpolate other things, one example being interpolation of
3d normal vectors.
Note that you should often normalize the result returned by this operation, when working with Rotor
s, etc!
source§impl Slerp<f32x4> for Rotor2x4
impl Slerp<f32x4> for Rotor2x4
source§fn slerp(&self, end: Self, t: f32x4) -> Self
fn slerp(&self, end: Self, t: f32x4) -> Self
Spherical-linear interpolation between self
and end
based on t
from 0.0 to 1.0.
self
and end
should both be normalized or something bad will happen!
The implementation for SIMD types also requires that the two things being interpolated between are not exactly aligned, or else the result is undefined.
Basically, interpolation that maintains a constant angular velocity
from one orientation on a unit hypersphere to another. This is sorta the “high quality” interpolation
for Rotor
s, and it can also be used to interpolate other things, one example being interpolation of
3d normal vectors.
Note that you should often normalize the result returned by this operation, when working with Rotor
s, etc!
source§impl Slerp<f32x4> for Rotor3x4
impl Slerp<f32x4> for Rotor3x4
source§fn slerp(&self, end: Self, t: f32x4) -> Self
fn slerp(&self, end: Self, t: f32x4) -> Self
Spherical-linear interpolation between self
and end
based on t
from 0.0 to 1.0.
self
and end
should both be normalized or something bad will happen!
The implementation for SIMD types also requires that the two things being interpolated between are not exactly aligned, or else the result is undefined.
Basically, interpolation that maintains a constant angular velocity
from one orientation on a unit hypersphere to another. This is sorta the “high quality” interpolation
for Rotor
s, and it can also be used to interpolate other things, one example being interpolation of
3d normal vectors.
Note that you should often normalize the result returned by this operation, when working with Rotor
s, etc!
source§impl Slerp<f32x4> for Vec2x4
impl Slerp<f32x4> for Vec2x4
source§fn slerp(&self, end: Self, t: f32x4) -> Self
fn slerp(&self, end: Self, t: f32x4) -> Self
Spherical-linear interpolation between self
and end
based on t
from 0.0 to 1.0.
self
and end
should both be normalized or something bad will happen!
The implementation for SIMD types also requires that the two things being interpolated between are not exactly aligned, or else the result is undefined.
Basically, interpolation that maintains a constant angular velocity
from one orientation on a unit hypersphere to another. This is sorta the “high quality” interpolation
for Rotor
s, and it can also be used to interpolate other things, one example being interpolation of
3d normal vectors.
Note that you should often normalize the result returned by this operation, when working with Rotor
s, etc!
source§impl Slerp<f32x4> for Vec3x4
impl Slerp<f32x4> for Vec3x4
source§fn slerp(&self, end: Self, t: f32x4) -> Self
fn slerp(&self, end: Self, t: f32x4) -> Self
Spherical-linear interpolation between self
and end
based on t
from 0.0 to 1.0.
self
and end
should both be normalized or something bad will happen!
The implementation for SIMD types also requires that the two things being interpolated between are not exactly aligned, or else the result is undefined.
Basically, interpolation that maintains a constant angular velocity
from one orientation on a unit hypersphere to another. This is sorta the “high quality” interpolation
for Rotor
s, and it can also be used to interpolate other things, one example being interpolation of
3d normal vectors.
Note that you should often normalize the result returned by this operation, when working with Rotor
s, etc!
source§impl Slerp<f32x4> for Vec4x4
impl Slerp<f32x4> for Vec4x4
source§fn slerp(&self, end: Self, t: f32x4) -> Self
fn slerp(&self, end: Self, t: f32x4) -> Self
Spherical-linear interpolation between self
and end
based on t
from 0.0 to 1.0.
self
and end
should both be normalized or something bad will happen!
The implementation for SIMD types also requires that the two things being interpolated between are not exactly aligned, or else the result is undefined.
Basically, interpolation that maintains a constant angular velocity
from one orientation on a unit hypersphere to another. This is sorta the “high quality” interpolation
for Rotor
s, and it can also be used to interpolate other things, one example being interpolation of
3d normal vectors.
Note that you should often normalize the result returned by this operation, when working with Rotor
s, etc!
source§impl SubAssign<&f32x4> for f32x4
impl SubAssign<&f32x4> for f32x4
source§fn sub_assign(&mut self, rhs: &f32x4)
fn sub_assign(&mut self, rhs: &f32x4)
-=
operation. Read moresource§impl SubAssign<f32x4> for f32x4
impl SubAssign<f32x4> for f32x4
source§fn sub_assign(&mut self, rhs: f32x4)
fn sub_assign(&mut self, rhs: f32x4)
-=
operation. Read moreimpl Copy for f32x4
impl Pod for f32x4
impl StructuralPartialEq for f32x4
Auto Trait Implementations§
impl RefUnwindSafe for f32x4
impl Send for f32x4
impl Sync for f32x4
impl Unpin for f32x4
impl UnwindSafe for f32x4
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,
§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
.