lav
Lane-Associated Vector (LAV): Portable SIMD vector trait as GAT of SIMD lane trait.
NOTE: This crate requires nightly Rust.
This example uses SIMD generically over floating-point types while hiding it from the user.
Features
- SIMD lane trait
Realabstracting overf32andf64. - SIMD vector trait
SimdReal<Real, N>abstracting overSimd<f32, N>andSimd<f64, N>. - Generic associated type (GAT)
Real::Simd<N>as part of SIMD lane traitRealimplementing SIMD vector traitSimdReal<Self, N>for itself as lane type where the GAT is generic over the number of SIMD vector lanesN. - AoS/SoA/AoSoA via
Real::as_simd/Real::as_simd_mutabstracting overas_simd/as_simd_mutoff32andf64slices. - Lanewise approximate equality test wrt to epsilon and ULP SIMD vectors.
ApproxEqtrait complementingPartialEq.
Optional Features
Following features are disabled by default unless their feature gate is enabled:
target-features: Provides native number of SIMD vector lanesReal::NATIVE_LANE_COUNTfor the current build target.libm: Enablesno_stdwithout loss of functionality.
Pseudo-Local Documentation Builds
Build the documentation with cargo-tex. Note that navigating the documentation requires web access as KaTeX is embedded via remote CDN.
License
Copyright © 2021-2025 Rouven Spreckels rs@qu1x.dev
Licensed under the terms of the MPL-2.0.
Contribution
Unless you explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Covered Software by You shall be licensed as above, without any additional terms or conditions.