diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b895b0b..df79ed7 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "3.1.2" + ".": "4.0.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 88971cb..ff2330a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,50 @@ # Changelog +## [4.0.0](https://github.com/embedded-pro/numerical-toolbox-cpp/compare/v3.1.2...v4.0.0) (2026-10-24) + + +### ⚠ BREAKING CHANGES + +* toolbox code no longer builds at O3 with fast-math on its own. Consumers that want those optimizations pass them for whole translation units, e.g. -ffast-math -fno-finite-math-only. + +### Features + +* Add angle utilities, tridiagonal solver, friction compensation, symplectic integrators and motion profiles ([#355](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/355)) ([66b81e6](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/66b81e67a581fa8671a56c01f89ed30125cb27b3)) +* Add cubic spline, damped pseudo-inverse, incremental QR least squares and SE(3) transform ([#357](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/357)) ([fd49d30](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/fd49d3001ce7463af8179a3f1c8fa12998011712)) +* Add Levenberg–Marquardt and Goldfarb–Idnani active-set QP ([#358](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/358)) ([1f6d717](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/1f6d7175ba6107627af7ad6092f973f00fb48e0b)) +* Add SetPreviousOutput to PidIncrementalBase ([#328](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/328)) ([762b59e](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/762b59ef15ea7d54bd6b703ff4bd75b25ae0c99f)) +* **analysis:** Accept the bin phasor in GoertzelAlgorithm ([#360](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/360)) ([f2e74a4](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/f2e74a49044d3f044d3858da9ae8e99ad06a5c15)) +* **analysis:** Add mel filterbank and log-mel/MFCC front end ([#345](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/345)) ([c9fedc1](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/c9fedc1d7d9ee2b924ba53b6c30d5e33451a6e4a)) +* **estimators:** Add recursive instrumental variables ([#352](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/352)) ([9b37e08](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/9b37e0885d31a9e444739a5cfaa3bc004aad9d37)) +* **filters:** Let ComplementaryFilter integrate over a measured interval ([#335](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/335)) ([1225b3c](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/1225b3c422beab93e0ff8fd7231f8d7e087f6da4)) +* **math:** Add central finite-difference gradient-check test helper ([#344](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/344)) ([e024946](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/e0249466c8afc3a3aa067343882bd1be696c431b)), closes [#341](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/341) +* **optimization:** Add stateful SGD/momentum and Adam step optimisers ([#343](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/343)) ([69ff13e](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/69ff13e719895b74b167c4742130442c6b96a857)) +* **simulator:** Render every panel and chart through ui-cpp ([#332](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/332)) ([cff9616](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/cff9616b206352cbb89e786d4fef7aaca4a6350d)) +* **simulator:** Render the FFT charts through ui-cpp ([#331](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/331)) ([09d8986](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/09d8986c7e67d6e3524b856859dcad1f222e012f)) +* **solvers:** Support wide matrices in SVD; add roadmap items 53–65 ([#353](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/353)) ([adfc10d](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/adfc10d342591df8e46a0b1f0a91329bc76023e0)) + + +### Bug Fixes + +* **build:** Propagate NumericalToolbox_ENABLE_OPTIMIZATIONS through numerical.math ([#346](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/346)) ([a551f47](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/a551f47ab879d4728bffea3b269246807b9baa5c)), closes [#337](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/337) +* Scope the O3/fast-math pragma to each header instead of leaking it ([#347](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/347)) ([fbabe8f](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/fbabe8f8bd9f56b32ed9e72789e32f4d5023ceb3)), closes [#334](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/334) + + +### Build System + +* **deps:** Bump the patch-minor-action-updates group across 1 directory with 4 updates ([#351](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/351)) ([cc419d8](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/cc419d85c0d6bd8e221c93e1a615319e317c2b10)) +* **deps:** Bump the patch-minor-action-updates group with 2 updates ([#330](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/330)) ([7d1e7de](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/7d1e7de61371043eb4783834413855710292dd29)) +* **deps:** Bump the patch-minor-action-updates group with 2 updates ([#333](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/333)) ([bd29584](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/bd2958427f44847bfd5a97565af598240997bee7)) +* **deps:** Bump the patch-minor-action-updates group with 2 updates ([#336](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/336)) ([de14e02](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/de14e024dd7f5637c536e0114dbb08282107b2be)) +* **deps:** Bump the patch-minor-action-updates group with 3 updates ([#326](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/326)) ([c580f38](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/c580f38ccc835c0b8cd2286f3e1d9c3d99b713cd)) + + +### Performance Improvements + +* Make interface destructors protected and non-virtual ([#361](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/361)) ([8485c35](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/8485c35a281a0f404d550f6bfdf6c69ce9a0d519)), closes [#359](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/359) +* **math:** Build matrix results without zero-filling them first ([#349](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/349)) ([e36d52a](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/e36d52ad0a7b478af25bc9e542920b22baa7a70b)) +* Stop setting optimization options per header and per function ([#348](https://github.com/embedded-pro/numerical-toolbox-cpp/issues/348)) ([31c7ac9](https://github.com/embedded-pro/numerical-toolbox-cpp/commit/31c7ac9b46b6a89a201a59bad5fed551ba715699)) + ## [3.1.2](https://github.com/embedded-pro/numerical-toolbox-cpp/compare/v3.1.1...v3.1.2) (2026-09-05) diff --git a/CMakeLists.txt b/CMakeLists.txt index d35961e..4bd58ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,7 +61,7 @@ if (NUMERICAL_TOOLBOX_STANDALONE) endif() endif() -project(numerical-toolbox LANGUAGES C CXX ASM VERSION 3.1.2) # x-release-please-version +project(numerical-toolbox LANGUAGES C CXX ASM VERSION 4.0.0) # x-release-please-version set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED On)