Skip to content

Releases: c-blake/adix

Rename adix/stat -> mvstat; Fix nimble install

29 Mar 22:45
6365c97
Compare
Choose a tag to compare

Big thing is stat -> mvstat rename; Right now the old name is still available but deprecated. Will probably be removed in 0.6.0.

Fix nimble install by moving cstats -> bu. Thanks to @Gruruya for pointing out the problem in #5 .

Updates, add tdigest, uniqce sketches

19 Mar 23:04
36eef9c
Compare
Choose a tag to compare

In more detail:

  • Add merge API to lghisto
  • Add tdigest tail quantile sketch.
  • Add cardinality estimation sketch uniqce.nim
  • Improve doc generation/re-do README to point to it.
  • Rename adix/stat -> adix/mvstat

Even more in git log -p, of course.

B-tree & lfreq adjustments, slimSystem, add adix/amoft

12 Mar 11:19
e2789ea
Compare
Choose a tag to compare

Various B-tree fix-ups to make some things discardable/marked used/etc.

Allow user to boost util/lfreq data space, though it should be replaced by a less hokey thing when concepts work better..

Add new Count-Min Sketch-based adix/amoft.nim module for approximately k-most often problems, where right now k is not too large (probably need to tie into B-tree for large k and dynamically switch over for large k since the heap-scan-table is probably faster for k < 2000 which is likely the common case).

3 changes

24 Jan 11:41
Compare
Choose a tag to compare

Just:

  • Get LPTabz.mmap compiling (but not quite working) under arc again. Works under refc, though.
  • Track cligen findPathPattern for tests/anaPrime
  • Add --uniq to util/lfreq

Fix bugs & add tests/wf-alike util/lfreq, util/cstats

14 Jan 21:22
Compare
Choose a tag to compare

Fix div by zero bugs, sequint.add from empty bug, in stat try to document why of SIMD-vectorized routines better and ease actually getting that boost, add stat.range for both min & max in 1-pass.

Track cligen pm=" +- " to just "+-" change in cstats and add it to the nimble install. Also add lfreq to the nimble install. Add cligen dependency for the two utilities.

Signature edits, warning clean-up, utility tweaks, add lfreq

23 Dec 18:50
Compare
Choose a tag to compare

The big patch is a change from z:static[int] to z:static int in signatures. Also a warning clean-up and a couple of tweaks to utilities tests/wf and util/cstats as well as adding util/lfreq which is what mostly motivates the timing of this release.

Cross Nim Portability, cstats, scope fix

08 Dec 19:27
Compare
Choose a tag to compare

Various cross Nim portability work (previewSlimSystem, BadIndex, tcc wf, etc.), Add ad hoc contextual statistics filter cstats, and a minor scope fix in adix/lptabz.nim.

Bug fixes & doc clean ups

14 Oct 12:26
Compare
Choose a tag to compare

Bug fixes are mostly Nim portability Re IndexDefect and lghisto quantiles.

Doc clean-ups are a lot & varied. git log has details.

Bug fixes & minor define-controls

17 Jun 16:05
Compare
Choose a tag to compare

Fix a bad bug of histogramming x instead of unshifted x0 and make
MovingStat work with OrderStats

Guard cligen usage with defined(useCligen) {to make .nimble not lie} and
also introduce -d:portablensort to deactivate Intel-specific PEXT32/64 nsort
optimizations. { Yes, yes..should just auto-detect/cpuid/etc. }

Make a couple test programs nicer.

`del` BREAKING CHANGE + new modules

15 Dec 16:20
Compare
Choose a tag to compare

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 like tDigest 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 like float32 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.