[ros-dev] [ros-diffs] [tkreuzer] 44464: [RTL] Rewrite the rtl bitmap implementation. The old one was a little .... suboptimal. The new one should outperform the old one by several orders of magnitude, especially RtlFindClearBits that was literally searching bit by bit.

Alex Ionescu ionucu at videotron.ca
Tue Dec 8 03:58:39 CET 2009


Well why this then? They should be intrinsics...

On 2009-12-07, at 8:43 PM, Timo Kreuzer wrote:

>>> +unsigned char BitScanForward(ULONG * Index, unsigned long Mask)
>>> +{
>>> +    *Index = 0;
>>> +    while (Mask && ((Mask & 1) == 0))
>>> +    {
>>> +        Mask >>= 1;
>>> +        ++(*Index);
>>> +    }
>>> +    return Mask ? 1 : 0;
>>> +}
>>> +
>>> +unsigned char BitScanReverse(ULONG * const Index, unsigned long Mask)
>>> +{
>>> +    *Index = 0;
>>> +    while (Mask && ((Mask & (1 << 31)) == 0))
>>> +    {
>>> +        Mask <<= 1;
>>> +        ++(*Index);
>>> +    }
>>> +    return Mask ? 1 : 0;
>>> +}
>> 

Best regards,
Alex Ionescu




More information about the Ros-dev mailing list