We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Symbolic Calculus for High-performance Computing From Scratch Using C++23 - Vincent Reverdy - CppCon
Discover how to create a symbolic calculus implementation from scratch using C++23, inspired by the speaker's innovative approach to solving high-performance computing challenges.
- The speaker proposes using C++23 to implement symbolic calculus, which involves replacing mathematical expressions with symbols and performing operations on these symbols.
- The first requirement is to define a symbol type that can be used to represent a mathematical expression.
- The symbol type inherits from a base class and has a unique ID.
- The speaker suggests using a default template parameter and a lambda to create uniquely typed symbols.
- The second requirement is to define a formula type that can be used to represent a mathematical expression.
- The formula type is defined as a class that has a list of terms, each of which is a composition of a symbol and a value.
- The speaker suggests using a default template parameter and a lambda to create uniquely typed formulas.
- The third requirement is to define a constraint type that can be used to constrain the values of the symbols in a formula.
- The constraint type is defined as a class that has a list of symbols and values.
- The speaker suggests using a default template parameter and a lambda to create uniquely typed constraints.
- The fourth requirement is to define a way to evaluate the formulas using the symbols and constraints.
- The speaker suggests using a default template parameter and a lambda to create uniquely typed evaluators.
- The speaker also discusses the importance of debugging and testing the symbolic calculus implementation.
- He mentions that the implementation should be able to handle complex expressions and mathematical operations.
- The speaker also mentions that the implementation should be able to handle errors and exceptions.
- Finally, he concludes by mentioning that the symbolic calculus implementation is a complex task that requires a good understanding of C++ and mathematical concepts.