From: Paul Eggert Date: Fri, 17 Aug 2018 02:53:21 +0000 (-0700) Subject: Speed up logcount on bignums X-Git-Tag: emacs-27.0.90~4555 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bb7e0338919d1c7068a64b3855e50fac345e4e05;p=emacs.git Speed up logcount on bignums * src/data.c (Flogcount): Speed up by using the mpz equivalent of ~X instead of -X-1. --- diff --git a/src/data.c b/src/data.c index a1215b9d6bf..66f508c8f43 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;