Design Rationale

Design Rationale#

User-facing design documentation for normix — the why behind the API and algorithms. For class and method reference see the API Reference.

Quick lookups#

Question

Where to read

Why two classes for each mixture distribution?

Mixture Architecture § 1

Why three classmethod tiers for the log-partition?

Exponential Family Core § 2

What does 'det_sigma_x' regularisation do?

EM Framework § 5

Why CPU backend for Bessel and GIG solve?

Solvers and Bessel Functions § 3–4

Is jax.grad(log_kv) the same as log_kv_moments.d_arg?

Solvers and Bessel Functions § 3.1; Bessel functions and log_kv

Why not Adam / L-BFGS on the observed NLL?

Why not gradient descent

See also#