javascript-bignum
javascript-bignum copied to clipboard
Make more function values be exact, when possible
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.]