Re: Two technical questions on IEEE Std 754-2008
From: Charles Stevens <charles.stevens@xxxxxxxx>
CC: IEEE 754 <stds-754@xxxxxxxxxxxxxxxxx>
Subject: RE: Two technical questions on IEEE Std 754-2008
Date: Thu, 24 Feb 2011 13:21:57 -0700
. . .
I agree that if we had known back in 2006 or 2007 that this was
an issue we needed to consider, we should have done something
about it -- most probably separate USAGE clauses for the binary
encodings of the two IEEE decimal formats we support, a new mode
of arithmetic, and a set of intrinsic functions to convert items
from one encoding to another. But we didn't. In fact, the first
record I have about "binary encoding" is from February 2009, after
the 754 standard was published.
. . .
You forget who you are talking to. I was the chairman.
I kept notes of those meetings.
You WERE there. You DID know.
You were not there back in 2002 & 2003 when Mike Cowlishaw
took on the whole of the binary floating-point community &
convinced them that decimal was not only sensible but
After a year & a half of negotiations over the details of
decimal floating-point, he spoke at a remarkable 2-day meeting
in Berkeley. During that meeting he took on an overflowing
room full of binary floating-point experts who started out
100% against him. And he beat them down. In the end, we
all came to an agreement.
BTW, the sticking point was unnormalized numbers. They have
been an anathema in the binary world for at least as long as
Cobol has existed (prior to the IBM 709). Having eliminated
them in 754-1985, we thought we would commit a great sin
against the future if we allowed them back into the world.
But he (like you) was mostly interested in the number format.
And we (I count myself among them) couldn't care less about
the format but needed consistent & correct arithmetic.
When both sides agreed on that, we had our compromise.
Mike did all of that work primarily for your benefit. You
were not there at the time so I tell you this now to let you
know how important his work was in changing the nature of 754
to accomodate Cobol & the rest of the decimal world.
Flash forward to 14 July 2005. The meeting was held at HP in
Palo Alto. There were 18 people in the room. And 5 people on
the phone. You were one of them.
One of the remarks I attributed to you was:
For all of what Chuck outlined, he had to admit that
there is only one implementation that only partially
implements 'standard arithmetic'. Perhaps that will
improved in the near future.
I guess nothing much has changed in the last 6 years.
Anyway, this was the meeting in which Peter Tang outlined
Intel's plan for a binary encoded form of decimal arithmetic
(later to be known as BID). It was not the first we had
heard of it but this was the meeting that dropped the bomb.
Peter spoke for 45 minutes. Using the results from Mike's
own benchmarks, he made a good case for why his format was
a good one for an otherwise binary machine that supported
Mike delivered a rebuttal supporting DPD that also lasted
At the time we all believed there was room for only one
format in 754. And the flexibility that Mike demonstrated
3 years earlier was not longer available to him. By this
time he had gone to silicon.
When Mike was done I spoke for 15 minutes. As I was
speaking at the time the thrust of my remarks didn't make
it into my notes but I recall proposing a sort of Millennial
Encoded Decimal as a compromise. You see, anticipating
this conflict, I had spent the previous weeks outlining
the design of circuits that worked with 10x10-->20 bit
multipliers as the basic unit. I showed that they were
not significantly harder to decode than DPD & also not
significantly slower than binary. It was my poor attempt
at offering a compromise.
In the end, nobody was interested in my compromise.
Well, my notes go on to say: "At which point, a very
lively discussion ensued."
For those of you who have read my notes in the past, the
phrase "a lively discussion" is chairman diplo-speak for
"we yelled at each other". It gets to "very" when we call
each other names. Fortunately it never got to "spirited".
That's when "yo momma" gets involved.
Still we argued well past dinner time. I recall telling
Peter in a private moment that I really wished he was an
idiot. And explaining that if he were an idiot I could
ignore all this crap & go back to the business of the
standard. But Peter is NOT an idiot & his proposal had
merit. So did Mike's point of view.
And there it sat unresolved until, in the fall of 2005,
it was clear that both sides were intractable & unwilling
to come to any compromise.
So, after consulting with the IEEE, in September of 2005
I declared the revision effort to be at an impasse &
suspended further meetings until this issue was resolved.
I asked Jeff Kidder (of Apple at the time) to act as a
neutral arbiter between the two sides & awaited results.
I attended these meetings myself. Joe Darcy hosted one
meeting at Sun in Santa Clara on 16 November 2005. You
were one of the people on the phone. I attribute a few
remarks to you. For example.
Chuck claimed that Cobol can conform to 754 by
implementing only what his customers need. Cobol
is not interested in some of the features of 754.
Our position is that none of the optimizations
that we might discuss will apply to Cobol due to
its rigid syntax. Cobol might support both
Decimal128 & Binary128 (& conversions) but would
NEVER support mixed radix expressions.
Perhaps I should have taken that as a warning. I did not.
You may blame me for that.
Anyway, both sides were well hardened in their positions
by this time.
I had hoped to scare both sides into talking to each
other. Instead, both sides brought pressure on the IEEE
to have me removed as chairman. Since both sides did that
the IEEE must have thought I was doing my job & left me to
run things as I saw fit.
Alas, by December 2006 the only compromise both sides
would consider was having both formats in the standard.
Which brings us back to where we are today.
Now, remember, all this was done for you guys. And you
were there. It all happened before your eyes. We listened
to your comments. Had you raised any issues of not handling
NaNs & infinities it would have made a big stink & made it
into my notes. But there is no such comment there.
I realize that none of this history is going to change
your mind. If the Cobol committee decides to ignore the
work we did on their behalf, that is one thing. But let's
not pretend that it was foist on you without your prior
It is simply not so.