Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: M0008.02_Exception_Handling NO




AN>  Note the the IEEE754 standard also introduced directed rounding and
AN>  NaN's, for which there was no previous experience.


When it shipped in 1963, the Control Data 6600 had two unusual floating point concepts - Signed Infinities and Indefinites. The IEEE 754 Infinities have essentially the same semantics as the 6600's.  NaNs are almost the same as Indefinites except that CDC didn't use different bit patterns for Quiet versus Signaling.  Instead you could set a mode for each of Indefinites and Infinities whether they either propagated quietly or stopped your program.  There was a linker option to set uninitialized memory to a bit pattern of a negative Indefinite with the lower bits containing the address the value started in and with other bits set to make it an invalid address, all very useful in debugging.

When set to stop your program, the 6600 stopped when you used an Infinity or Indefinite (except normalizing it).  Based on user experience, the 7600 (in 1968) improved that to stop when they were produced.  IEEE 754 exceptions on overflowing to Infinity and on producing a Quiet NaN are like the 7600.  IEEE Signaling NaNs are like the 6600, acting when the value is used.

The 6000, 7000 and Cyber series were the number crunchers of their era and provided over two decades of previous experience with Infinities and NaNs before their standardization by IEEE.

I used to think the 6600 was the first, but it wasn't.  The Z3 calculator had Signed Infinities, Undefined and floating point exceptions, back in 1941, giving almost  4  1/2  decades of previous experience with NaNs and Infinities.


Most pre-754 machines truncated.  The 6600 had separate opcodes for rounding to nearest versus truncating, but not for rounding towards either infinity.  I think separate opcode pairs meets the definition of "directed" rounding, but not as flexibly as 754's  4 and now 5 rounding modes.  The 6600 wasn't the first at this either though.  The Univac had instructions for truncating or rounding in 1951, for almost  3  1/2  decades of previous experience on directed rounding.


Was there anything earlier than these?

- Ian McIntosh          Toronto IBM Lab   8200 Warden   D2-445



From: Arnold Neumaier <Arnold.Neumaier@xxxxxxxxxxxx>
To: Ian McIntosh/Toronto/IBM@IBMCA
Date: 23/11/2009 11:28 AM
Subject: Re: M0008.02_Exception_Handling NO





Frédéric Goualard wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I vote NO on Motion 8.02 on the following grounds:
>
> Decorations as proposed by Motion 8.02 have the potential to greatly
> enhance the usefulness of interval arithmetic libraries. I have no doubt
> about that.
>
> On the other hand, I believe that the standardization process should
> sanction techniques and practices that stood the test of time.
[...]
> More broadly, I am in favor of standardizing only what is already known
> to work and to be useful. Let us add powerful additions like decorations
> in the next version of the standard, once the first simple one is widely
> accepted and implemented.

Note the the IEEE754 standard also introduced directed rounding and
NaN's, for which there was no previous experience.