summaryrefslogtreecommitdiff
path: root/lisp/subr.el
diff options
context:
space:
mode:
authorMattias EngdegÄrd <mattiase@acm.org>2025-02-19 19:58:17 +0100
committerMattias EngdegÄrd <mattiase@acm.org>2025-02-20 20:14:33 +0100
commit5d5736ca75397ce0b3ab0d58e40b0489f876618a (patch)
tree13b933b3b23ddb72d14cf38e206e489d90fb8261 /lisp/subr.el
parentb481fbe92f793bae2ccd9d2d4efdaf0549390a41 (diff)
downloademacs-5d5736ca75397ce0b3ab0d58e40b0489f876618a.tar.gz
emacs-5d5736ca75397ce0b3ab0d58e40b0489f876618a.tar.bz2
emacs-5d5736ca75397ce0b3ab0d58e40b0489f876618a.zip
* lisp/subr.el (oddp, evenp): Pure. % faster than logand.
Diffstat (limited to 'lisp/subr.el')
-rw-r--r--lisp/subr.el12
1 files changed, 6 insertions, 6 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index e9b49ae5376..7263817711b 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -567,16 +567,16 @@ was called."
(defun oddp (integer)
"Return t if INTEGER is odd."
(declare (ftype (function (integer) boolean))
- (side-effect-free t)
- (compiler-macro (lambda (_) `(eq (logand ,integer 1) 1))))
- (eq (logand integer 1) 1))
+ (pure t) (side-effect-free t)
+ (compiler-macro (lambda (_) `(not (eq (% ,integer 2) 0)))))
+ (not (eq (% integer 2) 0)))
(defun evenp (integer)
"Return t if INTEGER is even."
(declare (ftype (function (integer) boolean))
- (side-effect-free t)
- (compiler-macro (lambda (_) `(eq (logand ,integer 1) 0))))
- (eq (logand integer 1) 0))
+ (pure t) (side-effect-free t)
+ (compiler-macro (lambda (_) `(eq (% ,integer 2) 0))))
+ (eq (% integer 2) 0))
(defun fixnump (object)
"Return t if OBJECT is a fixnum."