Skip to main content

Module vector

Module vector 

Source
Expand description

Vector operations and utilities for RAG system

This module provides high-performance vector operations essential for similarity search and embedding manipulation in the RAG system.

§Core Operations

  • Similarity Metrics: Cosine similarity for measuring vector similarity
  • Distance Metrics: L2 (Euclidean) distance for spatial relationships
  • Vector Algebra: Dot product, normalization, and comparison operations

§Performance Characteristics

All operations in this module are optimized for hot-path performance:

  • Functions are marked with inline hints for small vectors
  • Efficient iterator usage for auto-vectorization
  • Minimal allocations and cache-friendly access patterns
  • SIMD acceleration with runtime CPU detection (3-4x speedup)

§SIMD Acceleration

The module automatically uses SIMD instructions when available:

  • x86_64: AVX2, SSE2, or scalar fallback
  • ARM: NEON or scalar fallback
  • Runtime detection ensures optimal performance on any CPU

Use the *_auto() functions for automatic SIMD/scalar selection:

use foxstash_core::vector::{cosine_similarity_auto, dot_product_auto};

let a = vec![1.0; 384];
let b = vec![2.0; 384];

// Automatically uses SIMD if available
let similarity = cosine_similarity_auto(&a, &b).unwrap();
let dot = dot_product_auto(&a, &b).unwrap();

§Usage

use foxstash_core::vector::ops::{cosine_similarity, normalize};

let mut embedding = vec![1.0, 2.0, 3.0];
normalize(&mut embedding);

let query = vec![0.6, 0.8, 0.0];
let similarity = cosine_similarity(&embedding, &query).unwrap();

Re-exports§

pub use ops::approx_equal;
pub use ops::cosine_similarity;
pub use ops::dot_product;
pub use ops::l2_distance;
pub use ops::normalize;
pub use simd::cosine_distance_prenorm;
pub use simd::cosine_similarity_simd;
pub use simd::dot_product_simd;
pub use simd::l2_distance_simd;
pub use simd::norm_simd;

Modules§

ops
Vector operations for RAG system
product_quantize
Product Quantization (PQ) for extreme compression
quantize
Vector quantization for memory-efficient storage
simd
SIMD-accelerated vector operations

Functions§

cosine_similarity_auto
Automatically selects between SIMD and scalar cosine similarity.
dot_product_auto
Automatically selects between SIMD and scalar dot product.
l2_distance_auto
Automatically selects between SIMD and scalar L2 distance.