public int CurrentImplementation()
        {
            var sum = 0;

            for (int i = 0; i < _testValues.Length; i++)
            {
                sum += Bitwise.NumberOfLeadingZeros(_testValues[i]);
            }
            return(sum);
        }
Пример #2
0
        private static int GetBucketIndex(long value, long subBucketMask, int bucketIndexOffset)
        {
            var leadingZeros = Bitwise.NumberOfLeadingZeros(value | subBucketMask); // smallest power of 2 containing value

            return(bucketIndexOffset - leadingZeros);
        }