This site's content was compiled from 1993 to 2006. Beyond that, Google is your friend.
Chris Saunders
An Eiffel Math Library for Algebraic Structures.
The author writes:
I have noticed ... that a lot of people were not satisfied with class NUMERIC as a basis for various classes that would be used for numeric computation. NUMERIC models a commutative ring but this model is inadequate for matrix arithmatic. Matrix operations require that the operands satisfy the properties of a field. It is also possible that one might wish to create objects that have, say the properties of a ring but do not represent numbers.
To address this I have written a set of classes that represent a stanard set of algebraic structures starting with groupoid and ending with field.
The following directories are included:
I found it difficult to create assertions that were adequate for some of these structures. Some of the properties are supposed to hold for all operands but it is of course impossible to check all cases. As a compromise some of the binary operations have assertions that use the current object the "other" object and the result for checking. In practice I think that it will be found that these checks are enough but they do not provide certainty over the entire set of possible operands. It would have been possible in some cases to provide further tests but I thought that this would be overkill.