On Sat, May 7, 2016 at 8:34 AM, Robert Haas <robertmh...@gmail.com> wrote:
> On Mon, May 2, 2016 at 8:25 PM, Andres Freund <and...@anarazel.de> wrote:
>> +static const uint8 number_of_ones_for_visible[256] = {
>> ...
>> +};
>> +static const uint8 number_of_ones_for_frozen[256] = {
>> ...
>>  };
>>
>> Did somebody verify the new contents are correct?
>
> I admit that I didn't.  It seemed like an unlikely place for a goof,
> but I guess we should verify.

Looks correct.  The tables match the output of the attached script.

-- 
Thomas Munro
http://www.enterprisedb.com
def popcount(value):
  return bin(value).count("1")

def make_popcount_table(mask):
  for high_nibble in range(0, 16):
    line = "\t"
    for low_nibble in range(0, 16):
      value = (high_nibble << 4) | low_nibble
      line += str(popcount(value & mask))
      if low_nibble != 15:
        line += ", "
      elif high_nibble != 15:
        line += ","
    print line

if __name__ == "__main__":
  print "static const uint8 number_of_ones_for_visible[256] = {"
  make_popcount_table(0b01010101) # for each bit pair, the lower bit
  print "};"
  print "static const uint8 number_of_ones_for_frozen[256] = {"
  make_popcount_table(0b10101010) # for each bit pair, the higher bit
  print "};"
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to