Expand description
RustAlign SIMD - SIMD-accelerated alignment operations
This crate provides SIMD-accelerated implementations of the Smith-Waterman alignment algorithm, matching the C++ SSE/AVX2 code.
§Platform Support
- x86_64: SSE2, SSE4.2, AVX2 via
core::arch::x86_64 - AArch64: NEON via
core::arch::aarch64 - Other: Scalar fallback implementations
§Runtime Dispatch
The crate supports runtime CPU feature detection and dispatch,
similar to the C++ __builtin_cpu_supports approach.
Structs§
- CpuFeatures
- Detected CPU features for SIMD dispatch
- DpMatrix
- SIMD-accelerated DP matrix
- Matrix
Quartet - Helper structure for working with matrix quartets
- SseReg
- SIMD register type wrapper
Constants§
- AVX_
REG_ WIDTH - AVX register width in bytes
- I16_
PER_ AVX - Number of i16 elements per AVX register
- I16_
PER_ SSE - Number of i16 elements per SSE register
- SSE_
REG_ WIDTH - SIMD register width in bytes (16 for SSE, 32 for AVX2)
- U8_
PER_ AVX - Number of u8 elements per AVX register
- U8_
PER_ SSE - Number of u8 elements per SSE register
Functions§
- aligned_
vec - Create a new SIMD-aligned vector
- has_
avx2 - Check if AVX2 is available (x86_64)
- has_
neon - Check if NEON is available (always false on x86_64)
- has_
popcnt - Check if POPCNT is available
- has_
sse2 - Convenience functions for individual feature detection
- has_
sse4_ 2 - Check if SSE4.2 is available
Type Aliases§
- Aligned
Vec - SIMD-aligned vector for SSE operations