At least if memory serves, one possibility would be Boost::uBlas
. While Boost as a whole is pretty big, uBlas
by itself is quite a bit more reasonable. Moreover, if memory serves it's a header-only library, so using it is pretty easy (you don't have to build the library first, set anything up for the linker, etc.)
Edit: I should add that computing Eigenvalues/vectors in general is pretty slow, even with fairly optimized code. Depending on exactly what you're doing, it's often worthwhile to look into methods that (for one example) let you get by with computing the Eigenvalue of only a subset of the matrix (e.g., Landmark Multidimensional Scaling).