On Thursday, July 30, 2015 at 3:54:39 PM UTC-4, Jason Merrill wrote:
>
>
> * "Wrath of Kahan, 2"
> In the unum computation, squaring operations are fused with squareu, but 
> float Interval calculations are not fused. I also believe the check for the 
> ubounds containing zero in e[z] is erroneous in a way that makes this 
> example very deceiving, but I don't want to go into that detail here.
>

Since it looks like Dr. Gustafson is reading this thread, I wanted to give 
my specific objection to this example. You should be able to read the 
relevant text of the book here:

https://books.google.com/books?id=fZsXBgAAQBAJ&pg=PA176&lpg=PA176&dq=Kahan+constructed+the+following+fiendishly+clever+example&source=bl&ots=MH0vfJyw2V&sig=ZEzOR7sCXGyzcRbncbqlRQJdWaA&hl=en&sa=X&ved=0CB4Q6AEwAGoVChMIr9HmxOeFxwIVRlw-Ch3wjQ2K#v=onepage&q=Kahan%20constructed%20the%20following%20fiendishly%20clever%20example&f=false

There's a function e(x) = (exp(x) - 1)/x, defined to be 1 when x is 0. In 
the unum definition of this function, the function checks whether x 
*contains* zero when x is a ubound, and in this case, returns 1 exactly. 
This incorrectly collapses bounds with a finite width down to an exact 
answer.

If you look at the output of q(x) for the example points suggested in the 
text, it is a bound of finite width, but the containment check in e(x) 
collapses e(q(x)^2) down to an exact value, making unums look better than 
they are.

To be clear, I interpret this as an honest mistake, but this is also one of 
the high excitement points of the book (at least it was for me), so it's 
important to be very careful about what's really going on here.

Reply via email to