numlib: trap-fpe on inf constant definitions

This commit is contained in:
Daniel Kochmański 2016-09-06 18:27:18 +02:00
parent 06347ae9d5
commit 33699e142f

View file

@ -74,15 +74,19 @@
))
#+ieee-floating-point
(let ((inf (si::infinity)))
(defconstant short-float-positive-infinity (coerce inf 'short-float))
(defconstant short-float-negative-infinity (coerce (- inf) 'short-float))
(defconstant single-float-positive-infinity (coerce inf 'single-float))
(defconstant single-float-negative-infinity (coerce (- inf) 'single-float))
(defconstant double-float-positive-infinity (coerce inf 'double-float))
(defconstant double-float-negative-infinity (coerce (- inf) 'double-float))
(defconstant long-float-positive-infinity (coerce inf 'long-float))
(defconstant long-float-negative-infinity (coerce (- inf) 'long-float)))
(let ((bits (si:trap-fpe 'last nil)))
(unwind-protect
(locally (declare (notinline -))
(let ((inf (si:infinity)))
(defconstant short-float-positive-infinity (coerce inf 'short-float))
(defconstant short-float-negative-infinity (coerce (- inf) 'short-float))
(defconstant single-float-positive-infinity (coerce inf 'single-float))
(defconstant single-float-negative-infinity (coerce (- inf) 'single-float))
(defconstant double-float-positive-infinity (coerce inf 'double-float))
(defconstant double-float-negative-infinity (coerce (- inf) 'double-float))
(defconstant long-float-positive-infinity (coerce inf 'long-float))
(defconstant long-float-negative-infinity (coerce (- inf) 'long-float))))
(si:trap-fpe bits t)))
(defconstant imag-one #C(0.0 1.0))