From fc1c9daa7fa37857e699bdc8c291c2b7398c1e54 Mon Sep 17 00:00:00 2001 From: Raymond Toy <toy.raymond@gmail.com> Date: Mon, 28 Dec 2015 10:31:55 -0800 Subject: [PATCH] Replace with-inexact-exception-enabled with with-float-traps-enabled. --- tests/fdlibm.lisp | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/tests/fdlibm.lisp b/tests/fdlibm.lisp index c86a6cae7..7b08d9da7 100644 --- a/tests/fdlibm.lisp +++ b/tests/fdlibm.lisp @@ -14,11 +14,6 @@ (kernel:make-double-float #x7ff00000 1) "A randon signaling MaN value") -(defmacro with-inexact-exception-enabled (&body body) - `(ext:with-float-traps-enabled (:inexact) - ,@body)) - - (define-test %cosh.exceptions (:tag :fdlibm) (assert-error 'floating-point-overflow @@ -68,11 +63,11 @@ ;; sinh(x) = x for |x| < 2^-28. Should signal inexact unless x = 0. (let ((x (scale-float 1d0 -29)) (x0 0d0)) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must not throw an inexact exception because the result ;; is exact when the arg is 0. (assert-eql 0d0 (kernel:%sinh x0))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact @@ -87,7 +82,7 @@ (assert-true (ext:float-nan-p (kernel:%tanh *snan*)))) ;; tanh(x) = +/- 1 for |x| > 22, raising inexact, always. (let ((x 22.1d0)) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact @@ -123,11 +118,11 @@ (assert-true (ext:float-nan-p (kernel:%asinh *snan*)))) (let ((x (scale-float 1d0 -29)) (x0 0d0)) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must not throw an inexact exception because the result ;; is exact when the arg is 0. (assert-eql 0d0 (asinh x0))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact @@ -169,7 +164,7 @@ (assert-true (ext::float-nan-p (kernel:%expm1 *snan*)))) ;; expm1(x) = -1 for x < -56*log(2), signaling inexact (let ((x (* -57 (log 2d0)))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) (assert-error 'floating-point-inexact (kernel:%expm1 x))))) @@ -188,11 +183,11 @@ ;; log1p(x) = x for |x| < 2^-54, signaling inexact except for x = 0. (let ((x (scale-float 1d0 -55)) (x0 0d0)) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must not throw an inexact exception because the result ;; is exact when the arg is 0. (assert-eql 0d0 (kernel:%log1p x0))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact @@ -222,11 +217,11 @@ (let ((x (scale-float 1d0 -29)) (x0 0d0)) ;; exp(x) = x, |x| < 2^-28, with inexact exception unlees x = 0 - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must not throw an inexact exception because the result ;; is exact when the arg is 0. (assert-eql 1d0 (kernel:%exp x0))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact @@ -282,11 +277,11 @@ ;; atan(x) = x for |x| < 2^-29, signaling inexact. (let ((x (scale-float 1d0 -30)) (x0 0d0)) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must not throw an inexact exception because the result ;; is exact when the arg is 0. (assert-eql 0d0 (kernel:%atan x0))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact @@ -630,11 +625,11 @@ ;; asin(x) = x for |x| < 2^-27, with inexact exception if x is not 0. (assert-eql x (kernel:%asin x)) (assert-eql (- x) (kernel:%asin (- x))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must not throw an inexact exception because the result ;; is exact when the arg is 0. (assert-eql 0d0 (kernel:%asin x0))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact @@ -645,11 +640,11 @@ ;; cos(x) = 1 for |x| < 2^-27. Signal inexact unless x = 0 (let ((x (scale-float 1d0 -28)) (x0 0d0)) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must not throw an inexact exception because the result ;; is exact when the arg is 0. (assert-eql 1d0 (kernel:%cos x0))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact @@ -660,11 +655,11 @@ ;; sin(x) = x for |x| < 2^-27. Signal inexact unless x = 0 (let ((x (scale-float 1d0 -28)) (x0 0d0)) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must not throw an inexact exception because the result ;; is exact when the arg is 0. (assert-eql 0d0 (kernel:%sin x0))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact @@ -675,11 +670,11 @@ ;; tan(x) = x for |x| < 2^-28. Signal inexact unless x = 0 (let ((x (scale-float 1d0 -29)) (x0 0d0)) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must not throw an inexact exception because the result ;; is exact when the arg is 0. (assert-eql 0d0 (kernel:%tan x0))) - (with-inexact-exception-enabled + (ext:with-float-traps-enabled (:inexact) ;; This must throw an inexact exception for non-zero x even ;; though the result is exactly x. (assert-error 'floating-point-inexact -- GitLab