I'm converting a program from Matlab to Visual C++ (Community edition) to see how much faster I can get it to run. My original program runs days at a time...
Although I'm very experienced with Matlab, I only know very basic C++ So i would like to ask about Linear Algebra functions that I need. I saw this thing: http://math.nist.gov/lapack++/ but i'm not sure if this is the best option for me.
My Matlab program looks something like this in principal:
1. Get a 30*30 pixel image from a big pre-loaded list of images.
2. Pad the image with random number of zeros (to be about 60*60).
3. Crop the Padded image randomly.
4. Down-sample the cropped image.
5. Run this line: A = A + 0.1*(sin(A) + W*A + Z*y);
6. repeat about 7 Million times.
where A is a column vector of length 1000. W is a 1000*1000 Sparse matrix. Z is a 1000*30 Full matrix. y is a 30*1 vector.
So i need good functions for:
- Padding matrix
- Cropping matrix
- down-sampling matrix
- Multiplying and Adding matrices and Sparse matrices.
What specific library / functions would you recommend? keep in mind that i know very little C++ so please give URLs if needed.