|Frédéric Bour 03a115f236||1 month ago|
|baltree||1 year ago|
|biarray||3 months ago|
|binpacking||1 year ago|
|countish||2 years ago|
|dbseq||1 month ago|
|doc||3 years ago|
|doubledouble||8 months ago|
|dset||2 months ago|
|hll||1 year ago|
|jmphash||1 year ago|
|orderme||1 year ago|
|pcg||1 year ago|
|physh||4 months ago|
|strong||3 months ago|
|trope||1 year ago|
|valmari||4 months ago|
|.gitignore||2 years ago|
|.travis.yml||3 months ago|
|CHANGES.md||1 month ago|
|LICENSE||3 years ago|
|Makefile||1 year ago|
|README.md||3 months ago|
|TODO||3 months ago|
|dune-project||8 months ago|
|grenier.opam||3 months ago|
Licensed under ISC license.
A binary tree with smart constructors that ensure the resulting tree is balanced.
This data structure can be used as a primitive on top of which one can easily build balanced data structures, including but not limited to binary search trees.
For instance, implementing stdlib-like Set/Map is trivial and suffers only a ~5 % overhead (and one gains a O(1) length/cardinal operation).
This data structure allows efficient implementation of text markers for text editors (see Emacs Markers).
More generally it allows to track the movement of objects on a line where chunks are added and removed, with queries O(log n) amortized time.
Finally, it is persistent so you easily compare markers movement between different revisions.
See Order-maintenance problem for a detailed description of what this intent to solve.
Main algorithm follows the amortized solution from “Two Simplified Algorithms for Maintaining Order in a List”, Michael A. Bender, Richard Cole, Erik D. Demaine, Martín Farach-Colton, and Jack Zito..
A managed implementation provide finer integration with OCaml GC to collect items that are no longer reachable via the public API.
An implementation of Maxrects packing algorithm in 2D. This algorithm try to pack a maximum number of 2d boxes inside a 2d rectangle.
Useful for generating spritesheets, texture atlases, etc.
An implementation of double-double arithmetic.
An implementation of the HyperLogLog probabilistic cardinality estimator. See HyperLogLog.
An implementation of “A Fast, Minimal Memory, Consistent Hash Algorithm” from John Lamping and Eric Veach.
Hashtables indexing OCaml values by their physical indentities. A proof-of-concept, playing with the GC in tricky ways.
Its main purpose is to efficiently observe sharing, detect cycles, etc, in arbitrary OCaml values without having to stop and stay out of the OCaml runtime.
Can be used to experiment and learn about the GC but do expect bugs and don't expect any kind of compatibility with future OCaml versions. (Would be nice to have proper upstream support for such feature though!)
This library defines a few strongly typed idioms that are sometimes useful in OCaml codebase:
An implementation of the algorithm desribed in Fast brief practical DFA minimization by Valmari et al.
The tests and some fixes come from WalkerCodeRanger/dfaMinimizationComparison, thanks!
Playing with PCG generators in OCaml. Not even alpha, consider this doesn't exist.