New NaN-related and min/max flonum procedures and fixes.
- (flo:qnan) returns a quiet NaN: arithmetic on it quietly returns
another qNaN (usually the same one, unless there are multiple to
choose from) without raising any exception.
- (flo:snan) returns a signalling NaN: arithmetic on it returns
another sNaN (usually the same) and raises an exception, which will
trap if you ask.
- (flo:qnan? f) = (and (flo:nan? f) (flo:nan-quiet? f))
- (flo:snan? f) = (and (flo:nan? f) (not (flo:nan-quiet? f)))
- (flo:min x y) and (flo:max x y) now raise an exception only if at
least one input is a signalling NaN, and traps only if you ask.
These now implement minNum and maxNum of IEEE 754-2008.
- (flo:min-mag x y) and (flo:max-mag x y) return whichever of the
inputs has the smaller magnitude, as in minNumMag and maxNumMag in
IEEE 754-2008.