A general C++ template library for Numerical Analysis