Crates.io | simdprune |
lib.rs | simdprune |
version | 0.1.0 |
source | src |
created_at | 2021-11-30 20:20:38.501571 |
updated_at | 2021-11-30 20:20:38.501571 |
description | Pruning elements in SIMD vectors (i.e., packing left/compressing elements) |
homepage | |
repository | https://github.com/TheIronBorn/simdprune |
max_upload_size | |
id | 489956 |
size | 5,585,756 |
Pruning elements in SIMD vectors
This crate is a port of Daniel Lemire's C library simdprune.
The mask "marks" values in the input for deletion. So if the mask is odd, then the first value is marked for deletion. This function produces a new vector that start with all values that have not been deleted.
Passing a mask of 0 would simply copy the provided vector.
Note that this is the opposite of the mask behavior of AVX512 VCOMPRESS/VPCOMRESS instructions. If you have AVX512 much of this crate can be performed with those instructions.
See prune_epi32
.
All features below are enabled by default.
no_std
crate attribute.prune_epi8
which require large tables (>1MB).
Disabling this may speed up compilation.