Numerical Integrators From Scratch in C++
summary
Revisits numerical integrators by deriving them from first principles and mapping those formulas to C++ concepts to get C++26 reflection–driven, compile‑time generated solvers. Implements Runge‑Kutta, linear multistep and general linear methods via Butcher tableau and sparse coefficient arrays, tests adaptive Verner schemes (orders 7/6, 8/7, 9/8), and parallelizes past/future integration and distributed/heterogeneous execution. Ships reproducible code that runs a supercomputing N‑body cosmology example and computes the universe age as 13.7839 billion years, with measured performance and accuracy reported.
AI-written summary · about
chapters (20)
- 0:00Introduction
- 2:13Age of universe in C++
- 8:44Simplified relativity for integration
- 10:12Better integrator with Runge-Kutta
- 12:40Parallelizing past and future
- 17:23Runge-Kutta multi-dimensional
- 20:54Three-body problem solved
- 24:50Long-term stability limits
- 25:34Integration vs ODE solvers
- 27:38ODE solver overview
- 30:09Math foundations
- 32:36Butcher tableau
- 37:30Adaptive Runge-Kutta methods
- 42:13High-performance architecture
- 44:05Vermeulen’s efficient RK
- 48:36Compiling RK coefficients
- 51:06Indexing sparse RK tables
- 54:00Optimizing coefficients
- 1:00:05Future directions
- 1:01:55Conclusion and key takeaways
related talks
01h 04mSymbolic Calculus for High-performance Computing From Scratch Using C++23
59mSimulating the Universe Using Modern C++
16mAlgorithmic Differentiation: C++ & Extremum Estimation
19mSemantics of Integrating and Differentiating Singularities
35mSecure Numerical Computing is Hard: Lessons from 10 Years of Open Data Science & the Long Road Ahead
44mScientific computing with Python: Tools for the solution of continuous problems
58mContinuous Methods 2
17mCharlesMarg
