pub struct HardwareOptimizedDistances { /* private fields */ }Expand description
Advanced-optimized distance calculations with hardware-specific code paths
Implementations§
Source§impl HardwareOptimizedDistances
impl HardwareOptimizedDistances
Sourcepub fn euclidean_distance_optimized(
&self,
a: &ArrayView1<'_, f64>,
b: &ArrayView1<'_, f64>,
) -> SpatialResult<f64>
pub fn euclidean_distance_optimized( &self, a: &ArrayView1<'_, f64>, b: &ArrayView1<'_, f64>, ) -> SpatialResult<f64>
Optimal Euclidean distance with FMA and hardware-specific vectorization
Sourcepub fn batch_distance_matrix_optimized(
&self,
points: &ArrayView2<'_, f64>,
) -> SpatialResult<Array2<f64>>
pub fn batch_distance_matrix_optimized( &self, points: &ArrayView2<'_, f64>, ) -> SpatialResult<Array2<f64>>
Optimized batch processing with cache-optimized memory access
Sourcepub fn knn_search_vectorized(
&self,
query_points: &ArrayView2<'_, f64>,
data_points: &ArrayView2<'_, f64>,
k: usize,
) -> SpatialResult<(Array2<usize>, Array2<f64>)>
pub fn knn_search_vectorized( &self, query_points: &ArrayView2<'_, f64>, data_points: &ArrayView2<'_, f64>, k: usize, ) -> SpatialResult<(Array2<usize>, Array2<f64>)>
Vectorized k-nearest neighbors with hardware optimizations
Sourcepub fn optimal_simd_block_size(&self) -> usize
pub fn optimal_simd_block_size(&self) -> usize
Get optimal SIMD block size for current hardware
Sourcepub fn report_capabilities(&self)
pub fn report_capabilities(&self)
Report hardware-specific capabilities
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HardwareOptimizedDistances
impl RefUnwindSafe for HardwareOptimizedDistances
impl Send for HardwareOptimizedDistances
impl Sync for HardwareOptimizedDistances
impl Unpin for HardwareOptimizedDistances
impl UnwindSafe for HardwareOptimizedDistances
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
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.