@@ -317,11 +317,15 @@ operations the possibility of having side effects.
317
317
318
318
Debugging techniques are also important, but they don't necessarily need to be
319
319
in the spec itself. Implementations are welcome (and encouraged) to support
320
- execution modes with alternate default rounding modes, or alternate execution
321
- modes which evaluate floating point expressions at greater precision, to support
322
- techniques used to detect numerical instability. Implementations are welcome to
323
- support execution modes where floating point exceptions trap by default,
324
- although this will be tricky because it may cause programs not written to
325
- anticipate this to fail spuriously. Implementations are welcome to produce quiet
326
- NaN values that contain identifiers helping programmers locate where the NaNs
327
- were first produced.
320
+ non-standard execution modes, enabled only from developer tools, such as modes
321
+ with alternate rounding, or evaluation of floating point expressions at greater
322
+ precision, to support [ techniques for detecting numerical instability]
323
+ (http://www.cs.berkeley.edu/~wkahan/Mindless.pdf ).
324
+
325
+ To help developers find the sources of floating point exceptions,
326
+ implementations may wish to provide a mode where NaN values are produced with
327
+ payloads containing identifiers helping programmers locate where the NaNs first
328
+ appeared. Another option would be to offer another non-standard execution mode,
329
+ enabled only from developer tools, that would enable traps on selected floating
330
+ point exceptions, however care should be taken, since not all floating point
331
+ exceptions indicate bugs.
0 commit comments