From e9cfd9f2d0d75d5d09d0acff6cb578a5c039c45c Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 25 Jul 2007 03:13:19 +0000 Subject: [PATCH] Improve name: "count-one-bits" is better than "popcount". * MODULES.html.sh: Update name. * lib/popcount.h: Renamed lib/count-one-bits.h. (popcount): Renamed count_one_bits. (popcountl): Renamed count_one_bits_l. (popcountll): Renamed count_one_bits_ll. * m4/popcount.m4: Renamed m4/count-one-bits.m4. * modules/popcount: Renamed module/count-one-bits. * modules/popcount-tests: Renamed module/count-one-bits-tests. * tests/test-popcount.c: Renamed tests/test-count-one-bits.c. --- ChangeLog | 13 +++++ MODULES.html.sh | 2 +- lib/{popcount.h => count-one-bits.h} | 48 +++++++++---------- m4/{popcount.m4 => count-one-bits.m4} | 6 +-- modules/{popcount => count-one-bits} | 10 ++-- modules/count-one-bits-tests | 10 ++++ modules/popcount-tests | 10 ---- ...{test-popcount.c => test-count-one-bits.c} | 13 ++--- 8 files changed, 61 insertions(+), 51 deletions(-) rename lib/{popcount.h => count-one-bits.h} (55%) rename m4/{popcount.m4 => count-one-bits.m4} (75%) rename modules/{popcount => count-one-bits} (51%) create mode 100644 modules/count-one-bits-tests delete mode 100644 modules/popcount-tests rename tests/{test-popcount.c => test-count-one-bits.c} (87%) diff --git a/ChangeLog b/ChangeLog index 6c0445071a..fa33df85be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2007-07-24 Ben Pfaff + + Improve name: "count-one-bits" is better than "popcount". + * MODULES.html.sh: Update name. + * lib/popcount.h: Renamed lib/count-one-bits.h. + (popcount): Renamed count_one_bits. + (popcountl): Renamed count_one_bits_l. + (popcountll): Renamed count_one_bits_ll. + * m4/popcount.m4: Renamed m4/count-one-bits.m4. + * modules/popcount: Renamed module/count-one-bits. + * modules/popcount-tests: Renamed module/count-one-bits-tests. + * tests/test-popcount.c: Renamed tests/test-count-one-bits.c. + 2007-07-23 Ben Pfaff * lib/popcount.h (popcount32): Reduce size of constants, to allow diff --git a/MODULES.html.sh b/MODULES.html.sh index a3a6adbd7d..5fc9952600 100755 --- a/MODULES.html.sh +++ b/MODULES.html.sh @@ -1609,9 +1609,9 @@ func_all_modules () func_echo "$element" func_begin_table + func_module count-one-bits func_module gcd func_module minmax - func_module popcount func_end_table element="Environment variables " diff --git a/lib/popcount.h b/lib/count-one-bits.h similarity index 55% rename from lib/popcount.h rename to lib/count-one-bits.h index 0ea6ed8374..7553bec4ec 100644 --- a/lib/popcount.h +++ b/lib/count-one-bits.h @@ -1,4 +1,4 @@ -/* popcount.h -- population count +/* count-one-bits.h -- counts the number of 1-bits in a word. Copyright (C) 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -17,29 +17,28 @@ /* Written by Ben Pfaff. */ -#ifndef POPCOUNT_H -# define POPCOUNT_H 1 +#ifndef COUNT_ONE_BITS_H +# define COUNT_ONE_BITS_H 1 #include #include #include "verify.h" #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR >= 4) -#define POPCOUNT_CALCULATION(NAME, TYPE) \ - return __builtin_##NAME (x); +#define COUNT_ONE_BITS(BUILTIN, TYPE) \ + return BUILTIN (x); #else -#define POPCOUNT_CALCULATION(NAME, TYPE) \ - int pop = popcount32 (x); \ +#define COUNT_ONE_BITS(BUILTIN, TYPE) \ + int count = count_one_bits_32 (x); \ if (CHAR_BIT * sizeof (TYPE) > 32) \ - pop += popcount32 (x >> 31 >> 1); \ + count += count_one_bits_32 (x >> 31 >> 1); \ (void) verify_true (CHAR_BIT * sizeof (TYPE) <= 64); \ - return pop; + return count; -/* Compute and return the population count of the low 32 bits of - X, that is, the number of 1-bits set in its least significant - 32 bits. */ +/* Compute and return the the number of 1-bits set in the least + significant 32 bits of X. */ static inline int -popcount32 (unsigned int x) +count_one_bits_32 (unsigned int x) { x = ((x & 0xaaaaaaaaU) >> 1) + (x & 0x55555555U); x = ((x & 0xccccccccU) >> 2) + (x & 0x33333333U); @@ -49,30 +48,27 @@ popcount32 (unsigned int x) } #endif -/* Compute and return the population count of X, that is, the - number of 1-bits set in X. */ +/* Compute and return the number of 1-bits set in X. */ static inline int -popcount (unsigned int x) +count_one_bits (unsigned int x) { - POPCOUNT_CALCULATION (popcount, unsigned int); + COUNT_ONE_BITS (__builtin_popcount, unsigned int); } -/* Compute and return the population count of X, that is, the - number of 1-bits set in X. */ +/* Compute and return the number of 1-bits set in X. */ static inline int -popcountl (unsigned long int x) +count_one_bits_l (unsigned long int x) { - POPCOUNT_CALCULATION (popcountl, unsigned long int); + COUNT_ONE_BITS (__builtin_popcountl, unsigned long int); } #if HAVE_UNSIGNED_LONG_LONG_INT -/* Compute and return the population count of X, that is, the - number of 1-bits set in X. */ +/* Compute and return the number of 1-bits set in X. */ static inline int -popcountll (unsigned long long int x) +count_one_bits_ll (unsigned long long int x) { - POPCOUNT_CALCULATION (popcountll, unsigned long long int); + COUNT_ONE_BITS (__builtin_popcountll, unsigned long long int); } #endif -#endif /* POPCOUNT_H */ +#endif /* COUNT_ONE_BITS_H */ diff --git a/m4/popcount.m4 b/m4/count-one-bits.m4 similarity index 75% rename from m4/popcount.m4 rename to m4/count-one-bits.m4 index 5cec20c3f7..8d1410a57e 100644 --- a/m4/popcount.m4 +++ b/m4/count-one-bits.m4 @@ -1,12 +1,12 @@ -# popcount.m4 serial 1 +# count-one-bits.m4 serial 1 dnl Copyright (C) 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. -AC_DEFUN([gl_POPCOUNT], +AC_DEFUN([gl_COUNT_ONE_BITS], [ - dnl We don't need (and can't compile) popcountll + dnl We don't need (and can't compile) count_one_bits_ll dnl unless the type 'unsigned long long int' exists. AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) ]) diff --git a/modules/popcount b/modules/count-one-bits similarity index 51% rename from modules/popcount rename to modules/count-one-bits index 45fd56b70f..84160d3d2b 100644 --- a/modules/popcount +++ b/modules/count-one-bits @@ -1,21 +1,21 @@ Description: -Compute population count (number of 1-bits in a word). +Counts the number of 1-bits in a word. Files: -lib/popcount.h -m4/popcount.m4 +lib/count-one-bits.h +m4/count-one-bits.m4 Depends-on: inline verify configure.ac: -gl_POPCOUNT +gl_COUNT_ONE_BITS Makefile.am: Include: -"popcount.h" +"count-one-bits.h" License: GPL diff --git a/modules/count-one-bits-tests b/modules/count-one-bits-tests new file mode 100644 index 0000000000..c8241b3576 --- /dev/null +++ b/modules/count-one-bits-tests @@ -0,0 +1,10 @@ +Files: +tests/test-count-one-bits.c + +Depends-on: + +configure.ac: + +Makefile.am: +TESTS += test-count-one-bits +check_PROGRAMS += test-count-one-bits diff --git a/modules/popcount-tests b/modules/popcount-tests deleted file mode 100644 index 7579ee7975..0000000000 --- a/modules/popcount-tests +++ /dev/null @@ -1,10 +0,0 @@ -Files: -tests/test-popcount.c - -Depends-on: - -configure.ac: - -Makefile.am: -TESTS += test-popcount -check_PROGRAMS += test-popcount diff --git a/tests/test-popcount.c b/tests/test-count-one-bits.c similarity index 87% rename from tests/test-popcount.c rename to tests/test-count-one-bits.c index 495b5748db..2375d7beab 100644 --- a/tests/test-popcount.c +++ b/tests/test-count-one-bits.c @@ -20,7 +20,7 @@ #include -#include "popcount.h" +#include "count-one-bits.h" #include #include @@ -52,7 +52,7 @@ main (int argc, char *argv[]) { int i, j; -#define TEST_POPCOUNT(FUNC, TYPE, BITS, MAX, ONE) \ +#define TEST_COUNT_ONE_BITS(FUNC, TYPE, BITS, MAX, ONE) \ ASSERT (FUNC (0) == 0); \ for (i = 0; i < BITS; i++) \ { \ @@ -70,11 +70,12 @@ main (int argc, char *argv[]) } \ ASSERT (FUNC (MAX) == BITS); - TEST_POPCOUNT (popcount, unsigned int, UINT_BIT, UINT_MAX, 1U); - TEST_POPCOUNT (popcountl, unsigned long int, ULONG_BIT, ULONG_MAX, 1UL); + TEST_COUNT_ONE_BITS (count_one_bits, unsigned int, UINT_BIT, UINT_MAX, 1U); + TEST_COUNT_ONE_BITS (count_one_bits_l, unsigned long int, + ULONG_BIT, ULONG_MAX, 1UL); #ifdef HAVE_UNSIGNED_LONG_LONG_INT - TEST_POPCOUNT (popcountll, - unsigned long long int, ULLONG_BIT, ULLONG_MAX, 1ULL); + TEST_COUNT_ONE_BITS (count_one_bits_ll, + unsigned long long int, ULLONG_BIT, ULLONG_MAX, 1ULL); #endif return 0; -- 2.30.2