;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; ;;;; ;;;; Copyright IBM Corporation 1988,1991 - All Rights Reserved ;;;; ;;;; For full copyright information see:'andrew/config/COPYRITE' ;;;; ;;;; ;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; $Disclaimer: ; Permission to use, copy, modify, and distribute this software and its ; documentation for any purpose is hereby granted without fee, ; provided that the above copyright notice appear in all copies and that ; both that copyright notice, this permission notice, and the following ; disclaimer appear in supporting documentation, and that the names of ; IBM, Carnegie Mellon University, and other copyright holders, not be ; used in advertising or publicity pertaining to distribution of the software ; without specific, written prior permission. ; ; IBM, CARNEGIE MELLON UNIVERSITY, AND THE OTHER COPYRIGHT HOLDERS ; DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ; ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT ; SHALL IBM, CARNEGIE MELLON UNIVERSITY, OR ANY OTHER COPYRIGHT HOLDER ; BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY ; DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, ; WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ; ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE ; OF THIS SOFTWARE. ; $ ;;; ;;; Numeric functions ;;; ;; ;; ZEROP ;; integer x ;; returns t if x is 0, nil otherwise ;; (defun zerop (x) (eq x 0)) ;; ;; MOD ;; integer x ;; integer y ;; returns the integer remainder of x divided by y ;; (defun mod (x y) (- x (* (div x y) y))) ;; ;; BIT-AND ;; integer x ;; integer y ;; returns the bitwise-and of x and y ;; (defun bit-and (x y) (cond ((or (zerop x) (zerop y)) 0) (t (+ (* (mod x 2) (mod y 2)) (* 2 (bit-and (div x 2) (div y 2))))))) ;; ;; < ;; integer x ;; integer y ;; returns t if x is less than y, nil otherwise ;; (defun < (x y) (lessp x y)) ;; ;; > ;; integer x ;; integer y ;; returns t if x is greater than y, nil otherwise ;; (defun > (x y) (not (or (lessp x y) (eq x y))))