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.3. logsumexp

Online (1-pass) LogSumExp for iterators.

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!

Validate