On 9/13/2022 9:55 AM, Brian Goetz wrote:

It is common for math library methods to have a preamble to screen out special values (infinities, NaN, 0.0, 1.0, etc.).

This would be a reasonable use of a switch on float/double switch.



Which raises some questions (again) of the semantics of constant patterns for exotic floating point values, especially (again) negative zero.


In a switching context, I think there is a stronger case for distinguishing between +0.0 and -0.0. The operational semantics I'd recommend are to desugar, say a float switch, to an int switch on the Float.floatToIntBits mapping of the float case labels. Float.floatToIntBits, as opposed to Float.floatToRawIntBits, normalized all NaN representations to a single value.

-Joe

Reply via email to