The Euclid class library package

This package, which has about 30 major classes and nearly 1000 member functions, caters for many of the fundamental numeric and geometrical manipulations required in a wide range of sciences (though it is especially aimed at Molecular Sciences). It is a re-incarnation of my Collaborative Biomolecular Tools originally written in C++. Many of these routines are now catered for by Java itself (which is gratifying!). The rewrite has been very beneficial as much unnecessary complication could be removed, and the final format of the classes is modelled closely on the Java kit. The javadoc output is very similar to the way class libraries are portrayed in (say) 'Java in a Nutshell', which is recommended. I hope that, with some early feedback, it will be possible to fine-tune the names and purposes of methods so that most are self-explanatory to anyone familiar with Java.

Converting the C++ routines had to be done manually, and bugs will have crept in. At this stage, therefore, be wary of correctness (although I have checked almost all the test results against the C++ test results). I will be extremely grateful for feedback.

I am fairly sure that the classes themselves are a workable unity. (The functionality is closely modelled on `A C++ toolkit', and 'Data Abstraction and Object-Oriented programming in C++'. It would not surprise me if Java offered increasing overlap in the future.) the strategy for member functions (methods) is more likely to change, partly because Java may develop strong conventions, and partly because we need to find what tools are most easily accepted by the community.

Here is the List of Euclid classes - shown without hierarchy.

Every class has a main program to exercise its member functions. This serves both as a test of correctness and also may provide help for those who want to see how to use it.

Up to index
© Peter Murray-Rust, 1996, 1997