Generics became part of the .NET Framework in version 2.0. However, this did not include the ability to use generic types in arithmetic expressions. The Extreme Optimization Numerical Libraries for .NET provides a framework for adding generic arithmetic.
The framework consists of two components: a set of interfaces that define arithmetic operations, and a set of attributes that enable the use of specialized implementations that are optimized for specific types.
Built on this foundation is a generic linear algebra library that includes most of the functionality available in the Vector and Matrix Library User's Guide.