Flonum operations always return flonums.
authorMark H Weaver <mhw@netris.org>
Tue, 16 Jul 2013 08:43:07 +0000 (04:43 -0400)
committerMark H Weaver <mhw@netris.org>
Tue, 16 Jul 2013 08:43:07 +0000 (04:43 -0400)
commitad922d065c5f8b01c4ace3ee34d26300409e44fa
tree77966124c9f5c5eaec6af0c7b5faee4a90f8803f
parent85b32d43e63bd2939ce3706f44a50f153ba01a46
Flonum operations always return flonums.

Fixes <http://bugs.gnu.org/14871>.
Reported by Göran Weinholt <goran@weinholt.se>.

* module/rnrs/arithmetic/flonums.scm (ensure-flonum): New procedure.
  (fllog): Rewrite using case-lambda.  Handle negative zeroes.  Use
  'ensure-flonum'.
  (flatan): Rewrite using case-lambda.
  (flasin, flacos, flsqrt, flexpt): Use 'ensure-flonum'.

* test-suite/tests/r6rs-arithmetic-flonums.test
  (fllog, flasin, flacos, flsqrt, flexpt): Add tests.
module/rnrs/arithmetic/flonums.scm
test-suite/tests/r6rs-arithmetic-flonums.test