IML++, or the Iterative Methods Library, is a C++ library for solving linear systems of equations. It is said to be "templated" in the sense that the same source code works for dense, sparse, and distributed matrices.
Some of the supported solutions methods are:
IML++ was developed by the National Institute of Standards and Technology, and is in the public domain. However, it is no longer being actively developed. It has been largely superseded by the Template Numerical Toolkit.