pub struct SafeSimdOps;Expand description
Safe SIMD vector operations with comprehensive bounds checking
Implementations§
Source§impl SafeSimdOps
impl SafeSimdOps
Sourcepub fn validate_f32(value: f32) -> SafeSimdResult<f32>
pub fn validate_f32(value: f32) -> SafeSimdResult<f32>
Safely validate floating point values
Sourcepub fn validate_f64(value: f64) -> SafeSimdResult<f64>
pub fn validate_f64(value: f64) -> SafeSimdResult<f64>
Safely validate floating point values
Sourcepub fn validate_f32_slice(values: &[f32]) -> SafeSimdResult<()>
pub fn validate_f32_slice(values: &[f32]) -> SafeSimdResult<()>
Validate an entire slice of f32 values
Sourcepub fn validate_f64_slice(values: &[f64]) -> SafeSimdResult<()>
pub fn validate_f64_slice(values: &[f64]) -> SafeSimdResult<()>
Validate an entire slice of f64 values
Sourcepub fn safe_add_f32(a: f32, b: f32) -> SafeSimdResult<f32>
pub fn safe_add_f32(a: f32, b: f32) -> SafeSimdResult<f32>
Safe addition with overflow detection
Sourcepub fn safe_sub_f32(a: f32, b: f32) -> SafeSimdResult<f32>
pub fn safe_sub_f32(a: f32, b: f32) -> SafeSimdResult<f32>
Safe subtraction with overflow detection
Sourcepub fn safe_mul_f32(a: f32, b: f32) -> SafeSimdResult<f32>
pub fn safe_mul_f32(a: f32, b: f32) -> SafeSimdResult<f32>
Safe multiplication with overflow detection
Sourcepub fn safe_div_f32(a: f32, b: f32) -> SafeSimdResult<f32>
pub fn safe_div_f32(a: f32, b: f32) -> SafeSimdResult<f32>
Safe division with zero and overflow checking
Sourcepub fn safe_sqrt_f32(value: f32) -> SafeSimdResult<f32>
pub fn safe_sqrt_f32(value: f32) -> SafeSimdResult<f32>
Safe square root with negative number checking
Sourcepub fn safe_ln_f32(value: f32) -> SafeSimdResult<f32>
pub fn safe_ln_f32(value: f32) -> SafeSimdResult<f32>
Safe logarithm with domain checking
Sourcepub fn safe_exp_f32(value: f32) -> SafeSimdResult<f32>
pub fn safe_exp_f32(value: f32) -> SafeSimdResult<f32>
Safe exponential with overflow checking
Sourcepub fn safe_dot_product_f32(a: &[f32], b: &[f32]) -> SafeSimdResult<f32>
pub fn safe_dot_product_f32(a: &[f32], b: &[f32]) -> SafeSimdResult<f32>
Safe vector dot product with bounds checking
Sourcepub fn safe_normalize_f32(vector: &[f32]) -> SafeSimdResult<Vec<f32>>
pub fn safe_normalize_f32(vector: &[f32]) -> SafeSimdResult<Vec<f32>>
Safe vector normalization
Sourcepub fn safe_get<T>(slice: &[T], index: usize) -> SafeSimdResult<&T>
pub fn safe_get<T>(slice: &[T], index: usize) -> SafeSimdResult<&T>
Safe array indexing with bounds checking
Sourcepub fn safe_get_mut<T>(slice: &mut [T], index: usize) -> SafeSimdResult<&mut T>
pub fn safe_get_mut<T>(slice: &mut [T], index: usize) -> SafeSimdResult<&mut T>
Safe mutable array indexing with bounds checking
Sourcepub fn safe_slice<T>(
slice: &[T],
start: usize,
end: usize,
) -> SafeSimdResult<&[T]>
pub fn safe_slice<T>( slice: &[T], start: usize, end: usize, ) -> SafeSimdResult<&[T]>
Safe slice creation with bounds checking
Sourcepub fn all_finite_f32(values: &[f32]) -> bool
pub fn all_finite_f32(values: &[f32]) -> bool
Check if all values in slice are finite (not NaN or infinite)
Sourcepub fn all_finite_f64(values: &[f64]) -> bool
pub fn all_finite_f64(values: &[f64]) -> bool
Check if all values in slice are finite (not NaN or infinite)
Sourcepub fn sanitize_f32_slice(
values: &mut [f32],
nan_replacement: f32,
inf_replacement: f32,
)
pub fn sanitize_f32_slice( values: &mut [f32], nan_replacement: f32, inf_replacement: f32, )
Replace NaN and infinite values with safe alternatives
Sourcepub fn sanitize_f64_slice(
values: &mut [f64],
nan_replacement: f64,
inf_replacement: f64,
)
pub fn sanitize_f64_slice( values: &mut [f64], nan_replacement: f64, inf_replacement: f64, )
Replace NaN and infinite values with safe alternatives
Auto Trait Implementations§
impl Freeze for SafeSimdOps
impl RefUnwindSafe for SafeSimdOps
impl Send for SafeSimdOps
impl Sync for SafeSimdOps
impl Unpin for SafeSimdOps
impl UnsafeUnpin for SafeSimdOps
impl UnwindSafe for SafeSimdOps
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
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>
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>
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