I am currently prototyping some algorithms in Matlab that rely on matrix, DSP, statistics and image analysis functionality.
Some examples of what I may need:
eigenvectors convolution in 2D and 3D FFT Short Time Fourier Transform Hilbert transform Chebyshev polynomials low pass filter random multivariate gaussian numbers kmeans
Later on I will need to implement these algorithms in C++.
I also have a license for Numerical Recipes in C++, which I like because it is well documented and have a wide variety of algorithms. I also found a class that helps with wrapping NR functions in MEX:nr3matlab.h. So using this class I should be able to generate wrappers that allow me to call NR functions from Matlab. This is very important to me, so that I can check each step when porting from Matlab to C++. However Numerical Recipes in C++ have some important shortcomings:
algorithms implemented in a simple, and not necessarily very efficient manner not threaded
I am therefore considering using another numerical library. The ideal library should:
be as broad in scope and functionality as possible be well documented (have commercial support) have already made Matlab wrappers very robust very efficient threaded (have a GPU implementation that can be turned on instead of the CPU with a "switch")
Which numerical library (libraries) would you suggest?