| Crates.io | macerator |
| lib.rs | macerator |
| version | 0.2.9 |
| created_at | 2025-02-24 13:02:48.576586+00 |
| updated_at | 2025-08-07 16:38:55.291078+00 |
| description | Type and target-generic SIMD |
| homepage | |
| repository | https://github.com/wingertge/macerator |
| max_upload_size | |
| id | 1567445 |
| size | 218,509 |
Originally a thin wrapper around pulp to provide type-generic SIMD
operations using similar traits to the standard library, but now uses its own backend for more ergonomic
type inference behaviour and wider backend support. As backends are stabilized in Rust, the MSRV will
be increased and nightly requirements will be removed. For crates with a lower MSRV, older versions
should be automatically used by cargo.
To avoid a major MSRV bump, AVX-512 currently checks the rustc version and enables AVX-512 on stable if it's 1.89 or greater. This will eventually be removed and replaced by an MSRV bump.
| Feature set | Tested on | Requires Nightly |
|---|---|---|
| x86_64-v2 (sse4.1) | Hardware | ❌ |
| x86_64-v3 (avx2) | Hardware | ❌ |
| x86_64-v4 (avx512) | Hardware | <1.89: ✅, >= 1.89: ❌ |
| aarch64 (Neon) | Hardware | ❌ |
| loongarch64 (lsx) | QEMU | ✅ |
| loongarch64 (lasx) | QEMU | ✅ |
| wasm32 (simd128)1 | Chrome | ❌ |
| Any other target | None2 | ❌ |
f16 support for x86_64-v4 is disabled by default, since only one
Intel arch currently supports it, and AMD has no support. This may change as support expands. Note
that this also requires nightly, even once avx512 stabilization is done.
fn clamp<S: Simd, T: VOrd>(value: Vector<S, T>, min: T, max: T) -> Vector<S, T> {
let min = min.splat();
let max = max.splat();
value.min(max).max(min)
}