Proposal: Add Data.Bits.popCount

Edward Kmett ekmett at gmail.com
Wed Aug 17 18:41:43 CEST 2011


+1. I use this operation very heavily in geometric algebra.

On Wed, Aug 17, 2011 at 12:37 PM, Johan Tibell <johan.tibell at gmail.com>wrote:

> Hi!
>
> 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
> otherwise.
>
> Discussion period: 2 weeks
>
> Cheers,
> Johan
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20110817/ab1135ed/attachment.htm>


More information about the Libraries mailing list