diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2025-02-19 19:58:17 +0100 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2025-02-20 20:14:33 +0100 |
commit | 5d5736ca75397ce0b3ab0d58e40b0489f876618a (patch) | |
tree | 13b933b3b23ddb72d14cf38e206e489d90fb8261 /lisp/subr.el | |
parent | b481fbe92f793bae2ccd9d2d4efdaf0549390a41 (diff) | |
download | emacs-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.el | 12 |
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." |