Someone familiar with LAPACK and BLAS?


I am a beginner and few weeks ago I still knew nothing about C++. Now I find myself in trouble installing LAPACK.

First, I wanted to use VC++ 2010 to do some matrix calculation so (following someone's suggestion) I installed Armadillo. I found that Armadillo uses LAPACK and BLAS to do some matrix inverse work, and that is what put me in trouble.

I have several questions about running LAPACK. I already read the instructions here. I downloaded all kinds of .dll and .lib file and changed their locations several time to try to compile successfully in VC++ 2010. I changed the 'Aditional Library Directories' on 'Propertie/linker/general' and added liblapack.lib in 'Additional Dependencies' at 'Propertie/linker/input'.

I am not able to understand the following:

  1. Many websites say LAPACK should be installed somewhere, but all I could do is to download a file (folder) either named lapack or lapack-3.4.1. I could not find any install.exe in the folder. So, what does download mean?

  2. On th website above, the .dll and .lib files should be downloaded. Where should I put them? Suppose my VC++ 2010 is installed on P:\Program Files\Microsoft Visual Studio 10.0; should I put them in this directory? Where should I put or install the downloaded LAPACK package?

  3. What does a reference BLAS mean? If I do not use cmake and mingw to build and compile, can I still follow the download steps provided on that website?

This is kind of long. I searched every forum and tried every possible method but I am still confused. I would appreciate it if anyone could help me epxlain at least a part of my question. Thanks!

Whoa there, slow down, for a beginner you're in way too deep. So you listened to someone who suggested 'use Armadillo' then went off and left you to your own devices ! It's no wonder you are lost, lonely and confused.

What, in Armadillo, do you need ? If you want to do matrix computations with C++ on Windows you've got a few options which don't involve Armadillo. These options include

  • Intel's MKL -- which may cost you money.
  • Boost -- which includes an implementation of (some of) BLAS under the name uBLAS.
  • Eigen.
  • MTL -- again, this may cost money.

Installing the Intel MKL is very easy, installing Boost not much more difficult (though it's a long time since I tried and the past always looks rosy). I know nothing about Eigen or MTL beyond their existence.

So, first, decide what you really need to install. If you need an implementation of BLAS, install that. Then LAPACK. Then Armadillo. But your question gives the impression that you are trying to do too many things all at once without the basic understanding of installing libraries on Windows and linking to them.

Oh, and next time you post, use some basic layout and typography to make your question easy to read, I've probably missed half of your points in the thickets of the text you've given us.