3 ms·
0. Books--one of these: http://isocpp.org/get-started http://isocpp.org/get-started Personally, if you aren't new to programming per se, I'd go with "C++ Prime
by matt_d 13y ago
0. Books--one of these: http://isocpp.org/get-started http://isocpp.org/get-started
Personally, if you aren't new to programming per se, I'd go with "C++ Primer" by Lippman/Lajoie/Moo since it smoothly integrates modern C++11 throughout the entire text (instead of sticking it into a separate section, as some of the other books do).
After that, "C++ Concurrency in Action: Practical Multithreading" by Anthony Williams:
http://www.manning.com/williams/ http://www.manning.com/williams/
...and then the rest of the books from the isocpp list (e.g., Josuttis).
1. Libraries:
The rich ecosystem of available libraries is one of my primary reasons for using C++ for numerics :-)
In fact, it's rich enough that it may be best if you were to specify what kind of number crunching you're interested in -- right now I can only try to give you a very broad/big-picture list of some that I've found useful.
The Standard Library supports (P)RNG with a variety of statistical distributions: http://en.cppreference.com/w/cpp/numeric/random http://en.cppreference.com/w/cpp/numeric/random
- Boost.Math Toolkit: http://boost.org/libs/math http://boost.org/libs/math
// and more broadly: http://boost.org/doc/libs/?view=category_Math http://boost.org/doc/libs/?view=category_Math
// and even more broadly ;-): http://www.boost.org/doc/libs/?view=categorized http://www.boost.org/doc/libs/?view=categorized
- Eigen: http://eigen.tuxfamily.org/ http://eigen.tuxfamily.org/
- GPGPU: http://www.soa-world.de/echelon/2014/04/c-accelerator-libraries.html http://www.soa-world.de/echelon/2014/04/c-accelerator-librar...
- MLPACK: http://mlpack.org/ http://mlpack.org/
- NLopt: http://ab-initio.mit.edu/wiki/index.php/NLopt_C-plus-plus_Reference http://ab-initio.mit.edu/wiki/index.php/NLopt_C-plus-plus_Re...
- OpenCV: http://opencv.org/ http://opencv.org/
- Odeint: http://www.odeint.com/ http://www.odeint.com/
- POCO: http://pocoproject.org/ http://pocoproject.org/
// note: not numerics, but when you need to exchange data over the net/web, these are pretty good for that :-)
- QuantLib: http://quantlib.org/ http://quantlib.org/
// note: QuantLib is primarily for quantitative finance, but also has math components: http://quantlib.org/reference/group__math.html http://quantlib.org/reference/group__math.html
- SOCI: http://soci.sourceforge.net/ http://soci.sourceforge.net/
// note: not numerics, but for when you need database access, it has pretty clean API and is easy to use :-)
2. Talks:
* C9 Going Native: http://channel9.msdn.com/Shows/C9-GoingNative http://channel9.msdn.com/Shows/C9-GoingNative
In particular:
+ "Bjarne Stroustrup - The Essence of C++: With Examples in C++84, C++98, C++11, and C++14"
- http://channel9.msdn.com/Events/GoingNative/2013 http://channel9.msdn.com/Events/GoingNative/2013
+ "Sean Parent - C++ Seasoning"
- http://channel9.msdn.com/Events/GoingNative/2013/Cpp-Seasoning http://channel9.msdn.com/Events/GoingNative/2013/Cpp-Seasoni...
* BoostCon / C++Now!: https://github.com/boostcon/ https://github.com/boostcon/
There's _lots_ of interesting talks, so explore yourself :-)
For instance, 2013 Keynote: "Dan Quinlan: C++ Use in High Performance Computing Within DOE: Past and Future"
// http://2013.cppnow.org/session/keynote/ http://2013.cppnow.org/session/keynote/
// IMHO, it's worth watching these for staying up to date with the broader developments in the field -- e.g., according to the speaker (given who he is I'd assume credibility) most national labs, including Lawrence Livermore National Laboratory in particular, are quite actively adopting C++ (not C) and have been turning away from Fortran for some time now.
HTH! :-)
- adw 13y agoThank you so much! (To answer your question: linear algebra and optimization. I do a lot of Numpy right now, and I see Eigen in my future...)