In this binary case, it is also called the population count,[1] popcount, sideways sum,[2] or bit summation.
[6] Irving S. Reed introduced a concept, equivalent to Hamming weight in the binary case, in 1954.
If greater memory usage is allowed, we can calculate the Hamming weight faster than the above methods.
With unlimited memory, we could simply create a large lookup table of the Hamming weight of every 64 bit integer.
Muła et al.[13] have shown that a vectorized version of popcount64b can run faster than dedicated instructions (e.g., popcnt on x64 processors).
For example, GCC (since version 3.4 in April 2004) includes a builtin function __builtin_popcount that will use a processor instruction if available or an efficient library implementation otherwise.
In Java, the growable bit-array data structure BitSet has a BitSet.cardinality() method that counts the number of bits that are set.
[17] In Common Lisp, the function logcount, given a non-negative integer, returns the number of 1 bits.
Starting in GHC 7.4, the Haskell base package has a popCount function available on all types that are instances of the Bits class (available from the Data.Bits module).