`del` BREAKING CHANGE + new modules
There is a breaking change here. To be more drop-in semantically for the std/(tables|sets)
world, lptabz.del
& ditab.del
no longer raise on missing keys. (Use missingOrExcl
not exceptions if you want to test for that.) Sorry for the breaking change but cross/drop-in compatibility seems more important than backward compatibility at this stage of (guessed) user base. I must have not looked carefully at std/tables.del
. Apologies.
Other changes:
- Speed-up
adix/stat
a bit. (backend C compilers need to at least ignore gcc __attribute__ ...). btree.add
parameter order change to default queue discipline- Rename
bist
->Bist
for general Nim convention consistency. - New Bist-based module
lghisto
that is an alternative to things liketDigest
but supports efficient tunable approximations to moving quantiles (where data changes point-by-point). - New module
cumsum
for SIMD-optimized cumulative summation (sometimes called running sums or parallel prefix sum). - New module
nsort
which does a optimized radix sort. I think the "bit level digit plan" using Intel's parallel bit extraction instruction may be a novel optimization or at least application of PEXT. (Byte level analogues probably date to early IBM sorting card research, though.) Bit-level should be great for things likefloat32
keys with data sets of similar order of magnitude keys probably being 2-pass. There are other standard optimizations in there, too. Read the module top.