release(v1.1.0): additive CPU-only generic numerical primitives
Adds 9 new top-level / sub-modules to the Rust API only (no Python
bindings yet), with at least one analytic unit test per module.
New Rust modules:
- optimal_control::matrix_riccati (RK4 backward solver)
- timeseries_utils::nonsync_covariance (Hayashi-Yoshida)
- timeseries_utils::wavelet (Haar / Daubechies DWT and MODWT)
- risk_measures (VaR, CVaR, projected sub-gradient CVaR minimisation)
- graph::laplacian + graph::spectral_clustering (Jacobi + k-means++)
- topology (Vietoris-Rips persistent homology, bottleneck distance)
- volterra (Caputo Adams, Markovian lift, second-kind Volterra,
Fourier inversion of characteristic functions)
- signatures (truncated tensor signature, log-sig, random reservoir,
Salvi-Cass-Lyons signature kernel, shuffle product)
All previously stable APIs untouched; abi3-py38 ABI preserved.
New module tests: 29/29 passing. Pre-existing 5 unrelated failures
unchanged.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to **optimiz-rs** are documented in this file. The format
|
||||
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project
|
||||
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.1.0] - 2026-05-12
|
||||
|
||||
### Added — purely additive, no existing API changes
|
||||
|
||||
- `optimal_control::matrix_riccati` — RK4 backward solver for the
|
||||
matrix Riccati differential equation
|
||||
`dA/dt = -2 A M A + Q`, plus terminal-condition variants for the
|
||||
associated affine and constant components.
|
||||
- `timeseries_utils::nonsync_covariance` — Hayashi--Yoshida estimator
|
||||
for asynchronous covariance, with parallel matrix variant.
|
||||
- `timeseries_utils::wavelet` — discrete and maximum-overlap wavelet
|
||||
transforms (Haar, Daubechies orders 2--10) with periodic boundaries.
|
||||
- `risk_measures` — empirical and parametric Value-at-Risk and
|
||||
Conditional Value-at-Risk estimators, plus a projected sub-gradient
|
||||
solver for convex CVaR minimisation over the unit simplex.
|
||||
- `graph::laplacian` — combinatorial, symmetric-normalised and
|
||||
random-walk graph Laplacians.
|
||||
- `graph::spectral_clustering` — spectral clustering via Jacobi
|
||||
diagonalisation and Lloyd's algorithm with k-means++ initialisation.
|
||||
- `topology::persistent_homology` — Vietoris--Rips persistent homology
|
||||
by the standard `Z/2` matrix-reduction algorithm.
|
||||
- `topology::bottleneck` — bottleneck distance between persistence
|
||||
diagrams via Hopcroft--Karp matching with binary search.
|
||||
- `volterra::fractional_riccati` — Adams predictor--corrector solver
|
||||
for Caputo fractional ODEs (Diethelm--Ford--Freed 2002).
|
||||
- `volterra::markovian_lift` — multi-exponential approximation of
|
||||
convolution kernels by non-negative least squares on a geometric
|
||||
grid.
|
||||
- `volterra::volterra_solver` — generic second-kind Volterra integral
|
||||
equation solver via product-trapezoidal quadrature.
|
||||
- `volterra::fourier_inversion` — direct trapezoidal Fourier inversion
|
||||
of a characteristic function on a uniform frequency grid.
|
||||
- `signatures::path_signature` — truncated tensor signature of a
|
||||
piecewise-linear path with truncated tensor exponential.
|
||||
- `signatures::log_signature` — truncated tensor logarithm of a
|
||||
signature.
|
||||
- `signatures::random_signature` — Cuchiero--Schmocker--Teichmann
|
||||
random reservoir projection of the signature.
|
||||
- `signatures::signature_kernel` — Salvi--Cass--Lyons signature kernel
|
||||
via the Goursat finite-difference scheme.
|
||||
- `signatures::utils` — shuffle product and Chen-identity-driven
|
||||
signature concatenation.
|
||||
|
||||
### Changed
|
||||
|
||||
- Bumped crate version from `1.0.1` to `1.1.0`. All previously stable
|
||||
symbols remain untouched and binary-compatible at the Python ABI
|
||||
level (`abi3-py38`).
|
||||
|
||||
### Notes
|
||||
|
||||
This release is **CPU-only and additive**. No Python bindings were added
|
||||
in `1.1.0`; the new modules are exposed via the Rust API only and will
|
||||
be wrapped behind the `python-bindings` feature in a follow-up release.
|
||||
Reference in New Issue
Block a user