Re: [PATCH 1/4] bitops: Add single_bit_set()
From: Vaittinen, Matti
Date: Mon Nov 22 2021 - 08:18:50 EST
On 11/22/21 14:57, Andy Shevchenko wrote:
> On Mon, Nov 22, 2021 at 12:42:21PM +0000, Vaittinen, Matti wrote:
>> On 11/22/21 13:28, Andy Shevchenko wrote:
>>> On Mon, Nov 22, 2021 at 01:03:25PM +0200, Matti Vaittinen wrote:
> What do you mean by this?
> hweight() will return you the number of the non-zero elements in the set.
Exactly. The function I added did only check if given set of bits had
only one bit set.
> In application to boolean based arrays it means the number of bits that
> are set. Obviously, the condition `hweight() == 1` is what you are looking
Yes. (hweight() == 1) will result exactly same result - which does not
mean the single_bit_set() was same as hweight(). Say, we have a 32bit
wide value, which is likely to be '11' (binary). The single_bit_set()
would return 0 after checking the 2.nd bit. So, this is not equal to
hamming weight. But as I said, none of this is really needed for my
use-case and does not warrant adding new function.
>> I think I actually tried using hweight() at some point but don't really
>> remember why I rolled the single_bit_set. (I remember the hweight()
>> usage because I had to do some googling as I had never heard term
>> hamming weight before).
> Oh, it should be a very good reason not to use hweight() since on some
> architectures it might become just one assembly instruction.
I didn't know of this. Thanks for sharing.
> (Side note: all your sentences but last in all of the paragraphs are ending
> with trailing space. For example, "series " and "thanks." for the comparison
> in the previous paragraph. Can you fix this, please?)
I changed from evolution to Thunderbird when my old laptop broke. It
seems Thunderbird is doing this by default, don't know if it can be
changed :( I'll see if I find a solution.
The Linux Kernel guy at ROHM Semiconductors
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
~~ this year is the year of a signature writers block ~~