Settings

Theme

Ask HN: Good C++ Numerical Libraries

17 points by brentr 17 years ago · 13 comments · 1 min read


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.

njoubert 17 years ago

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...

  • Silhouette 17 years ago

    "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).

scott_s 17 years ago

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...

ComputerGuru 17 years ago

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

khandekars 17 years ago

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

miloshh 17 years ago

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).

vicaya 17 years ago

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

wheels 17 years ago

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

zandorg 17 years ago

Miracl is one.

TriinT 17 years ago

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...

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection