Skip to main content

Module simd_ops

Module simd_ops 

Source
Expand description

SIMD-accelerated operations for spatial algorithms

This module provides high-performance SIMD implementations for critical spatial operations:

  • Distance computations (Euclidean, Manhattan, Chebyshev, Minkowski, Cosine)
  • KD-Tree operations (bounding box tests, point-to-box distance)
  • Nearest neighbor search (batch distance, priority queues, radius search)

All operations use scirs2_core::simd::SimdUnifiedOps for optimal hardware utilization.

§Architecture Support

The SIMD operations are automatically optimized based on available hardware:

  • AVX-512 (8x f64 vectors)
  • AVX2 (4x f64 vectors)
  • ARM NEON (2x f64 vectors)
  • SSE (2x f64 vectors - fallback)

§Examples

use scirs2_spatial::simd_ops::{simd_euclidean_distance, simd_batch_distances};
use scirs2_core::ndarray::array;

// Single distance computation
let a = array![1.0, 2.0, 3.0];
let b = array![4.0, 5.0, 6.0];
let dist = simd_euclidean_distance(&a.view(), &b.view())?;

// Batch distance computation
let points1 = array![[1.0, 2.0], [3.0, 4.0]];
let points2 = array![[2.0, 3.0], [4.0, 5.0]];
let distances = simd_batch_distances(&points1.view(), &points2.view())?;

Functions§

simd_batch_distances
SIMD-accelerated batch distance computation between point sets
simd_batch_squared_distances
SIMD-accelerated batch distance computation for KD-Tree queries
simd_box_box_intersection
SIMD-accelerated axis-aligned bounding box intersection test
simd_chebyshev_distance
SIMD-accelerated Chebyshev distance between two points
simd_cosine_distance
SIMD-accelerated Cosine distance between two points
simd_euclidean_distance
SIMD-accelerated Euclidean distance between two points
simd_knn_search
SIMD-accelerated k-nearest neighbors distance computation
simd_manhattan_distance
SIMD-accelerated Manhattan distance between two points
simd_minkowski_distance
SIMD-accelerated Minkowski distance between two points
simd_pairwise_distance_matrix
SIMD-accelerated pairwise distance matrix computation
simd_point_to_box_min_distance_squared
SIMD-accelerated point-to-axis-aligned-box minimum distance
simd_radius_search
SIMD-accelerated radius search
simd_squared_euclidean_distance
SIMD-accelerated squared Euclidean distance between two points