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<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>
pub fn double( &self, ) -> Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>
pub fn byte( &self, ) -> Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>
pub fn short( &self, ) -> Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>
pub fn int( &self, ) -> Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>
pub fn long( &self, ) -> Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>
pub fn complex_single( &self, ) -> Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>
pub fn complex_double( &self, ) -> Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, Complex<f64>>; N], usize, &mut [MaybeUninit<Complex<f64>>])>
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<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: Freeze,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: Freeze,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [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<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: RefUnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: RefUnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [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<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: Send,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: Send,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: Send,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: Send,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: Send,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: Send,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: Send,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [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<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: Sync,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: Sync,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [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<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: Unpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: Unpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [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<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: UnsafeUnpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: UnsafeUnpin,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [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<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f32>; N], usize, &mut [MaybeUninit<f32>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, f64>; N], usize, &mut [MaybeUninit<f64>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, u8>; N], usize, &mut [MaybeUninit<u8>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i16>; N], usize, &mut [MaybeUninit<i16>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i32>; N], usize, &mut [MaybeUninit<i32>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, i64>; N], usize, &mut [MaybeUninit<i64>]) -> bool>: UnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [Arg<'_, Complex<f32>>; N], usize, &mut [MaybeUninit<Complex<f32>>])>: UnwindSafe,
Option<fn(&K, &NativeOps<rustymath_core::::facts::Slice::{constant#0}>, [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