this repo has no description
1opam-version: "2.0" 2maintainer: "Frederic Bour <frederic.bour@lakaban.net>" 3authors: "Frederic Bour <frederic.bour@lakaban.net>" 4homepage: "https://github.com/let-def/grenier" 5bug-reports: "https://github.com/let-def/grenier" 6license: "ISC" 7dev-repo: "git+https://github.com/let-def/grenier.git" 8doc: "https://let-def.github.io/grenier/doc" 9build: [ 10 ["jbuilder" "subst" "-p" name] {dev} 11 ["jbuilder" "build" "-p" name "-j" jobs] 12] 13depends: [ 14 "ocaml" {>= "4.02" & < "4.10"} 15 "jbuilder" {>= "1.0+beta7"} 16] 17synopsis: "A collection of various algorithms in OCaml." 18description: """ 19Licensed under ISC license. 20 21## baltree : Generic balanced-tree 22 23A binary tree with smart constructors that ensure the resulting tree is 24balanced. 25 26This data structure can be used as a primitive on top of which one can easily 27build balanced data structures, including but not limited to binary search 28trees. 29 30For instance, implementing stdlib-like Set/Map is trivial and suffers only a ~5 31% overhead (and one gains a O(1) length/cardinal operation). 32 33## trope : Track objects accross rope-like operations 34 35This data structure allows efficient implementation of text markers for text editors (see 36[Emacs Markers](http://www.gnu.org/software/emacs/manual/html_node/elisp/Markers.html)). 37 38More generally it allows to track the movement of objects on a line where 39chunks are added and removed, with queries O(log n) amortized time. 40 41Finally, it is persistent so you easily compare markers movement between 42different revisions. 43 44## orderme : Order-maintenance problem 45 46See [Order-maintenance problem](https://en.wikipedia.org/wiki/Order-maintenance_problem) 47for a detailed description of what this intent to solve. 48 49Main algorithm follows the amortized solution from "Two Simplified 50Algorithms for Maintaining Order in a List", Michael A. Bender, Richard Cole, 51Erik D. Demaine, Martín Farach-Colton, and Jack Zito.. 52 53A managed implementation provide finer integration with OCaml GC to collect 54items that are no longer reachable via the public API. 55 56## binpacking : Maxrects rectangle packing implementation 57 58An implementation of Maxrects packing algorithm in 2D. This algorithm try to 59pack a maximum number of 2d boxes inside a 2d rectangle. 60 61See [Even More Rectangle Bin Packing](http://clb.demon.fi/projects/even-more-rectangle-bin-packing) 62 63Useful for generating spritesheets, texture atlases, etc. 64 65## doubledouble : Floating points with around 107-bits precision 66 67An implementation of [double-double arithmetic](https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format#Double-double_arithmetic). 68 69Code is translated from [DD](http://tsusiatsoftware.net/dd/main.html) by Martin Davis. 70See [tsusiatsoftware](http://tsusiatsoftware.net) for more information. 71 72## hll : HyperLogLog 73 74An implementation of the HyperLogLog probabilistic cardinality estimator. 75See [HyperLogLog](https://en.wikipedia.org/wiki/HyperLogLog). 76 77## jmphash : Jump consistent hashing 78 79An implementation of 80["A Fast, Minimal Memory, Consistent Hash Algorithm"](http://arxiv.org/abs/1406.2294) 81from John Lamping and Eric Veach. 82 83## physh : Physical hashtable 84 85Hashtables indexing OCaml values by their physical indentities. A 86proof-of-concept, playing with the GC in tricky ways. 87 88Its main purpose is to efficiently observe sharing, detect cycles, etc, in 89arbitrary OCaml values without having to stop and stay out of the OCaml 90runtime. 91 92Can be used to experiment and learn about the GC but do expect bugs and don't 93expect any kind of compatibility with future OCaml versions. 94(Would be nice to have proper upstream support for such feature though!) 95 96## valmari : Valmari's DFA minimization algorithm 97 98An implementation of the algorithm desribed in [Fast brief practical DFA 99minimization](https://dl.acm.org/citation.cfm?id=2109576) by Valmari et al. 100 101The tests and some fixes come from 102[WalkerCodeRanger/dfaMinimizationComparison](https://github.com/WalkerCodeRanger/dfaMinimizationComparison), thanks! 103 104## pcg : PCG random generator 105 106Playing with [PCG generators](http://www.pcg-random.org/) in OCaml. 107Not even alpha, consider this doesn't exist.""" 108url { 109 src: 110 "https://github.com/let-def/grenier/releases/download/v0.7/grenier-0.7.tbz" 111 checksum: [ 112 "sha256=c2ab40ae80bce5e48f940925dc594f0886c1e54281ed32f28902bea3a3fe5de9" 113 "md5=fea64f9534b5a99df7d53665692af0be" 114 ] 115}