A generic C++ template library for Numerical Analysis