# Changelog

All notable changes to nexus-stats-detection are documented here.

The format is based on [Keep a Changelog](https://keepachangelog.com/),
and this project adheres to [Semantic Versioning](https://semver.org/),
with the project-specific allowance that a minor bump may carry small,
narrowly-scoped breaking changes when external blast radius is
contained.

## [Unreleased]

## [1.2.0] — 2026-05-26

## [1.2.0] — 2026-05-26

## [1.2.0] — 2026-05-26

## [1.2.0] — 2026-05-20

### Added

- **`DistDriftF64` / `DistDriftF32`** — distribution drift metrics: KL divergence,
  Jensen-Shannon divergence, Wasserstein-1 distance over reference/live histograms.
  Equi-width bins with Laplace smoothing. Requires `alloc` + (`std` or `libm`).
- **`BocpdF64`** — Bayesian Online Change Point Detection (Adams & MacKay 2007).
  Gaussian observation model, Normal-Inverse-Gamma conjugate prior, truncated
  run-length posterior. O(W) per update. Requires `alloc` + (`std` or `libm`).
- **`nexus_stats_core::math::ln_gamma`** — Lanczos approximation for log-gamma (f64).
- **`nexus_stats_core::math::ln_f32`** / **`exp_f32`** — f32 transcendental functions.

## [1.1.0] — 2026-05-18

### Added

- **`PageHinkleyF64` / `PageHinkleyF32`** — sequential test for mean drift.
  O(1) per update, two-sided (detects upward and downward shifts).
- **`AdwinF64` / `AdwinF32`** — adaptive windowing for distribution change
  detection (Bifet & Gavalda, 2007). O(log n) per update, O(log n) memory.
  Requires `alloc` + (`std` or `libm`).
- **`PredictiveInfoBoundF64` / `PredictiveInfoBoundF32`** — streaming binned
  mutual information I(X;Y) with Miller-Madow bias correction. Equi-width
  bins on user-specified ranges. Requires `alloc` + (`std` or `libm`).

## [1.0.1] and earlier

Earlier history is not documented in this CHANGELOG. See git history
and GitHub release notes for details.
