Numbers

3.1  Infinities, NaNs

Infinities and NaNs and are artefacts that help deal with the inexactness of binary floating-point arithmetic. The semantics dealing with infinities and NaNs, or the circumstances leading to their generation are somewhat arbitrary. However, as most Scheme implementation use an IEEE 754-conformant implementation [17] of flonums, R6RS uses the particular semantics from this standard as the basis for the treatment of infinities and NaNs in the report. This is also the reason why infinities and NaNs are flonums and thus inexact real number objects, allowing Scheme systems to exploit the closure properties arising from their being part of the standard IEEE-754 floating-point representation. See section 11.6.6 for details on closure properties.

R6RS intentionally does not require a Scheme implementation to use infinities and NaNs as specified in IEEE 754. Hence, support for them is optional.

3.2  Distinguished -0.0

A distinguished -0.0 is another artefact of IEEE 754, which can be used to construct certain branch cuts. A Scheme implementation is not required to distinguish -0.0. If it does, however, the behavior of the transcendental functions is sensitive to the distinction.