Mikko Tommila, ported the code from the C++ version and improved it.
Peter Luschny, provided an improved factorial algorithm, product algorithm and other suggestions for improvement.
Dominique Fortin, found a bug in the Aprational constructor, provided various other ideas.
If you have additions or corrections, or would like your name removed from the above list please contact the author.