[ieeefp-tests-cvs] CVS update: ieeefp-tests/ieee754/ieee754-abcl.lisp
Peter Graves
pgraves at common-lisp.net
Thu Aug 25 15:27:45 UTC 2005
Update of /project/ieeefp-tests/cvsroot/ieeefp-tests/ieee754
In directory common-lisp.net:/tmp/cvs-serv4938
Modified Files:
ieee754-abcl.lisp
Log Message:
Single float support, comparison operators.
Date: Thu Aug 25 17:27:45 2005
Author: pgraves
Index: ieeefp-tests/ieee754/ieee754-abcl.lisp
diff -u ieeefp-tests/ieee754/ieee754-abcl.lisp:1.3 ieeefp-tests/ieee754/ieee754-abcl.lisp:1.4
--- ieeefp-tests/ieee754/ieee754-abcl.lisp:1.3 Tue Jun 15 21:58:31 2004
+++ ieeefp-tests/ieee754/ieee754-abcl.lisp Thu Aug 25 17:27:45 2005
@@ -1,27 +1,48 @@
(in-package "IEEE754-INTERNALS")
-(defvar ieeefp-tests:*float-types* (list :double))
+(defvar ieeefp-tests:*float-types* (list :single :double))
(defvar ieeefp-tests:*rounding-modes* (list :nearest))
(defun make-single-float (x)
- (error "Not supported."))
+ (sys:make-single-float x))
(defun make-double-float (x)
- (sys::make-double-float x))
+ (sys:make-double-float x))
(defun single-float-bits (x)
- (error "Not supported."))
+ (declare (type single-float x))
+ (ldb (byte 32 0) (sys:single-float-bits x)))
(defun double-float-bits (x)
(declare (type double-float x))
(ldb (byte 64 0)
- (logior (ash (sys::double-float-high-bits x) 32)
- (sys::double-float-low-bits x))))
+ (logior (ash (sys:double-float-high-bits x) 32)
+ (sys:double-float-low-bits x))))
(defun set-floating-point-modes (&rest args &key traps accrued-exceptions
current-exceptions rounding-mode precision)
- (declare (ignore traps accrued-exceptions current-exceptions rounding-mode
- precision))
+ (declare (ignore args traps accrued-exceptions current-exceptions
+ rounding-mode precision))
;; Not supported.
)
+
+(macrolet
+ ((def (x &body body)
+ `(defun ,x (x y)
+ (declare (type float x y))
+ , at body)))
+ (def = (cl:= x y))
+ (def ?<> (not (= x y)))
+ (def > (cl:> x y))
+ (def >= (cl:>= x y))
+ (def < (cl:< x y))
+ (def <= (cl:<= x y))
+ (def ? (or (sys:float-nan-p x) (sys:float-nan-p y)))
+ (def <> (or (< x y) (> x y)))
+ (def <=> (or (< x y) (= x y) (> x y)))
+ (def ?> (or (? x y) (> x y)))
+ (def ?>= (or (? x y) (>= x y)))
+ (def ?< (or (? x y) (< x y)))
+ (def ?<= (or (? x y) (<= x y)))
+ (def ?= (or (? x y) (= x y))))
More information about the Ieeefp-tests-cvs
mailing list