[movitz-cvs] CVS movitz/losp/muerte
ffjeld
ffjeld at common-lisp.net
Sun Apr 13 08:21:40 UTC 2008
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv5960
Modified Files:
integers.lisp
Log Message:
Implement boole and friends.
--- /project/movitz/cvsroot/movitz/losp/muerte/integers.lisp 2008/02/04 10:08:18 1.124
+++ /project/movitz/cvsroot/movitz/losp/muerte/integers.lisp 2008/04/13 08:21:40 1.125
@@ -9,7 +9,7 @@
;;;; Created at: Wed Nov 8 18:44:57 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: integers.lisp,v 1.124 2008/02/04 10:08:18 ffjeld Exp $
+;;;; $Id: integers.lisp,v 1.125 2008/04/13 08:21:40 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -2248,8 +2248,7 @@
(numerator power-number)))))
(defun floatp (x)
- (declare (ignore x))
- nil)
+ (typep x 'real))
(defun realpart (number)
number)
@@ -2263,3 +2262,73 @@
(defun realp (x)
(typep x 'real))
+
+(defconstant boole-clr 'boole-clr)
+(defconstant boole-1 'boole-1)
+(defconstant boole-2 'boole-2)
+(defconstant boole-c1 'boole-c1)
+(defconstant boole-c2 'boole-c2)
+(defconstant boole-eqv 'logeqv)
+(defconstant boole-and 'logand)
+(defconstant boole-nand 'lognand)
+(defconstant boole-andc1 'logandc1)
+(defconstant boole-andc2 'logandc2)
+(defconstant boole-ior 'logior)
+(defconstant boole-nor 'lognor)
+(defconstant boole-orc1 'logorc1)
+(defconstant boole-orc2 'logorc2)
+(defconstant boole-xor 'logxor)
+(defconstant boole-set 'boole-set)
+
+(defun boole (op integer-1 integer-2)
+ "=> result-integer"
+ (funcall op integer-1 integer-2))
+
+(defun boole-clr (integer-1 integer-2)
+ (declare (ignore integer-1 integer-2))
+ 0)
+
+(defun boole-set (integer-1 integer-2)
+ (declare (ignore integer-1 integer-2))
+ -1)
+
+(defun boole-1 (integer-1 integer-2)
+ (declare (ignore integer-2))
+ integer-1)
+
+(defun boole-2 (integer-1 integer-2)
+ (declare (ignore integer-1))
+ integer-2)
+
+(defun logandc1 (integer-1 integer-2)
+ (logand (lognot integer-1)
+ integer-2))
+
+(defun logandc2 (integer-1 integer-2)
+ (logand integer-1
+ (lognot integer-2)))
+
+(defun boole-c1 (integer-1 integer-2)
+ (declare (ignore integer-2))
+ (lognot integer-1))
+
+(defun boole-c2 (integer-1 integer-2)
+ (declare (ignore integer-1))
+ (lognot integer-2))
+
+(defun logeqv (integer-1 integer-2)
+ (lognot (logxor integer-1 integer-2)))
+
+(defun lognand (integer-1 integer-2)
+ (lognot (logand integer-1 integer-2)))
+
+(defun lognor (integer-1 integer-2)
+ (lognot (logior integer-1 integer-2)))
+
+(defun logorc1 (integer-1 integer-2)
+ (logior (lognot integer-1)
+ integer-2))
+
+(defun logorc2 (integer-1 integer-2)
+ (logior integer-1
+ (lognot integer-2)))
More information about the Movitz-cvs
mailing list