summaryrefslogtreecommitdiff
path: root/module/rnrs
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2013-08-09 05:32:23 -0400
committerMark H Weaver <mhw@netris.org>2013-08-09 06:09:56 -0400
commitfa102e73c3d14f52d089ec2faa55c9a7e87f4a23 (patch)
tree43f2e629012b84f843cc7e6edf404f4f2198f88d /module/rnrs
parentd9b312af56666efa72cf15e87091b707ac600f13 (diff)
downloadguile-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/rnrs')
-rw-r--r--module/rnrs/arithmetic/flonums.scm15
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))