1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
(in-package :ouat)
(macrolet
((def-unary-op (name generic)
`(defmacro ,name (arg)
`(,',generic (the fixnum ,arg))))
(def-unary-32-op (name generic)
`(defmacro! ,name (arg)
`(,',generic (the (unsigned-byte 32) ,arg))))
(def-unary-fixnum-op (name generic)
`(defmacro ,name (arg)
`(the fixnum (,',generic (the fixnum ,arg)))))
(def-binary-op (name generic)
`(defmacro ,name (left right)
`(,',generic (the fixnum ,left) (the fixnum ,right))))
(def-binary-fixnum-op (name generic)
`(defmacro ,name (left right)
`(the fixnum (,',generic (the fixnum ,left) (the fixnum ,right)))))
(def-nary-op (name generic)
`(defmacro ,name (&rest args)
`(,',generic ,@(mapcar (lambda (arg) `(the fixnum ,arg)) args))))
(def-nary-fixnum-op (name generic)
`(defmacro ,name (&rest args)
`(the fixnum (,',generic ,@(mapcar (lambda (arg) `(the fixnum ,arg)) args))))))
(def-unary-op ievenp evenp)
(def-unary-op ilogcount logcount)
(def-unary-op ioddp oddp)
(def-unary-op izerop zerop)
(def-unary-op iplusp plusp)
(def-unary-op iminusp minusp)
(def-unary-fixnum-op i1+ 1+)
(def-unary-fixnum-op i1- 1-)
(def-unary-fixnum-op inegate -)
(def-unary-fixnum-op iabs abs)
(def-unary-fixnum-op ilognot lognot)
(def-nary-op i= =)
(def-nary-op i/= /=)
(def-nary-op i< <)
(def-nary-op i> >)
(def-nary-op i<= <=)
(def-nary-op i>= >=)
(def-binary-op ilogtest logtest)
(def-binary-fixnum-op i- -)
(def-binary-fixnum-op i/ floor)
(def-nary-fixnum-op i+ +)
(def-nary-fixnum-op i* *)
(def-nary-fixnum-op iincf incf)
(def-nary-fixnum-op idecf decf)
(def-binary-fixnum-op iash ash)
(def-binary-fixnum-op ilogandc1 logandc1)
(def-binary-fixnum-op ilogandc2 logandc2)
(def-binary-fixnum-op ilognand lognand)
(def-binary-fixnum-op ilognor lognor)
(def-binary-fixnum-op ilogorc1 logorc1)
(def-binary-fixnum-op ilogorc2 logorc2)
(def-nary-fixnum-op ilogand logand)
(def-nary-fixnum-op ilogior logior)
(def-nary-fixnum-op ilogxor logxor)
(def-nary-fixnum-op imax max)
(def-nary-fixnum-op imin min)
(def-binary-fixnum-op irem rem)
(def-binary-fixnum-op iround round)
(def-binary-fixnum-op itruncate truncate))
|