[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] feature/bignum c7e393b 15/24: Make lognot handle bignums
From: |
Tom Tromey |
Subject: |
[Emacs-diffs] feature/bignum c7e393b 15/24: Make lognot handle bignums |
Date: |
Fri, 13 Jul 2018 00:25:09 -0400 (EDT) |
branch: feature/bignum
commit c7e393bc4130c871a92fef7e9ac0c7c1832aa614
Author: Tom Tromey <address@hidden>
Commit: Tom Tromey <address@hidden>
Make lognot handle bignums
* src/data.c (Flognot): Handle bignums.
---
src/data.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/data.c b/src/data.c
index d717568..c950469 100644
--- a/src/data.c
+++ b/src/data.c
@@ -3306,8 +3306,20 @@ DEFUN ("lognot", Flognot, Slognot, 1, 1, 0,
doc: /* Return the bitwise complement of NUMBER. NUMBER must be an
integer. */)
(register Lisp_Object number)
{
- CHECK_FIXNUM (number);
- XSETINT (number, ~XINT (number));
+ CHECK_INTEGER (number);
+ if (BIGNUMP (number))
+ {
+ mpz_t value;
+ mpz_init (value);
+ mpz_com (value, XBIGNUM (number)->value);
+ number = make_number (value);
+ mpz_clear (value);
+ }
+ else
+ {
+ eassume (FIXNUMP (number));
+ XSETINT (number, ~XINT (number));
+ }
return number;
}
- [Emacs-diffs] feature/bignum 23eab9a 10/24: Make number-to-string work for bignums, (continued)
- [Emacs-diffs] feature/bignum 23eab9a 10/24: Make number-to-string work for bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 025adce 13/24: Make abs handle bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 6d4bf2c 09/24: Add some bignum tests, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 872faab 12/24: Allow conversion of bignums to floats, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 5875fba 08/24: Make arithmetic work with bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum a770fb4 16/24: Make logcount handle bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 0d86891 14/24: Make 1+ and 1- handle bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 8fb995b 17/24: Make min and max handle bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 3dea8f8 19/24: Make % and mod handle bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum d14808c 11/24: Make format handle bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum c7e393b 15/24: Make lognot handle bignums,
Tom Tromey <=
- [Emacs-diffs] feature/bignum 1e8ae6c 06/24: Make the reader accept bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 27980e3 21/24: Make ash and lsh handle bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum cca0e79 20/24: Make logb handle bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum d0fac17 18/24: Let C modules access bignum values, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum e2a78b0 23/24: Bignum fixes for byte-compiler and bytecode interpreter, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 45eb3b3 22/24: Use fixnump rather than integerp in some spots, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum cc3d758 24/24: Document bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 7cb45cd 02/24: Add configury for GMP library, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 42fe787 01/24: Rename integerp->fixnum, etc, in preparation for bignums, Tom Tromey, 2018/07/13