Symbolic Calculus for High-performance Computing From Scratch Using C++23
Talkat CppCon 2023 · on Wednesday, 2023-10-04· at 16:45· Cottonwood 8/9, 6700 North Gaylord Rockies Boulevard·
summary
Shows a working C++23 library that builds symbolic formulas from unevaluated lambdas as template parameters and unique symbol IDs (singleton addresses), implements stateless expression templates so data is injected later, and performs compile-time derivatives and integrals plus substitution and binding. Generated assembly is shown to validate the zero-cost abstraction claim. Implementation works across examples but partial substitution, rewrite rules and unit handling remain future work; source and examples live on GitHub.
AI-written summary · about
chapters (11)
- 0:00Symbolic calculus in C++23
- 1:48Stateless expression templates
- 3:39Lambda trick for symbol types
- 8:41Symbols with unique IDs
- 14:00Binding symbols with traits
- 23:27Constraining symbol types
- 31:40Building ASTs for formulas
- 37:29Symbolic expressions and operators
- 45:26Substitution and evaluation
- 54:20Summary and future directions
- 56:27Q&A: units, Unicode, hybrid
related talks
37mSymbolic Numeric Programming in Julia
15mCoarsening Optimization for Differentiable Programming
01h 06mNumerical Integrators From Scratch in C++
45mPractical Lambda Calculus
32mCompilation of Dynamic Sparse Tensor Algebra
28mFunctional Sparse Tensor Compilation
41mSYCL building blocks for C++ libraries
01h 03mInside Every Calculus Is A Little Algebra Waiting To Get Out
