pub trait SimdFloat: Copy + Clone + Sized {
const WIDTH: usize;
unsafe fn load(ptr: *const f32) -> Self;
unsafe fn store(self, ptr: *mut f32);
fn splat(v: f32) -> Self;
fn add(self, rhs: Self) -> Self;
fn sub(self, rhs: Self) -> Self;
fn mul(self, rhs: Self) -> Self;
fn div(self, rhs: Self) -> Self;
fn fma(self, b: Self, c: Self) -> Self;
fn max(self, rhs: Self) -> Self;
fn min(self, rhs: Self) -> Self;
fn abs(self) -> Self;
fn neg(self) -> Self;
fn cmp_ge(self, rhs: Self) -> Self;
fn blend(mask: Self, a: Self, b: Self) -> Self;
fn first(self) -> f32;
fn zero() -> Self {
Self::splat(0.0)
}
fn one() -> Self {
Self::splat(1.0)
}
}