emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master bb7e033: Speed up logcount on bignums


From: Paul Eggert
Subject: [Emacs-diffs] master bb7e033: Speed up logcount on bignums
Date: Thu, 16 Aug 2018 22:54:35 -0400 (EDT)

branch: master
commit bb7e0338919d1c7068a64b3855e50fac345e4e05
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Speed up logcount on bignums
    
    * src/data.c (Flogcount): Speed up by using the mpz equivalent
    of ~X instead of -X-1.
---
 src/data.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/data.c b/src/data.c
index a1215b9..66f508c 100644
--- a/src/data.c
+++ b/src/data.c
@@ -3350,8 +3350,7 @@ representation.  */)
        return make_fixnum (mpz_popcount (XBIGNUM (value)->value));
       mpz_t tem;
       mpz_init (tem);
-      mpz_neg (tem, XBIGNUM (value)->value);
-      mpz_sub_ui (tem, tem, 1);
+      mpz_com (tem, XBIGNUM (value)->value);
       Lisp_Object result = make_fixnum (mpz_popcount (tem));
       mpz_clear (tem);
       return result;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]