"Bill Page" <[EMAIL PROTECTED]> writes:

[...]

| > | However as I understand it, values in the domain FLOAT are
| > | to be taken as exact rationals that approximate real numbers in
| > | a well defined manner. Is this an accurate view? Are there specific
| > | changes that should be made to these floating point domains that
| > | would make their associated algebra more obvious?
| >
| > As far as I know all floating point systems define a subset of
| > rational numbers as approximation to the reals; they come with
| > projections (rounding mode) for delivering result of computations.
| > Also, see Language Independent Arithmetic, part 1.
| >
| 
| Well in the context of this thread a specific example might be -0. As
| I understand it, the reason that this value is not included in the
| domain Float is because the representation used there has no room for
| it. Instead, the values in Float are *exactly* the numbers
| 
|     mantissa*base^exponent
| 
| where base=2 and mantissa and exponent are values from domain Integer.

One of the differences between that representation and the one in IEEE
is that in IEEE's system, you always get a sign component in {-1,+1}.
In the Float's representation, you also get a sign component, but in
{-1,0,+1}, and when the sign projection goes to -1 or +1, the mantissa is
required to be non-zero (whereas it can be zero in the IEEE system).
It is not accurate that there is "no room" to represent -0.  
There is plenty room -- it is just required to be ignored, therefore
the implementation takes advantages of that.  Notices that I'm trying
to make a distinction between a specification and an implementation --
I don't take implementations as `God given'.

| These rational values always have an exact representation in the
| domain Fraction Integer and form a specific subset of the real
| numbers. Among other things, this makes equality in Float fully
| transitive, where as in some other floating point systems this might
| not be the case. 

I do not understand what you mean by that.  In the IEEE's system,
-0 compare equal to +0.  The only way you get the sign is when you ask
for it.

| Simiarly, %plusInfinity and %minusInfinity are not
| values in Float.
| 
| IEEE floats however are something different - wouldn't you agree?

It is as different as short integer is different from long long
interger :-)  Note that floating point systems are parameterized, and
not all of them are algebraically closed.  The IEEE system, as an
algebra, is closed.

| What I was supposing is the maybe the domain DoubleFloat (which currently
| looks more or less just like a fixed precision version of Float)
| should be given semantics that more closely resembles IEEE 754-2008.

In OpenAxiom, DoubleFloat is supposed to reflect a (64-bit) double
precision IEEE-754 floating point datatype.  Only Lisp misabstractions
get in the way; but thankfully SBCL and ECL provides some (limited)
ways to get around thise overabstractions.  

Which reminds me that I need to get Bemol up and running, so that I
can dump the Lisp stuff.

-- Gaby

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to