Table of Contents
Might be of interest?
1. Articles
1.1. Greatest convex minorant / least concave majorant
Currently in pre-pre-print stage, but the idea is crystallized. More
will be added (e.g. online algorithm), but in order to get it on
crates.io
sooner rather than later, while providing users a rigorous
foundation, I opt for release here. This needs endorsement prior to
submission to arXiv.org
. When that happens, the link will be updated
to point there.
2. Julia packages
The useful ones
2.1. Whitening.jl
Whitening transformations: forward and inverse. Lightweight, with no
dependencies other than LinearAlgebra
stdlib.
2.2. OptimizationTestFunctions.jl
A wide variety of functions, \(f : \mathbb{R}^{n} \mapsto \mathbb{R}\), which are most frequently used to test mathematical optimization algorithms. Also handy for testing automatic differentiation implementations.
2.3. VectorizedReduction.jl
Codegen for fast folds.
2.4. LogExpFunctionsExt.jl
Update: these were merged into the LogExpFunctions.jl package.
2.5. MarsagliaDiscreteSamplers.jl
Very fast samplers for discrete probability distributions.
2.6. CategoricalMonteCarlo.jl
Ever wanted to sample from very high-dimensional joint distributions comprised entirely of discrete, independent marginals? This package does just that; it also offers various options for in-place transformation.
2.7. RecursiveTiles.jl
Ever receive the following? A table comprised of flattened trees, with:
- parent-child relationships spanning more than one column
- arbitrary order of columns, with no correspondence to parent-child relationship
- multiple flattened trees vertically concatenated into the same table, but with unspecified begin/end
If so, welcome to my life a few years ago. This package will enable you to roll that mess back into trees with a few lines of code.
2.8. MonteCarloSummary.jl
The name says it all.
3. Rust crates
3.1. cmdstan-rs
The README sort of says it all: do you need to integrate Stan in your system being developed in Rust? If yes, then you want this crate!
Eventually I'll get around to getting the PR merged… life has taken a few unexpected branches since January 2024.
3.2. lnexp
Compositions of log
, log1p
, exp
, and expm1
, carefully
evaluated so as to avoid underflow/overflow.
3.4. gcm-lcm
Greatest convex minorant, least concave majorant. Useful for variety of purposes; my interest was related to stochastic processes, but has general applicability as a convex (or concave) function approximator.
3.5. horner-eval
Evaluate polynomials using Horner's method. Unroll polynomials of
fixed size at compile time (and use MulAdd
); useful if writing
numerical libraries.
4. Rust applications
4.1. dungeoncrawl
You have probably played a video game at some point. Have you ever created one? The latter is more interesting, I promise!