Stuff I actively maintain:
declarative is a suite of Markov Chain Monte Carlo (MCMC) libraries for Haskell. In addition to declarative itself, it consists of the following libraries that each export a production-quality transition operator and sampler:
There’s also mcmc-types which provides a bunch of types common to each.
You can create custom Markov chains using arbitrary convex combinations of these transition operators via a simple shallowly-embedded DSL. There’s basic support for annealing of transition operators, as well.
flat-mcmc is a production-quality implementation of a so-called affine invariant ensemble sampler. It is an excellent general-purpose Monte Carlo sampler that requires zero fiddling while being suitable for many problems.
mwc-probability is a sampling-based probability monad implemented as a simple wrapper over the mwc-random library.
sampling is a Haskell library providing basic functionality for sampling with/without replacement from arbitrary Foldable collections.
Miscellanea potentially of wider interest:
NestedSampling.hs is a Haskell implementation of Skilling’s nested sampling that I co-authored with Brendon Brewer.
hnuts is an implementation of the No U-Turn Sampler (NUTS) in Haskell.
measurable is a simple, shallowly-embedded, illustrative language for working with measures in the form of the Giry monad.
bnp contains some exploratory R work I did around various Bayesian nonparametrics models in 2016.
deanie is a toy embedded probabilistic programming language supporting rejection sampling, importance sampling, and basic Metropolis sampling.
Some stuff that I wrote or maintain:
urbit-ob provides JavaScript support for dealing with Urbit’s @p and @q auras, used for ship names and arbitrary data.
urbit-hob is the same, but for Haskell.
up is a priority search queue (+up) and LRU cache (+lu), complete with a full suite of jets, in the spirit of haskell’s psqueues library.
urbit-key-generation provides a JavaScript implementation of the UP8 hierarchical wallet.
up8-ticket is a simple JavaScript library for securely generating and sharing UP8-compatible, @q-encoded master tickets via e.g. HMAC-DRBG and Shamir’s Secret Sharing.
azimuth-hs is a Haskell library providing Azimuth contract bindings.
azimuth-js is the same, but for JavaScript.
Assorted stuff potentially of broader interest:
lgram is a simple command-line tool for drilling Latin grammar.
ti3-sampler is a simple little application I hacked together for sampling random locations on a Twilight Imperium board.
praxis are various programming exercises I’ve done over the years, mostly taken from Programming Praxis.
cryptopals contains solutions (in Rust, shell) to some of the famous cryptopals exercises.
okasaki contains toy Haskell implementations of various data structures from Chris Okasaki’s Purely Functional Data Structures.