diff --git a/numbers/atan.lsp b/numbers/atan.lsp index 9945574d1840fb4c159b9e934777c9f75595da80..6c345c1f7f6bb6ac72180bf8e1e732ef533a177d 100644 --- a/numbers/atan.lsp +++ b/numbers/atan.lsp @@ -128,9 +128,9 @@ ;;; ieee-fp tests (deftest atan.ieee.1 :description "Verify if atan handles 0.0 correctly" - (flet ((+pi-p (elt) (< (abs (- pi elt)) 0.01)) - (+pi/2-p (elt) (< (abs (- (/ pi 2) elt)) 0.01)) - (-pi/2-p (elt) (< (abs (+ (/ pi 2) elt)) 0.01))) + (flet ((+pi-p (elt) (= (coerce pi (type-of elt)) elt)) + (+pi/2-p (elt) (approx= (coerce (/ pi +2) (type-of elt)) elt)) + (-pi/2-p (elt) (approx= (coerce (/ pi -2) (type-of elt)) elt))) ;; (atan +-0 +(anything-but-nan)) -> +-0 ;; (atan +-0 -(anything-but-nan)) -> +-pi ;; (atan +-(anything-but-0/nan) 0) -> +-pi/2 @@ -155,8 +155,8 @@ (-zerop (elt) (and (zerop elt) (minusp (float-sign elt)))) - (+pi-p (elt) (< (abs (- pi elt)) 0.01)) - (-pi-p (elt) (< (abs (+ pi elt)) 0.01))) + (+pi-p (elt) (= (coerce pi (type-of elt)) elt)) + (-pi-p (elt) (= (coerce pi (type-of elt)) (- elt)))) (and (+zerop (atan +0.0 +0.0)) (-zerop (atan -0.0 +0.0))