Portable and versatile SIMD. https://crates.io/crates/polylane/
Find a file
2025-10-21 17:37:45 +02:00
src Rework 'Simd::transmute'; Add 'ptr' module; Add 'SimdConstPtr' and 'SimdMutPtr' traits to 'ptr'; Refactor code; Add 'offset', 'byte_offset', 'add', 'byte_add', 'sub', 'byte_sub', 'wrapping_offset', 'wrapping_byte_offset', 'wrapping_add', 'wrapping_byte_add', 'wrapping_sub', 'wrapping_byte_sub', 'map_addr', 'read', 'read_volatile', 'read_unaligned', 'addr', 'align_offset', 'is_null', 'is_aligned', 'with_addr', 'cast_mut', and 'cast' methods to 'SimdConstPtr'; Add 'null', 'with_exposed_provenance', 'without_provenance', and 'dangling' constructors to 'SimdConstPtr' and 'SimdMutPtr'; Add 'expose_provenance' destructor to 'SimdConstPtr' and 'SimdMutPtr'; Add 'SimdConstPtr' and 'SimdMutPtr' to the prelude; Simplify bounds; Add 'offset', 'byte_offset', 'add', 'byte_add', 'sub', 'byte_sub', 'wrapping_offset', 'wrapping_byte_offset', 'wrapping_add', 'wrapping_byte_add', 'wrapping_sub', 'wrapping_byte_sub', 'map_addr', 'read', 'read_volatile', 'read_unaligned', 'write', 'write_volatile', 'write_unaligned', 'addr', 'align_offset', 'is_null', 'is_aligned', 'with_addr', 'cast_const', and 'cast' methods to 'SimdMutPtr'; Add 'convert' module; Add 'cast' method to 'Simd'; Update tests; Update lints; 2025-10-21 17:37:45 +02:00
.env Add 'map' method to 'Simd'; Rename 'SimdUint' to 'SimdUintExt'; Rename 'SimdInt' to 'SimdIntExt'; Rename 'SimdFloat' to 'SimdFloatExt'; Add 'BITS' constant to 'SimdUintExt' and 'SimdIntExt'; Update environment; Add 'ZERO' and 'ONE' constants to 'SimdUintExt', 'SimdIntExt', and 'SimdFloatExt'; Remove 'num' and 'ptr' features; Always depend on 'multitype'; Decrease MSRV to 1.90; Clean up code; Rewrite numeric traits; Remove 'Self' requirements from 'SimdUintExt', 'SimdIntExt', 'SimdFloatExt', 'SimdStdFloatExt'; Merge 'SimdStdFloat' into 'SimdFloatExt'; Add 'classify' and 'total_cmp' methods to 'SimdFloatExt'; 2025-10-08 16:37:24 +02:00
.gitignore Add gitignore; Add 'zerocopy' and 'bytemuck' features; Add 'f16' and 'f128' features; Add SIMD types; Add 'splat' and 'from_array' constructors to SIMD types; Add 'as_array' and 'as_mut_array' methods to SIMD types; Add 'to_array' destructor to SIMD types; Add 'LEN' constant and 'len' method to SIMD types; Implement instances of 'Add', 'Sub', 'Mul', 'Div', and 'Rem' for SIMD types; Implement 'Clone', 'Copy', 'Debug', 'FromBytes', 'IntoBytes', 'KnownLayout', 'Pod', and 'Zeroable' for SIMD types; Implement 'Default' for SIMD types; License under MPL 2; 2025-07-22 16:17:50 +02:00
Cargo.toml Rework 'Simd::transmute'; Add 'ptr' module; Add 'SimdConstPtr' and 'SimdMutPtr' traits to 'ptr'; Refactor code; Add 'offset', 'byte_offset', 'add', 'byte_add', 'sub', 'byte_sub', 'wrapping_offset', 'wrapping_byte_offset', 'wrapping_add', 'wrapping_byte_add', 'wrapping_sub', 'wrapping_byte_sub', 'map_addr', 'read', 'read_volatile', 'read_unaligned', 'addr', 'align_offset', 'is_null', 'is_aligned', 'with_addr', 'cast_mut', and 'cast' methods to 'SimdConstPtr'; Add 'null', 'with_exposed_provenance', 'without_provenance', and 'dangling' constructors to 'SimdConstPtr' and 'SimdMutPtr'; Add 'expose_provenance' destructor to 'SimdConstPtr' and 'SimdMutPtr'; Add 'SimdConstPtr' and 'SimdMutPtr' to the prelude; Simplify bounds; Add 'offset', 'byte_offset', 'add', 'byte_add', 'sub', 'byte_sub', 'wrapping_offset', 'wrapping_byte_offset', 'wrapping_add', 'wrapping_byte_add', 'wrapping_sub', 'wrapping_byte_sub', 'map_addr', 'read', 'read_volatile', 'read_unaligned', 'write', 'write_volatile', 'write_unaligned', 'addr', 'align_offset', 'is_null', 'is_aligned', 'with_addr', 'cast_const', and 'cast' methods to 'SimdMutPtr'; Add 'convert' module; Add 'cast' method to 'Simd'; Update tests; Update lints; 2025-10-21 17:37:45 +02:00
CHANGELOG.md Rework 'Simd::transmute'; Add 'ptr' module; Add 'SimdConstPtr' and 'SimdMutPtr' traits to 'ptr'; Refactor code; Add 'offset', 'byte_offset', 'add', 'byte_add', 'sub', 'byte_sub', 'wrapping_offset', 'wrapping_byte_offset', 'wrapping_add', 'wrapping_byte_add', 'wrapping_sub', 'wrapping_byte_sub', 'map_addr', 'read', 'read_volatile', 'read_unaligned', 'addr', 'align_offset', 'is_null', 'is_aligned', 'with_addr', 'cast_mut', and 'cast' methods to 'SimdConstPtr'; Add 'null', 'with_exposed_provenance', 'without_provenance', and 'dangling' constructors to 'SimdConstPtr' and 'SimdMutPtr'; Add 'expose_provenance' destructor to 'SimdConstPtr' and 'SimdMutPtr'; Add 'SimdConstPtr' and 'SimdMutPtr' to the prelude; Simplify bounds; Add 'offset', 'byte_offset', 'add', 'byte_add', 'sub', 'byte_sub', 'wrapping_offset', 'wrapping_byte_offset', 'wrapping_add', 'wrapping_byte_add', 'wrapping_sub', 'wrapping_byte_sub', 'map_addr', 'read', 'read_volatile', 'read_unaligned', 'write', 'write_volatile', 'write_unaligned', 'addr', 'align_offset', 'is_null', 'is_aligned', 'with_addr', 'cast_const', and 'cast' methods to 'SimdMutPtr'; Add 'convert' module; Add 'cast' method to 'Simd'; Update tests; Update lints; 2025-10-21 17:37:45 +02:00
clippy.toml Add 'simd', 'mask', and 'cmp' modules; Move 'Simd', 'SimdElement', 'Layout', and 'ValidLayout' to 'simd'; Move 'Mask', 'MaskElement', and 'MaskTryFromIntError' to 'mask'; Move 'SimdPartialEq', 'SimdPartialOrd', and 'SimdOrd' to 'cmp'; Add 'SimdEq' trait to 'cmp'; Move 'SimdIter', 'SimdIterMut', and 'SimdIntoIter' to 'simd' and rename to 'Iter', 'IterMut', and 'IntoIter'; Add 'as_int_slice' and 'as_int_slice_mut' methods to 'Mask'; Add 'as_int_array' and 'as_int_array_mut' methods to 'Mask'; Fix 'SimdPartialEq' for 'Simd<T, _>' requiring 'T: PartialOrd'; Fix 'u32' being used for bitmasks instead of 'u64'; Add 'num' feature; Bump MSRV to 1.91; 2025-08-19 21:58:36 +02:00
README.md Improve 'zerocopy::IntoBytes' coverage for 'Simd'; Add 'unstable_docs' feature; Implement 'zerocopy::Unaligned' for 'Simd'; Add 'serde' feature; Implement 'serde::Serialize' and 'serde::Deserialize' for 'Simd' and 'Mask'; Add 'transmute' method to 'Simd'; Fix 'Simd::map' taking mutable 'self' reference; Rename 'SimdUintExt' back to 'SimdUint'; Rename 'SimdIntExt' back to 'SimdInt'; Rename 'SimdFloatExt' back to 'SimdFloat'; Add 'overflowing_add', 'overflowing_add_signed', 'overflowing_sub', 'overflowing_sub_signed', 'overflowing_mul', 'overflowing_div', 'overflowing_div_euclid', 'overflowing_rem', 'overflowing_rem_euclid', 'overflowing_shl', 'overflowing_shr', 'overflowing_neg', and 'overflowing_pow' methods to 'SimdUint'; Fix remaining 'Self' requirements for 'SimdFloat'; Rework comparison traits; Remove 'SimdEq'; Remove 'as_bits' and 'as_bits_mut' from 'SimdFloat'; Add 'overflowing_add', 'overflowing_add_unsigned', 'overflowing_sub', 'overflowing_sub_unsigned', 'overflowing_mul', 'overflowing_div', 'overflowing_div_euclid', 'overflowing_rem', 'overflowing_rem_euclid', 'overflowing_shl', 'overflowing_shr', 'overflowing_neg', 'overflowing_abs', and 'overflowing_pow' methods to 'SimdInt'; Update docs; Clean up code; Improve safety; Optimise more operations; Add 'IntoIter' type to 'Mask'; Implement 'IntoIterator' for 'Mask'; Update lints; Update tests; Add readme; Lessen 'Layout<(), N>: ValidLayout' bounds; Add 'iter' method to 'Mask'; Fix 'test' and 'test_unchecked' in 'Mask'; Fix 'set' and 'set_unchecked' in 'Mask' not resetting values; Remove 'Iter', 'IterMut', and 'IntoIter' from 'simd'; 2025-10-18 12:25:32 +02:00

PolyLane

This crate defines SIMD facilities thay may be used on any given platform in any way that ordinary arithmetic primitives are used.

Testing

It is recommended to use the .env environment file when testing:

source .env; cargo test --all-features