simdeez 3.0.1

SIMD library to abstract over different instruction sets and widths
Documentation
mod portable_f32;
pub(crate) mod portable_f64;

use crate::math::f64;
use crate::{Simd, SimdFloat32, SimdFloat64};

pub trait SimdMathF32InverseTrig: SimdFloat32 {
    #[inline(always)]
    fn asin_u35(self) -> Self
    where
        Self::Engine: Simd<Vf32 = Self>,
    {
        portable_f32::asin_u35(self)
    }

    #[inline(always)]
    fn acos_u35(self) -> Self
    where
        Self::Engine: Simd<Vf32 = Self>,
    {
        portable_f32::acos_u35(self)
    }

    #[inline(always)]
    fn atan_u35(self) -> Self
    where
        Self::Engine: Simd<Vf32 = Self>,
    {
        portable_f32::atan_u35(self)
    }
}

impl<T: SimdFloat32> SimdMathF32InverseTrig for T {}

pub trait SimdMathF64InverseTrig: SimdFloat64 {
    #[inline(always)]
    fn asin_u35(self) -> Self
    where
        Self::Engine: Simd<Vf64 = Self>,
    {
        f64::asin_u35(self)
    }

    #[inline(always)]
    fn acos_u35(self) -> Self
    where
        Self::Engine: Simd<Vf64 = Self>,
    {
        f64::acos_u35(self)
    }

    #[inline(always)]
    fn atan_u35(self) -> Self
    where
        Self::Engine: Simd<Vf64 = Self>,
    {
        f64::atan_u35(self)
    }
}

impl<T: SimdFloat64> SimdMathF64InverseTrig for T {}