diff options
author | Mark H Weaver <mhw@netris.org> | 2013-08-09 05:32:23 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2013-08-09 06:09:56 -0400 |
commit | fa102e73c3d14f52d089ec2faa55c9a7e87f4a23 (patch) | |
tree | 43f2e629012b84f843cc7e6edf404f4f2198f88d /module | |
parent | d9b312af56666efa72cf15e87091b707ac600f13 (diff) | |
download | guile-fa102e73c3d14f52d089ec2faa55c9a7e87f4a23.tar.gz |
Fix numerator and denominator handling of signed zeroes and infinities.
* libguile/numbers.c (scm_numerator, scm_denominator): Handle signed
zeroes and infinities in accordance with the corresponding R6RS flonum
procedures.
* module/rnrs/arithmetic/flonums.scm (flnumerator, fldenominator):
Remove special handling of infinities.
* test-suite/tests/numbers.test (numerator, denominator): Add tests.
Convert existing tests to use 'pass-if-equal'.
* test-suite/tests/r6rs-arithmetic-flonums.test (flnumerator): Fix
broken test of (flnumerator -0.0).
Diffstat (limited to 'module')
-rw-r--r-- | module/rnrs/arithmetic/flonums.scm | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/module/rnrs/arithmetic/flonums.scm b/module/rnrs/arithmetic/flonums.scm index 1c4b94ce7..e3f3ce714 100644 --- a/module/rnrs/arithmetic/flonums.scm +++ b/module/rnrs/arithmetic/flonums.scm @@ -153,19 +153,8 @@ (assert-iflonum fl1 fl2) (mod0 fl1 fl2)) - (define (flnumerator fl) - (assert-flonum fl) - (case fl - ((+inf.0) +inf.0) - ((-inf.0) -inf.0) - (else (numerator fl)))) - - (define (fldenominator fl) - (assert-flonum fl) - (case fl - ((+inf.0) 1.0) - ((-inf.0) 1.0) - (else (denominator fl)))) + (define (flnumerator fl) (assert-flonum fl) (numerator fl)) + (define (fldenominator fl) (assert-flonum fl) (denominator fl)) (define (flfloor fl) (assert-flonum fl) (floor fl)) (define (flceiling fl) (assert-flonum fl) (ceiling fl)) |