mathlib-fp 1.8.0
Released 2026-07-30.
Version 1.8.0 delivers a deliberately bounded applied-numerics layer on the
typed dense and modelling foundations from 1.5–1.7. This release also closes
the implementation/documentation gaps found by an exhaustive audit of the
published 1.7 and active 1.8 roadmap requirements. DSP, inference, fitting,
typed data analysis, and scalar/multivariate state-space examples reuse the same
TDoubleArray, TComplexArray, and typed dense matrices. The release also
adds reproducible local random state, portable numerical interchange, and a
deterministic serial blocked matrix path.
User-visible additions
MathBase.Random:TLocalRandomand explicit four-wordTRandomState, with
deterministic replay and split streams and no mutation of RTLRandSeed.StatsLib.Streaming: weighted, online, mergeableTOnlineStatisticswith
a documentedTNonFinitePolicyand constant retained state.EngineeringLib.DSP:TDSPKit,TFFTNormalization, arbitrary-length and
batched/2-D real/complex transforms, direct/FFT and overlap-add/save
convolution, correlation, resampling, window metrics,
periodogram/Welch/STFT, analytic/cross spectra, Haar transform, plus bounded
block/FIR/biquad state.StatsLib.Inference: paired normal/exponential/binomial operations,
parameter estimates, t/ANOVA/contingency/rank tests, multiplicity
corrections, SVD OLS diagnostics, and separation-aware binary logistic
regression.MLLib.Analysis: typed-dense PCA (TPCAResult), seeded k-means++
(TKMeansPlusPlusResult), fitted standardization, deterministic
validation/k-fold splits, binary LDA, hierarchical clustering, seeded
classification/regression forests with OOB/importance diagnostics, and exact
low-dimensionalTKDTreequeries.TimeSeriesLib.StateSpace: explicit scalar and dense multivariate
linear-Gaussian Kalman configuration, block processing, likelihood,
innovations, covariances, and forecasts.MathBase.Interchange: invariant scalar/vector/matrix text, delimited
matrices, a dense Matrix Market subset, typed metadata/complex summaries,
and a versioned,
checksummed little-endian binary format for double/complex vectors,
typed-dense matrices, and RNG state.InterchangeLib.Models: versioned, capped, checksummed cubic-spline,
streaming-FIR, fitted-standardization, and scalar-Kalman adapters.MathBase.Expressions: bounded arithmetic over immutable scalar, vector,
and dense-matrix bindings with no scripting or I/O primitives.AlgebraLib.DenseKernels:TDenseMultiplyPath,
MultiplyBlockedInto,MultiplyAutoInto, andSelectedMultiplyPath.- The 1.7 modelling/optimisation surface now includes natural/clamped/
not-a-knot splines, explicit complex-step callbacks, vector forward AD and
derivative checks, cubature/local-RNG Monte Carlo, scaled/covariance-aware
fitting, all-complex polynomial roots, component ODE tolerances, detailed
bounded/trust/constrained/multistart/Pareto solvers, warm-start workspaces,
two-phase simplex, and QP failure/certificate diagnostics.
The applied numerics guide, interchange
guide, and portable-performance guide
document selection, units, ownership, mutation, indexing, shapes, resource
bounds, error behavior, and compatibility.
Compatibility
The release is additive. Existing 1.7 and earlier public signatures remain
available, and the established EngineeringLib.Signal FFT is unchanged.
Every new API uses zero-based arrays and row/column typed-matrix indexing.
Input arrays and streams are borrowed for a call; returned arrays and matrices
own their values. Stateful records copy their state on assignment.
Binary interchange and model adapters have explicit format versions and byte order. Callers can
set an element cap. Loaders verify magic, version, kind, shape, payload size,
complete input, finite numeric values, and CRC-32 before returning a value.
Accuracy and performance evidence
The portable DFT and portable dense multiply are correctness oracles.
Arbitrary-length transforms agree with the direct DFT within 2e-12 on the
published double fixture, 2-D double round trips within 2e-11, single
round trips within 2e-5, and FFT/direct/block convolution within 1e-12.
Portable, blocked, and automatic matrix multiplication agree exactly on the
tested deterministic traversal.
The 1.8 qualification report publishes the complete
gate, bounded-state and corrupt-input evidence, and performance changes from
1.7.0. Timing statements are workload- and machine-specific, not universal
speed claims.
Release qualification completed on 2026-07-30 with 899 passing tests across
the documented Win64 and Win32 configurations, all 22 examples, both Lazarus
package targets, documentation and clean-archive checks, and the required
Linux and Windows GitHub Actions pull-request and push workflows.
Known limitations and open roadmap work
- FIR/overlap state is bounded by tap count; biquad state has two delay values.
Equiripple and Chebyshev/elliptic/Bessel design, broader wavelets/wavelet
packets, and broader multirate workflows remain conditional and unqualified. - Streaming statistics expose moments through variance. The inference layer
is a portable double baseline; survival/factor analysis, robust covariance,
multinomial/count GLMs, and certified exact tables remain open. - Data analysis is dense, serial, and in-memory. Impurity importance has its
documented bias and the small-data hierarchy baseline is cubic. - State-space support is time-invariant and linear-Gaussian. Controls,
missing-observation handling, smoothing, and parameter estimation remain
open. - Matrix Market support is the dense array real/complex general subset.
Selected models have adapters; decompositions, forests, arbitrary model
graphs, and multivariate state are not persisted. - ODEs remain explicit/non-stiff with no mass-matrix path. Interior-point LP,
general quadratic/conic certificates, sparse, and integer optimisation are
not claimed. - The optimized matrix path is serial and deterministic. No parallel,
thread-pool, SIMD, ARM64, or vendor-library dispatch is claimed.
These gaps are marked unsupported in
capabilities.json; no later-roadmap API is included.