Daniel Lemire

Results 1866 comments of Daniel Lemire

If you know it is white space, then you can trim it out as a first pass. Super fast if AVX-512 is available, slower but still fast otherwise. I can...

E.g., when I load the data, I can add a branch that checks for white space and prune it out dynamically as needed.

> And, as for the multiplication, for base16 we can get away with a simple shift(?) Last night, I managed to get... ``` const __m128i t1 = _mm_srli_epi32(v, 4); const...

> Note that for simdzone if there's white space we need to stop as for contiguous strings that's a delimiter and the next set of characters may not be complete....

> Note that for simdzone if there's white space we need to stop as for contiguous strings that's a delimiter and the next set of characters may not be complete....

I added a version (`base16hex_simd_skipspace`) that can turn `"666 F 6 F6 261 72"` into `"foobar"`. That is, we skip the spaces. There is a performance penalty but it is...

Blog post: [Decoding base16 sequences quickly](https://lemire.me/blog/2023/07/27/decoding-base16-sequences-quickly/). Whether this can be used in simdzone productively is an open question. Typically, one would first test whether a fast path is possible, and...

You probably don't want to use generic code. I suggest that the code should be tailored to the data you do have, with possible fallbacks when the data has an...

Base64 will have the same problem. Basically, you can wipe out all or most of the benefits of fast parsing if you optimize for arbitrary inputs instead of the inputs...

> An initial port of simd.h won't require much work and halves the number of operations for the scanner. In many instances, AVX-512 *can be* twice as fast on the...