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

Re: Hack's recirculation ballot on P754 draft 1.6.0



General    5.7.2 
P32 L38:  The only sensible translation-time predicate is radix().

Even that is debatable: a scripting language or spreadsheet
variable might be able to
hold values in different formats, even different radices, that could
vary at run time.    I called these "generic variables" in my clause10 
proposed rewrite, to correspond to generic operations, but there probably 
is better terminology available. 

Technical  7.6
P46 L25+: The definition of Inexact on lines 22-24 does not cover
          quantize() and roundToIntegralExact(), whose result would
          be unchanged were both exponent range and precision unbounded.

roundToIntegralExact could be a candidate for removal on the same
grounds as nextAfter - it's an exception to the exception model.
quantize is also like nextAfter in that it is an operation that only makes
sense in a specific floating-point format and has no analog in arithmetic
on real numbers, and so its exception semantics are somewhat overloaded onto the
real arithmetic exceptions.     In principle, "value-changing conversion
to integral" and "value-changing quantization" are subexceptions of inexact,
in the same way that invalid has subexceptions.

The bigger question with decimal is whether the important exception is 
when the a decimal result is rounded, or when a decimal result becomes
normalized and thenceforth subject to floating-point rather than fixed-point 
rules.     Here the needs of floating-point and fixed-point computation have
been overloaded into one model of arithmetic.

|           I would really like to know what the intent of the BRC
|           was on some of these issues, so I know whether to make
|           an Editorial or a Technical comment.

The most important point is that while 
the scaled product reductions are intended
and optimized for a particular type of application (ratios of big products
e.g. Clebsch-Gordan coefficients) and intended to replace the
scaled overflow/underflow traps of 754 (and were once a section under
alternate exception handling)...
 
the unscaled sum reductions are intended and optimized for something else;
I don't know what.

| (3)  Either Infinity or NaN prevails, depending on the operation.
|      (There seems to be a precedent with the hypot() function.  Should
|      that be revised, these sum reductions should be revised too.)

Disappearing NaNs always generate controversy.


754 | revision | FAQ | references | list archive