/// fabs
pub(crate) fn simd_fabs<T>(x: T) -> T;
+
+ /// fsqrt
+ pub(crate) fn simd_fsqrt<T>(x: T) -> T;
pub(crate) fn simd_eq<T, U>(x: T, y: T) -> U;
pub(crate) fn simd_ne<T, U>(x: T, y: T) -> U;
pub fn abs(self) -> Self {
unsafe { crate::intrinsics::simd_fabs(self) }
}
+
+ /// Produces a vector where every lane has the square root value
+ /// of the equivalently-indexed lane in `self`
+ #[inline]
+ #[cfg(feature = "std")]
+ pub fn sqrt(self) -> Self {
+ unsafe { crate::intrinsics::simd_fsqrt(self) }
+ }
}
impl<const LANES: usize> $name<LANES>
)
}
+ fn sqrt<const LANES: usize>() {
+ test_helpers::test_unary_elementwise(
+ &Vector::<LANES>::sqrt,
+ &Scalar::sqrt,
+ &|_| true,
+ )
+ }
fn horizontal_sum<const LANES: usize>() {
test_helpers::test_1(&|x| {
test_helpers::prop_assert_biteq! (