OM Floats

David Carlisle davidc at nag.co.uk
Thu Jul 15 18:31:32 CEST 1999


> If OM is small like Scheme (warning, the official IEEE standard for
> Scheme is something like 15 pages), then feel free to leave stuff out.

That's 3 times the length of the current draft standard for OM objects
(which is what we are talking about here). The OM standard draft
document itself is rather longer (38 pages) but that includes historical
preamble, and definitions of the encodings, and examples of content
dictionaries etc.

> Regarding Complex All you need, in effect, is a special indeterminate "i"
> such that i^2+1=0.  Putting that in without rationals seems like
> a fairly arbitrary design choice.

But it is not in. Like rationals, complex numbers are not available as a
primitive type, they need to be constructed using symbols provided in
the core content dictionaries. 

The only numeric primitive types are integer and something called
OMFloat that may be misleading to call a Floating Point Number as
they do not meet the definition here:

> Floating point numbers are EXACT RATIONAL NUMBERS. Namely
> those numbers among the reals that can be exactly represented
> in the form sign X fraction X radix^exponent,  with fraction=
> fixed length.

An OMFloat object is something whose meaning ranges over the possible
values specified for IEEE double precision floats. This includes
the special values like NaN which are not in |Q.

Given the strong feelings held about what a floating point number is
I am more than ever convinced that we shouldn't confuse the issue
by extending the meaning of OMFloat to include floating point numbers
as you defined above, but rather to include a core content distionary
that allows them to be constructed. Actually rationals can already be
constructed, but probably (possibly?) an explicit `bigfloat' constructor
as in James' CD gives more of a hint to a phrasebook implementor.

David



More information about the Om mailing list