pub struct NativeSlices<K, const N: usize> { /* private fields */ }Expand description
A formula’s native slice bodies. Real and integer variants run the body at their dtype (f32 for f16). Complex variants keep the real-input shortcut and final validity check at the map boundary; an absent body uses the scalar formula.
Implementations§
Source§impl<K, const N: usize> NativeSlices<K, N>
impl<K, const N: usize> NativeSlices<K, N>
pub fn single(&self) -> Option<Slice<K, f32, N>>
pub fn double(&self) -> Option<Slice<K, f64, N>>
pub fn byte(&self) -> Option<Slice<K, u8, N>>
pub fn short(&self) -> Option<Slice<K, i16, N>>
pub fn int(&self) -> Option<Slice<K, i32, N>>
pub fn long(&self) -> Option<Slice<K, i64, N>>
pub fn complex_single(&self) -> Option<Slice<K, Complex32, N, ()>>
pub fn complex_double(&self) -> Option<Slice<K, Complex64, N, ()>>
Auto Trait Implementations§
impl<K, const N: usize> Forget for NativeSlices<K, N>
impl<K, const N: usize> Freeze for NativeSlices<K, N>where
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: Freeze,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f64>>; N], usize, &mut [MaybeUninit<Complex<f64>>])>: Freeze,
impl<K, const N: usize> RefUnwindSafe for NativeSlices<K, N>where
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: RefUnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f64>>; N], usize, &mut [MaybeUninit<Complex<f64>>])>: RefUnwindSafe,
impl<K, const N: usize> Send for NativeSlices<K, N>where
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: Send,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: Send,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: Send,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: Send,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: Send,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: Send,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: Send,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f64>>; N], usize, &mut [MaybeUninit<Complex<f64>>])>: Send,
impl<K, const N: usize> Sync for NativeSlices<K, N>where
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: Sync,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f64>>; N], usize, &mut [MaybeUninit<Complex<f64>>])>: Sync,
impl<K, const N: usize> Unpin for NativeSlices<K, N>where
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: Unpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f64>>; N], usize, &mut [MaybeUninit<Complex<f64>>])>: Unpin,
impl<K, const N: usize> UnsafeUnpin for NativeSlices<K, N>where
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: UnsafeUnpin,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f64>>; N], usize, &mut [MaybeUninit<Complex<f64>>])>: UnsafeUnpin,
impl<K, const N: usize> UnwindSafe for NativeSlices<K, N>where
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: UnwindSafe,
Option<fn(&K, &NativeOps<{ FUSED }>, [Arg<'_, Complex<f64>>; N], usize, &mut [MaybeUninit<Complex<f64>>])>: UnwindSafe,
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more