EiffelMath: Objects are for numerics too!
EiffelMath is a library of reusable object-oriented components for numerical computation, providing developers of financial, engineeering and scientific software with the full power of object technology.
EiffelMath is built on top of the extensive C library of mathematical software produced by the Numerical Algorithms Group (NAG). EiffelMath is not just a straight Eiffel encapsulation of the functions of the NAG library but presents developers with a full O-O view of numerical abstractions, taking full advantage of the Eiffel method: assertions applying the full Design by Contract approach, simple routine interfaces (with small argument lists), simple and consistent error handling through Eiffel's disciplined exception mechanism, and of course an object-oriented set of concepts organized around the principal abstract concepts of scientific software.
EiffelMath covers a wide range of numerical problems:
EiffelMath is described in detail in Paul Dubois's book Object Technology for Scientific Computing, which presents the design of the library, explains how best to use it, and shows how best to use object technology for scientific developments.
Also of interest: the press release announcing EiffelMath.