A Survey of C and C++ Software Tools for Computational Science (2009) [pdf]
softeng.rl.ac.uk
softeng.rl.ac.uk
In an updated list, I would add the Eigen matrix library [1]. Eigen is a delight to work with, which is hard to say of many numerical codes. It simple to install (header only), has Matlab like functionality that is incredibly expressive, supports sparse matrices and solvers without external dependencies (although you can call out to MKL, SuperLU, etc if you have them installed), is vectorized (AVX support recently added), efficient through the intelligent use of template meta programming... I could go on for hours. Check it out!