lav
Lane-Associated Vector (LAV): Portable SIMD vector trait as GAT of SIMD lane trait.
NOTE: This crate requires nightly Rust.
- Provides SIMD lane trait
Real
abstracting overf32
andf64
. - Provides SIMD vector trait
SimdReal<Real, LANES>
abstracting overSimd<f32, LANES>
andSimd<f64, LANES>
. - Provides generic associated type (GAT)
Real::Simd<LANES>
as part of SIMD lane traitReal
implementing SIMD vector traitSimdReal<Self, LANES>
for itself as lane type where the GAT is generic over the number of SIMD vectorLANES
.
This example
uses SIMD generically over floating-point types while hiding it form the user. This is useful for crates that can be efficiently implemented without AoS, SoA, or AoSoA like the projective geometric algebra crate pga
(work in progress).
By enabling the libm
feature this crate becomes no_std
without loss of functionality.
See the release history to keep track of the development.
Documentation Builds
# Build and open documentation inclusive dependencies.
cargo doc --open
# Rebuild this crate's documentation with KaTeX.
cargo tex
# Refresh opened documentation.
With cargo tex
defined in .cargo/config. Note that navigating the documentation requires web access as KaTeX is embedded via remote CDN.
License
Copyright © 2021 Rouven Spreckels [email protected]
Licensed under the terms of the MPL-2.0
.
The MPL allows the integration of MPL-licensed code into proprietary codebases, as long as the MPL-licensed components remain accessible under the terms of the MPL.
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.