Expand description
Lane-Associated Vector (LAV): Portable SIMD vector trait as GAT of SIMD lane trait.
NOTE: This crate requires nightly Rust.
§Features
- SIMD lane trait
Real
abstracting overf32
andf64
. - 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 traitReal
implementing SIMD vector traitSimdReal<Self, N>
for itself as lane type where the GAT is generic over the number of SIMD vector lanesN
. - Supports AoS/SoA/AoSoA via
Real::as_simd
/Real::as_simd_mut
abstracting overas_simd
/as_simd_mut
off32
andf64
slices. - Lanewise approximate equality test wrt to epsilon and ULP SIMD vectors.
ApproxEq
trait complementingPartialEq
.no_std
without loss of functionality by enabling thelibm
feature.
This example
uses SIMD generically over floating-point types while hiding it from the user.
Modules§
Macros§
- swizzle
- Constructs vector by copying lanes from selected lanes of one or two input vectors.
Traits§
- Approx
Eq - Tests for approximate equality.
- Bits
- Bits representation of
Real
number with associatedSimdBits
vector. - Real
- Real number of
f32
orf64
with associatedBits
representation andSimdReal
vector. - Select
- Selects lanes from two vectors by mask vector.
- Simd
Bits - Bits representation vector of
SimdReal
vector with associatedSimdMask
vector. - Simd
Mask - Mask vector of
Mask<i32, N>
orMask<i64, N>
. - Simd
Real - Real number vector of
Simd<f32, N>
orSimd<f64, N>
with associatedSimdBits
andSimdMask
vector.