Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Good C++ Numerical Libraries
17 points by brentr on May 10, 2009 | hide | past | favorite | 13 comments
I'm starting my MSFE program this fall. Since C++ is heavily used on Wall Street, I have decided to take this summer to build a significant numerical library for financial related applications. Right now I am working with Quantlib and GSL to see how numerical routines are coded in C-style languages, but I am hoping to see a much broader code base as my project develops. I've come across several other numerical libraries, but I'm really not capable of judging yet what is considered to be a good library. I was hoping HN could point me to some well-constructed numerical libraries, hopefully coded in C++. I'll share my code when I get a significant amount of work done.

I thank any posters ahead of time.




I'm doing graphics research, and the numerical libraries is probably slightly different, but the ones I've found useful are: http://math.nist.gov/tnt/ http://eigen.tuxfamily.org/index.php?title=Main_Page http://www.cgal.org/

Also, I can't recommend "Numerical Recipies in C++" enough. This is a great book if you're not a wizard already, although the seriously good numerical mathematicians complain that it doesn't necessarily show you the absolute best way to do everthing. Its a great learning and example-code resource though! http://www.amazon.com/Numerical-Recipes-C-Scientific-Computi...


"Numerical Recipies" is a good book, but you do have to keep in mind that it was mostly written several years ago, and this is a field where a lot of people are actively researching a lot of topics, and not just the obscure/niche ones.

I recently did a fair bit of work with matrix computations, for example, and while "Numerical Recipies" and "Matrix Computations" were both useful for background material, the technical notes that go with LAPACK were often far more up-to-date (and a source of the latest research papers behind the LAPACK implementations as well).


Boost.uBlas: http://www.boost.org/doc/libs/1_39_0/libs/numeric/ublas/doc/...

A good C++ library for high performance computing is going to be more than just C-style functions wrapped in a class. Read the paper on Expression Templates by Todd Veldhuizen: http://ubiety.uwaterloo.ca/~tveldhui/papers/Expression-Templ...


I gave up and used Matlab to generate C++ libraries.


Can you recommend any good resources/tutorials for this?



http://www.research.att.com/~bs/C++.html#libraries

Also, __the__ templates books is very useful for several tricks for squeezing performance: http://www.josuttis.com/tmplbook/

HTH


The Intel Math Kernel Library is decent, and very fast. It has disadvantages - not optimized for AMD processors, not free (but the student version is cheap, and the free trial does not really expire).


The best modern C++ numerical library I came across is Eigen: http://eigen.tuxfamily.org/index.php?title=Main_Page


It really depends on what sort of numerics you're talking about and how you're defining good (performance? api design?)


The thing I am interested in the most is accuracy and precision.


Miracl is one.


The best advice I can give you is: read Nuclear Phynance. It's a truly great forum for practitioners:

http://www.nuclearphynance.com

There you can read a lot about implementing numerical software in the "real world". My perception is that C# is starting to take C++'s place. But, then, it's just a perception. Moreover, take a look at LAPACK, LAPACK++, BLAS, and the like...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: