v1.5.3 is the last release of the v1.x series. v2.0.0 is in active
development and will introduce breaking API changes. Pin to v1.5.3 if
you need a stable v1.x baseline; migration notes will accompany v2.0.0.
Validated on all four machines: Kaby Lake AVX2+FMA (39/39),
Ivy Bridge AVX (38/38), Mac Mini M1 NEON (39/39),
Asus TUF A16 AVX-512 (39/39).
Bug fixes
- BF-1: Remove
noexceptfromUniformDistributionmove constructor
— the specifier contradicted its own@warningcomment; a throwing
mutex acquisition would have calledstd::terminate - BF-2: Fix version constants frozen at
1.2.0— corrected to1.5.3
and tied to the CMakeListsproject(VERSION) - BF-3: Move type aliases (
Gaussian,Normal, …) inside the
LIBSTATS_FULL_INTERFACEguard — using them without the full interface
produced confusing incomplete-type errors on first use - BF-4: Fix
libstats-config.cmake.inexported target names
(libstats::static→libstats::libstats_static) —find_package
compatibility variables were never populated in any prior install
Deprecation sweep
Adds [[deprecated("...")]] compiler-warning attributes to every API
element scheduled for removal in v2.0.0, giving consumers a
compiler-warning cycle before the breaking release:
- All 48
*WithStrategyexplicit batch methods (16 distributions × 3) DistributionBase::getBatchProbabilities/LogProbabilities/ CumulativeProbabilities/QuantilesDistributionBase::getKLDivergenceMemoryPool,SmallVector,StackAllocator,simd_vector
(entiredistribution_memory.h)PerformanceDispatcher::Thresholds::refineWithCapabilities
VonMises
- Add
getMedian()— the distribution is symmetric about μ; the method
was absent from the core contract shared by all other distributions - Correct stale "VectorOps has no
vector_cos" comments — the 4-step
SIMD pipeline has been active since v1.4.0 - Rename
*BatchImpl→*BatchUnsafeImplthroughout header and.cpp
to match the naming convention used by all other distributions
CI fixes
avx512-compilation.yml: fix silently swallowed compilation failures
(|| echo→|| { …; exit 1; }); correct include path to
build/include_shim(the previous-I includepath never resolved the
libstats/prefix, so the check was a no-op on every prior run);
update compiler matrix from gcc-12/clang-15 to gcc-13/clang-17
(clang-15 is incompatible with the libstdc++14 headers now on
ubuntu-latest)ci.ymllint job:clang-format-15/clang-tidy-15→17
Documentation
AGENTS.md: distribution count corrected (9 → 16); deprecated build
types annotated; Homebrew LLVM section demoted from 'Recommended' to
'Legacy'README.md: prominent final-v1.x release banner; version badge updated