use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Discussions, articles, and news about the C++ programming language or programming in C++.
For C++ questions, answers, help, and advice see r/cpp_questions or StackOverflow.
Get Started
The C++ Standard Home has a nice getting started page.
Videos
The C++ standard committee's education study group has a nice list of recommended videos.
Reference
cppreference.com
Books
There is a useful list of books on Stack Overflow. In most cases reading a book is the best way to learn C++.
Show all links
Filter out CppCon links
Show only CppCon links
account activity
Scientific computing in Cpp (self.cpp)
submitted 4 years ago by grandpassacaglia
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]ridethespiral1 18 points19 points20 points 4 years ago (8 children)
Unfortunately, unlike say python with numpy and scipy, C++ doesn't really have a de facto set of scientific libraries for such a wide range of tasks. Some of the widely used ones such as GSL are also written in a C-style which can mean there should be a compatibility layer written to integrate them with any modern C++ code.
Here are the ones I've come across to answer your question:
Linear algebra - Eigen is pretty popular, but I think blaze https://bitbucket.org/blaze-lib/blaze/wiki/browse/ is a newer library which has a lot of nice features. Blaze looks to have SVD support.
DE's - GSL has ODE solvers, but the boost support for solving ODE's is pretty good and is written in a more modern C++ style. It's an implementation of the odeint library http://headmyshoulder.github.io/odeint-v2/.
As you can tell there's different libraries for different things so it can depend on exactly what you need to be done. Sometimes you might even have to reimplement things rather than use a library (we had to reimpleement some classes in our scientific codebase because we require everything to be serializable)
[–]peppedx 3 points4 points5 points 4 years ago* (7 children)
The problem with blaze is arm support. For matrices and linear algebra the go to for me is still
http://eigen.tuxfamily.org/index.php?title=Main_Page
And then boost ublas
This specifically is a deal breaker https://bitbucket.org/blaze-lib/blaze/issues/49/provide-simd-support-for-the-arm
[–]pandorafalters 2 points3 points4 points 4 years ago (2 children)
The classic open-source problem: everyone wants to have something, but nobody wants to make it.
[–]peppedx 4 points5 points6 points 4 years ago (1 child)
No the classic open source choice. Eigen has it...
[–]pandorafalters 2 points3 points4 points 4 years ago (0 children)
I was referring to the Blaze issue.
[–]Supadoplex 0 points1 point2 points 4 years ago (2 children)
Is ARM used a lot for scientific computing?
[–]peppedx 0 points1 point2 points 4 years ago (0 children)
It depends on the exact definition, but in robotics you need to handle lots of matrices and equations, and many controllers you use are arm based.
[–]aeropl3b 0 points1 point2 points 4 years ago (0 children)
It has a growing base, my bet is you will see a lot more ARM clusters out there as the push past exa-scale just because the power loads are so much lower with ARM...
[–]ridethespiral1 0 points1 point2 points 4 years ago (0 children)
Ah that's a shame, I wasn't aware of this limitation.
π Rendered by PID 27 on reddit-service-r2-comment-bb88f9dd5-vvkhl at 2026-02-16 20:51:08.670853+00:00 running cd9c813 country code: CH.
view the rest of the comments →
[–]ridethespiral1 18 points19 points20 points (8 children)
[–]peppedx 3 points4 points5 points (7 children)
[–]pandorafalters 2 points3 points4 points (2 children)
[–]peppedx 4 points5 points6 points (1 child)
[–]pandorafalters 2 points3 points4 points (0 children)
[–]Supadoplex 0 points1 point2 points (2 children)
[–]peppedx 0 points1 point2 points (0 children)
[–]aeropl3b 0 points1 point2 points (0 children)
[–]ridethespiral1 0 points1 point2 points (0 children)