Make more function values be exact, when possible #16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Return exact values from some functions, when possible.
For expt, in particular, I check right away to see if the exponent is an integer (exact or inexact). If so, I force the exponent to be exact, so we get dispatched to expt_N_EI. Then if the base is real, we will always get a real answer. Previously, there were cases where we'd get a complex result, with a very small imaginary part.
Also:
Define finite?, infinite?, and nan? for complex, as in r7rs. [Because I needed infinite?.]
Fix number->string and string->number w.r.t. -0 (IEEE 754 negative zero).
Add some values to the test generator, so we exercise the new cases.
[Note that I have squashed Angeni's changes with mine, so we have a single commit.]