[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] feature/bignum 8fb995b 17/24: Make min and max handle bign
From: |
Tom Tromey |
Subject: |
[Emacs-diffs] feature/bignum 8fb995b 17/24: Make min and max handle bignums |
Date: |
Fri, 13 Jul 2018 00:25:09 -0400 (EDT) |
branch: feature/bignum
commit 8fb995b9e360270b6a4d7b7732a127a6234eba23
Author: Tom Tromey <address@hidden>
Commit: Tom Tromey <address@hidden>
Make min and max handle bignums
* src/data.c (minmax_driver): Handle bignums.
* test/src/data-tests.el (data-tests-minmax): New test.
---
src/data.c | 4 ++--
test/src/data-tests.el | 7 +++++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/data.c b/src/data.c
index 2e366b5..7ded836 100644
--- a/src/data.c
+++ b/src/data.c
@@ -3119,11 +3119,11 @@ minmax_driver (ptrdiff_t nargs, Lisp_Object *args,
enum Arith_Comparison comparison)
{
Lisp_Object accum = args[0];
- CHECK_FIXNUM_OR_FLOAT_COERCE_MARKER (accum);
+ CHECK_NUMBER_COERCE_MARKER (accum);
for (ptrdiff_t argnum = 1; argnum < nargs; argnum++)
{
Lisp_Object val = args[argnum];
- CHECK_FIXNUM_OR_FLOAT_COERCE_MARKER (val);
+ CHECK_NUMBER_COERCE_MARKER (val);
if (!NILP (arithcompare (val, accum, comparison)))
accum = val;
else if (FLOATP (val) && isnan (XFLOAT_DATA (val)))
diff --git a/test/src/data-tests.el b/test/src/data-tests.el
index 561b7bd..4565cfb 100644
--- a/test/src/data-tests.el
+++ b/test/src/data-tests.el
@@ -590,4 +590,11 @@ comparing the subr with a much slower lisp implementation."
(ert-deftest data-tests-logcount ()
(should (= (logcount (read "#xffffffffffffffffffffffffffffffff")) 128)))
+(ert-deftest data-tests-minmax ()
+ (let ((a (- most-negative-fixnum 1))
+ (b (+ most-positive-fixnum 1))
+ (c 0))
+ (should (= (min a b c) a))
+ (should (= (max a b c) b))))
+
;;; data-tests.el ends here
- [Emacs-diffs] feature/bignum b2f3f4e 04/24: Provide new functions to create bignums, (continued)
- [Emacs-diffs] feature/bignum b2f3f4e 04/24: Provide new functions to create bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum 580d173 05/24: Make eql work for bignums, Tom Tromey, 2018/07/13
- [Emacs-diffs] feature/bignum a0f2adb 03/24: Introduce the bignum type, Tom Tromey, 2018/07/13
- [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 <=
- [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, 2018/07/13
- [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