tags:

views:

207

answers:

6

what popular advance mathematics libraries for c++ are present out there, so that they can be used as a 1 stop solution and avoiding reinventing the wheel ?

+1  A: 

Intel's MKL (Math Kernel Library) is to be looked at especially if doing large scale matrix operations; it's C based, but should not really be an issue IMO.

Other than that, maybe the boost math library could be interesting as it is free. (but I have no experience with it, so YMMV).

Max.

Max
Most of the MKL is based on the BLAS and LAPACK interfaces, so it is really Fortran-based, not C-based (it's obvious when you use it since matrices are assumed to be column-major and everything gets passed by pointer). It has C language bindings, though, which make it easier to use with C++. Boost uBLAS is only a BLAS implementation, but there are LAPACK bindings in the Boost incubation (I've never used them, so I can't make a recommendation on their use; I've generally just done the binding myself when I've needed to use LAPACK with uBLAS's matrix classes).
James McNellis
+4  A: 

Check out GNU Scientific Library -- it's in C, but I use it all the time to avoid re-writing the Numerical Recipes code.

jeff7
A: 

For commercial libraries, both NAG (Numerical Algorithms Group, http://www.nag.co.uk/) and IMSL ( http://www.vni.com/products/imsl/ ) are standards and provide industrial-strength numerical analysis algorithms.

c-urchin
A: 

look through the list and mix-and-match. You want very many things, unlikely any single package is going to do them all.

http://www.oonumerics.org/

octave is the only one that is going to be more or less comprehensive (functionality comparable/clone to Matlab)

http://www.mathias-michel.de/download/howto-octave-c++.ps

aaa
A: 

Like others have said, you will probably not find a single library to handle all of the areas you listed. For matrix algebra, I've heard good things about the Eigen C++ library from coworkers who are using it.

Jason
A: 

For group theory there is GAP.

starblue