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.