maths 3.1
Permanent link:
cppdashboard.dev/r/2026/08/maths-3-1C++ modules for scalar, vector and complex math. And maths.
Release notes
## What's Changed ### New features and API changes We have implementations of a number of new algorithms, including Random Sample Consensus fitting (RANSAC) for linear models, Principal Component Analysis, a Runge-Kutta solver for differential equations and the Separating Axis Theorem (in the `sm::geometry` namespace) for collision detection between oriented bounding boxes. * Nicer formatting of `sm::mat` when outputting in string format by @sebsjames in https://github.com/sebsjames/maths/pull/136 * Adds a random walk generator by @sebsjames in https://github.com/sebsjames/maths/pull/138 * RANSAC implementation by @blenk13 in https://github.com/sebsjames/maths/pull/142 * Refactors `sm::range` to be `sm::interval` by @sebsjames in https://github.com/sebsjames/maths/pull/139 and https://github.com/sebsjames/maths/pull/141 * Principal Component Analysis code by @sebsjames in https://github.com/sebsjames/maths/pull/143 * Adds a simple evenspacing algo for path generation by @sebsjames in https://github.com/sebsjames/maths/pull/147 * Adds a fourth order Runge-Kutta ODE solver by @sebsjames in https://github.com/sebsjames/maths/pull/149 * Moves the `solve_quadratic` function into the `sm::geometry` namespace. by @sebsjames in https://github.com/sebsjames/maths/pull/160 * Adds the negate operation for `sm::mat` by @sebsjames in https://github.com/sebsjames/maths/pull/168 * Separating axis theorem for oriented bounding box intersections by @sebsjames in https://github.com/sebsjames/maths/pull/171 ### Fixes and documentation A number of new documentation pages have been added with the use of AI. Those that were generated by AI are marked as such at the end of each page. While sebsjames/maths is (almost completely) a human-written library, the AI wrote some reasonable reference page drafts and as a bonus, it pointed out one or two issues in the code (these were then fixed by human toil and brain activity). Seb's scheme that defines CMake macros (cmake/module_definitions.cmake) to generate lists of C++ modules for client code to compile has also been evolving. * Optimized the test build to reduce storage use (C++ modules go in a library) by @sebsjames in https://github.com/sebsjames/maths/pull/144 * Remove some redundant preprocessor directives by @sebsjames in https://github.com/sebsjames/maths/pull/146 * CMake streamlining: Avoid setting CMAKE_MODULES_PATH by @sebsjames in https://github.com/sebsjames/maths/pull/148 * Use corrected degree, not size of input array to select solver method by @sebsjames in https://github.com/sebsjames/maths/pull/164 * Corrects a square-matrix guard on eigenpairs by @sebsjames in https://github.com/sebsjames/maths/pull/165 * Fixing some issues in sm::interval::intersects() by @sebsjames in https://github.com/sebsjames/maths/pull/167 * Docs for rk4 plus a couple of tweaks to the class by @sebsjames in https://github.com/sebsjames/maths/pull/152 * Completes the hdfdata page by @sebsjames in https://github.com/sebsjames/maths/pull/155 * Documentation for sm::config by @sebsjames in https://github.com/sebsjames/maths/pull/154 * Adds a winder documentation reference page by @sebsjames in https://github.com/sebsjames/maths/pull/153 * Documentation for grid, hexgrid and cartgrid by @sebsjames in https://github.com/sebsjames/maths/pull/161 * Several more documentation pages @sebsjames in https://github.com/sebsjames/maths/pull/166 (including updates for sm::mat in https://github.com/sebsjames/maths/pull/170) **Full Changelog**: https://github.com/sebsjames/maths/compare/3.0...3.1
Share this resource