[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Meeting the Scope and Purpose of P754



P754 Groups:

There has been a large volume of "You can not do this!" email on the
reflector. Much/most of this has been recently directed at the
reproducible results/identical results problem.

How about making a positive contributions to solve the problems at had
with the P754 Draft.  The BRC is pounding through the 200+ comments and
rogue comments in ongoing meetings spending 4-6 hours a week at it.

The BRC was notified of the MSC action on Monday to direct the BRC to
meet the PAR scope and purpose for 754R.

The current PAR is at
http://standards.ieee.org/board/nes/projects/754rev.pdf

MSC minutes are at:
http://grouper.ieee.org/groups/msc/MSC2007-07/Minutes2007-07-09a.pdf

This PAR scope and purpose was drafted by the original members of the
revision project.

Please consider that the pupose of a standard is to provide a common
method of doing something. What other parts of the scope and purose have
been overlooked?

Reproducible Results/Identical Results.

The goal, is to create a clause that can be quoted in a contract ie "All
computations required by this contract/agreement/treaty shall be
performed in accordance with IEEE754-2007 Clause 1.x.y in binary
mode."(or decimal) with no other elaborating specification. The parties
to the contract/agreement/treaty may have a lot at stake and may be
prepared to back there position/solution with unlimited weapons. There
is good reason to believe that trust level in anything beyond the
written document, will be exceeding low.

We have already blown the opportunity for just calling on 754 by the two
different formats.

Careful wording needs to include exactly the other required elements for
the required ReproducibleResults computation beyond the arithmatic.

Operator precidence/precedence is another potential problem. Is there a
common set or do we need to specify a order to force common evaluation
across languages? (possibly furtile ground for language wars).

I believe that it will take a while for language designers to implement
this detailed operation until there is a contract requirement or a
government requirement for reproducible results.  I expect it will be
included in government contracts and new laws faster than anywhere else
other than the bank/financial/accounting/medical industry.

Two examples of ordering issues have be brought forward by David Hough
and Dan Zuras demonstrated in the simple examples:
        z = a + b + c
where
        a = 1
        b = 2**N
        c = -(2**N)
yielding the answer of 0 or 1 depending or rounding and expression
evaluation order.

and the example:
        r = a * b + c * d
        having 6 results.
        f unnamed intermediates are represented in double then let

                a = 3*2^25 + 1
                b = 3*2^25 + 1
                c = -(3*2^25 + 3)
                d = 3*2^25 - 1

        then

                a*b = 9*2^50 + 6*2^25 + 1
                double-multiply(a,b) = 9*2^50 + 6*2^25
                c*d = -(9*2^50 + 6*2^25 - 3)
                double-multiply(c,d) = -(9*2^50 + 6*2^25 - 4)

        and

                r = double-fma(a,b,double-multiply(c,d)) = 5
                r =
double-add(double-multiply(a,b),(double-multiply(c,d)) = 4
                r = double-fma(c,d,double-multiply(a,b)) = 3

        all in round-to-nearest, of course.

        Similarly, if the unnamed intermediates are in double extended
        then

                a = 2^32 + 3
                b = 2^32 + 3
                c = -(2^32 + 1)
                d = 2^32 + 5

        then

                a*b = 2^64 + 6*2^32 + 9
                doubleextended-multiply(a,b) = 2^64 + 6*2^32 + 8
                c*d = -(2^64 + 6*2^32 + 5)
                doubleextended-multiply(c,d) = -(2^64 + 6*2^32 + 4)

        and

                r = double-fma(a,b,doubleextended-multiply(c,d)) = 5
                r = double-add(doubleextended-multiply(a,b),
                                (doubleextended-multiply(c,d)) = 4
                r = double-fma(c,d,doubleextended-multiply(a,b)) = 3


What is required to get the same answer by all interested parties? It
does not need to be fast but it must yield the same answer. It does not
need to be applied to all parts of 754 in all applications.  What
constraint must be applied?

Begin below with your proposed solution.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1.x.y ReproducibleResults Clause


-- 
Respectfully,

Bob Davis
P754 BRC Chair
MSC Chair
bob.davis@xxxxxxx
bob@xxxxxxxx
Cell 408.857.1273

754 | revision | FAQ | references | list archive