Comments on draft 2 of LIA -- especially re "epsilon"

Jon L White uunet!lucid.com!jonl%kuwait
Fri Sep 25 10:45:32 PDT 1992


I'd like to ask a question about the LIA notation you repeated in your msg.
specifically:   epsilon = r**(1-p) = succ(1) - 1 

Admittedly, this isn't relevant to your critique of "an absurdly narrow 
exponent range", but in some circles, the term "epsilon" has been 
interpreted as "the smallest representable number such that when added 
to 1 produces a rounded result different from 1".  Of course such an 
"epsilon" isn't the single-digit number used in the LIA and in your 
msg (and correctly used for the purpose at hand, I should add); rather, 
the LIA epsilon looks more like the concept of the least significant 
digit(bit), no?

The IEEE Round-to-Nearest rule is complicated by the tie-breaker rule 
which goes to the "even" representation.  Because of this, and because 
of the effect of guard digits, I find  experimentally that "espilon" 
for doubles on the SPARC is   2**-53 + 2**-105,   or more generally  
r**(-p) + r**(1-2p).   Because of the double-rounding inherent in the 
different FP register sizes on the Sun3 (an MC680x0 machine using a 
MC68881 coprocessor), this number is   2**-53 + 2**-64 + 2**-105.

This incredible oddity (esp. re the Sun3) can be understood by analysis,
and the first version I saw of the Sun Floating-Point Programmer's Guide
(by David Hough) contained a decent exposition of the double-rounding
problems caused by the mismatch in sizes between internal registers
and memory cells (for which reason there was some compiler switch
like -fstore.)

At this point, I'm not sure of the utility of an "epsilon" defined this
way; do you or anyone else know if such a definition is really of any
interest?


-- JonL --



More information about the Numeric-interest mailing list