Arbitrary precision floating point classes for Sather

What's the status of my work?

I'm currently (1997) working on a set of floating point classes. There is no released code yet, but I'm very interested in your suggestions and comments about my design decisions described below. Are things missing? Would you like things different? What would you need them for (I mean the classes :-)
Please mail me!

Of course, if I receive a couple of mails "Wow! I've been waiting for this for years!" that'll improve my spirits greatly. :-)

Planned Classes

All classes will use INTI for the representation of the mantissa. Thus, they should run on everyone's Sather-System. If you are need in speed, you can use my faster INTI-replacement based on the GNU Multiple Precision Library.
FLTIA
A floating point class with an arbitrary precision. The actual precision of newly created numbers (and of the results of operations) will be taken from a shared attribute of FLTIA. It is meant to be as IEEE 754 like as possible.

FLTI24, FLTI48 etc.
These are derived from FLTI. The only difference is that their precision is fixed at 24 / 48 / whatever bits. Classes with different precisions can be easily derived, if necessary.

FLTIDP
A "dot precision" class, i.e. a class with which you can calculate sums and products without rounding error. This is meant for the exact calculation of scalarproducts etc. Not meant for general use, because the mantissa length can grow quickly beyond all bounds. It will only contain a few operations, which can be calculated without rounding, i.e. +,+,* and conversions to other FLTIs.

FLTIR
A "restricted precision class". This means the results of operations will only have the precision they deserve. i.e. if you multiply a 64bit number and a 256bit one, the result will be only 64 bit. Thus you'll have probably a bit faster calculations and some information about the precision of the result as well. I'm not sure if I'll do this one.

FIX
A fixed point class. For simplicity FIX will not be IEEE-like but for the rounding modes, i.e. there will be no signed zeroes, Infinity and NaNs. But it will be usable for INTERVAL.

The fixed point numbers will basically be integers scaled by a fixed power of 2.

INTERVAL
An interval class. This class can be parameterized with any of the above classes. It represents an interval [u,o] of numbers. Thus, if you use INTERVAL, you'll get exact bounds for the result. Should be very useful for computer assisted proofs, etc.


Hans-Peter Störr, Aug 24 1995