When the arguments to an irrational mathematical function
[Reviewer Note by Barmar: There should be a table of these functions.] are all rational and the true mathematical result is also (mathematically) rational, then unless otherwise noted an implementation is free to return either an accurate rational result or a single float approximation. If the arguments are all rational but the result cannot be expressed as a rational number, then a single float approximation is always returned.
If the arguments to a mathematical function are all of type
(or rational (complex rational))
and the true mathematical result is
(mathematically) a complex number with rational real and imaginary
parts, then unless otherwise noted an implementation is free to return
either an accurate result of type (or rational (complex rational))
or
a single float
(permissible only if the imaginary part of the true mathematical
result is zero) or (complex single-float)
. If the arguments are
all of type (or rational (complex rational))
but the result cannot be
expressed as a rational or complex rational,
then the returned
value will be of type single-float
(permissible only if the imaginary
part of the true mathematical result is zero) or (complex single-float)
.
Function Sample Results abs(abs #c(3 4)) ⇒ 5 or 5.0
acos(acos 1) ⇒ 0 or 0.0
acosh(acosh 1) ⇒ 0 or 0.0
asin(asin 0) ⇒ 0 or 0.0
asinh(asinh 0) ⇒ 0 or 0.0
atan(atan 0) ⇒ 0 or 0.0
atanh(atanh 0) ⇒ 0 or 0.0
cis(cis 0) ⇒ #c(1 0) or #c(1.0 0.0)
cos(cos 0) ⇒ 1 or 1.0
cosh(cosh 0) ⇒ 1 or 1.0
exp(exp 0) ⇒ 1 or 1.0
expt(expt 8 1/3) ⇒ 2 or 2.0
log(log 1) ⇒ 0 or 0.0
(log 8 2) ⇒ 3 or 3.0
phase(phase 7) ⇒ 0 or 0.0
signum(signum #c(3 4)) ⇒ #c(3/5 4/5) or #c(0.6 0.8)
sin(sin 0) ⇒ 0 or 0.0
sinh(sinh 0) ⇒ 0 or 0.0
sqrt(sqrt 4) ⇒ 2 or 2.0
(sqrt 9/16) ⇒ 3/4 or 0.75
tan(tan 0) ⇒ 0 or 0.0
tanh(tanh 0) ⇒ 0 or 0.0
Figure 12–8: Functions Affected by Rule of Float Substitutability