r6rs fldiv, etc. need to return nan for zero divisor
svn: r11012
This commit is contained in:
parent
c13fa1d24c
commit
66704a92fe
|
@ -49,24 +49,56 @@
|
|||
|
||||
(define-fl abs flabs (a) nocheck)
|
||||
|
||||
(provide fldiv-and-mod
|
||||
fldiv0-and-mod0)
|
||||
(provide fldiv flmod fldiv-and-mod
|
||||
fldiv0 flmod0 fldiv0-and-mod0)
|
||||
(define (fldiv a b)
|
||||
(unless (inexact-real? a)
|
||||
(raise-type-error 'fldiv "flonum" a))
|
||||
(unless (inexact-real? b)
|
||||
(raise-type-error 'fldiv "flonum" b))
|
||||
(if (zero? b)
|
||||
+nan.0
|
||||
(div a b)))
|
||||
(define (flmod a b)
|
||||
(unless (inexact-real? a)
|
||||
(raise-type-error 'flmod "flonum" a))
|
||||
(unless (inexact-real? b)
|
||||
(raise-type-error 'flmod "flonum" b))
|
||||
(if (zero? b)
|
||||
+nan.0
|
||||
(mod a b)))
|
||||
(define (fldiv-and-mod a b)
|
||||
(unless (inexact-real? a)
|
||||
(raise-type-error 'fldiv-and-mod "flonum" a))
|
||||
(unless (inexact-real? b)
|
||||
(raise-type-error 'fldiv-and-mod "flonum" b))
|
||||
(div-and-mod a b))
|
||||
(define-fl div fldiv (a b) nocheck)
|
||||
(define-fl mod flmod (a b) nocheck)
|
||||
(if (zero? b)
|
||||
(values +nan.0 +nan.0)
|
||||
(div-and-mod a b)))
|
||||
(define (fldiv0-and-mod0 a b)
|
||||
(unless (inexact-real? a)
|
||||
(raise-type-error 'fldiv0-and-mod0 "flonum" a))
|
||||
(unless (inexact-real? b)
|
||||
(raise-type-error 'fldiv0-and-mod0 "flonum" b))
|
||||
(div0-and-mod0 a b))
|
||||
(define-fl div0 fldiv0 (a b) nocheck)
|
||||
(define-fl mod0 flmod0 (a b) nocheck)
|
||||
(if (zero? b)
|
||||
(values +nan.0 +nan.0)
|
||||
(div0-and-mod0 a b)))
|
||||
(define (fldiv0 a b)
|
||||
(unless (inexact-real? a)
|
||||
(raise-type-error 'fldiv0 "flonum" a))
|
||||
(unless (inexact-real? b)
|
||||
(raise-type-error 'fldiv0 "flonum" b))
|
||||
(if (zero? b)
|
||||
+nan.0
|
||||
(div0 a b)))
|
||||
(define (flmod0 a b)
|
||||
(unless (inexact-real? a)
|
||||
(raise-type-error 'flmod0 "flonum" a))
|
||||
(unless (inexact-real? b)
|
||||
(raise-type-error 'flmod0 "flonum" b))
|
||||
(if (zero? b)
|
||||
+nan.0
|
||||
(mod0 a b)))
|
||||
|
||||
(define (flnumerator c)
|
||||
(if (inexact-real? c)
|
||||
|
|
Loading…
Reference in New Issue
Block a user