Proposal: Add Data.Bits.popCount
johan.tibell at gmail.com
Wed Aug 17 18:37:25 CEST 2011
Now when we have a fast popCnt# primop* it would be nice to expose it
to the world through an official API. I propose we add this method to
the Bits class in Data.Bits:
-- | Return the number of set bits in the argument, know as the
-- population count or the Hamming weight.
popCount :: a -> Int
I will provide a default implementation, which means that this change
won't break any existing user defined instances. All the instances for
the basic types (Ints, Words, etc) will use the primops.
* These primops compile to a single POPCNT instruction if the user
compile using -msse4.2 and a fast lookup table based implementation
Discussion period: 2 weeks
More information about the Libraries