I'd like to compute a SVD in IMP, so we need to revisit the question of linear algebra packages. The two main options as I see it are:
1) using some big blas implementation through boost.ublas's bindings. The advantages are that operations will then be really fast. The disadvantages are that is is a bit complicated and introduces an (easy, since basically all systems have some blas library installed) external dependency.
2) use TNT. The advantages are that is is header only and has a nice license so we can hide it away internally. On the flip side, we can't count on it being installed so we have to hide it away internally, and it isn't the best implementation of things. It is also a bit limited (but SVD can solve all problems :-).
Unless there are counter proposals, I'll stick a copy of TNT in somewhere.