Thursday, April 20, 2006
Greg Lee's Numeric Eiffel Library
The Numeric Eiffel Library (download) is a collection of scientific programming classes that implement complex numbers, matrices, and vectors, quaternions, random number generators, the singular value decomposition, simple statistics, and the Fast Fourier Transform.
It's from Greg Lee, who is already known to Eiffelists for wrap_jvm_class, a utility that generates Eiffel wrappers for Java classes, and (amongst other things) enables Java applets to be written using SmartEiffel 1.x.
Greg writes:
It's from Greg Lee, who is already known to Eiffelists for wrap_jvm_class, a utility that generates Eiffel wrappers for Java classes, and (amongst other things) enables Java applets to be written using SmartEiffel 1.x.
Greg writes:
Eiffel is a great language for numerical computing, especially so with the new array operator "[]" and the "assign" keyword that allows traditional FORTRAN-style assignment statements:
a: ARRAY[DOUBLE]
instead of
a.put( 23.0, 4 )
now we can write
a[4] := 23.0
Although the semantics of the two forms are identical, the second form looks more like mathematical notation.
A lot of work has been put into developing numerical routine libraries over the years, and the approach often taken to use these libraries in Eiffel has been to wrap existing FORTRAN or C numeric libraries in Eiffel. Eiffel Software's excellent EiffelMath product that wraps the NAG C scientific computing library takes this approach.
However, for less ambitious projects, there is an apparent lack of a standard Eiffel implementation of the usual numeric classes such as complex numbers, matrices, and vectors. This contest submission, the Numeric Eiffel Library (NEL), fills this gap with an Eiffel implementation of these fundamental scientific computing classes.Greg's package supports EiffelStudio 5.6 and has been tested on Windows 2000 and Mac OS X 10.4. It is licensed under the Eiffel Forum License version 2.