Numerical Differentiation ++ - Ian Bell [CppNow 2021]

preview_player
Показать описание
#Boost #Cpp #CppNow
CppNow Twitter: @CppNow
------
Numerical differentiation with automatic differentiation or complex mathematics allows finite differentiation to numerical precision with a quite reasonable computational overhead. But doing this generically is non-trivial indeed. The core code is working great and has Python wrappers, but some design goals seem impossible to achieve in C++. I hope to explain my challenges and hope to engage the community to help me out.
------
Ian Bell is a Mechanical Engineer at the National Institute of Standards and Technology and has written a number of C++ libraries to do useful things in numerics, optimization, and thermophysics.
------

May 1, 2022 - May 6, 2022 - Aspen, Colorado
-------------------------
---

*--*

---
Рекомендации по теме
Комментарии
Автор

For the most part, managing variants directly is somewhat of a nuisance. What we do is have a macro (yeah) handling reasonable enums, create an enum E with it, and then have a template V<T> with template template parameter T that creates a variant that contains all T<e> for all enum values e of E. That way adding a value to E is sufficient to expand everything, and you can then specialize the template T if you want to.

christophclear
Автор

Great lightning talk! Would love to see a full length talk based on this. Also curious to hear about your experiences with symbolic differentiation (and code generation), and how you view the pro's and con's.

Автор

is there some code available that demonstrates the proposed solution? i must admit that i'm not able to immediately fill in the details from just being told that the solution is to "use std::vector<std::variant> + visitors + concepts" even though i do know what all these things are in isolation

MusicEngineeer
Автор

About the compile time issue: what if you put the rarely changing part of the template code and the explicit insantiations in a precompiled header?

csokkerzon
Автор

Help Requested bullet 2, at the very end:
Look at the talk here about Circle.

JohnDlugosz
Автор

I'm big fan of C++ but for some problems that cannot be easily done with it, people should stop losing effort on it and use instead a better language that can solve easily by design (i.e Julia, Lisp ...)

quentinquadrat
join shbcf.ru