From bb7e0338919d1c7068a64b3855e50fac345e4e05 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 16 Aug 2018 19:53:21 -0700 Subject: [PATCH] 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 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; -- 2.39.2