static inline void pack_bits_63()

in theta/include/bit_packing.hpp [3138:3216]


static inline void pack_bits_63(const uint64_t* values, uint8_t* ptr) {
  *ptr++ = static_cast<uint8_t>(values[0] >> 55);
  *ptr++ = static_cast<uint8_t>(values[0] >> 47);
  *ptr++ = static_cast<uint8_t>(values[0] >> 39);
  *ptr++ = static_cast<uint8_t>(values[0] >> 31);
  *ptr++ = static_cast<uint8_t>(values[0] >> 23);
  *ptr++ = static_cast<uint8_t>(values[0] >> 15);
  *ptr++ = static_cast<uint8_t>(values[0] >> 7);

  *ptr = static_cast<uint8_t>(values[0] << 1);
  *ptr++ |= static_cast<uint8_t>(values[1] >> 62);
  *ptr++ = static_cast<uint8_t>(values[1] >> 54);
  *ptr++ = static_cast<uint8_t>(values[1] >> 46);
  *ptr++ = static_cast<uint8_t>(values[1] >> 38);
  *ptr++ = static_cast<uint8_t>(values[1] >> 30);
  *ptr++ = static_cast<uint8_t>(values[1] >> 22);
  *ptr++ = static_cast<uint8_t>(values[1] >> 14);
  *ptr++ = static_cast<uint8_t>(values[1] >> 6);

  *ptr = static_cast<uint8_t>(values[1] << 2);
  *ptr++ |= static_cast<uint8_t>(values[2] >> 61);
  *ptr++ = static_cast<uint8_t>(values[2] >> 53);
  *ptr++ = static_cast<uint8_t>(values[2] >> 45);
  *ptr++ = static_cast<uint8_t>(values[2] >> 37);
  *ptr++ = static_cast<uint8_t>(values[2] >> 29);
  *ptr++ = static_cast<uint8_t>(values[2] >> 21);
  *ptr++ = static_cast<uint8_t>(values[2] >> 13);
  *ptr++ = static_cast<uint8_t>(values[2] >> 5);

  *ptr = static_cast<uint8_t>(values[2] << 3);
  *ptr++ |= static_cast<uint8_t>(values[3] >> 60);
  *ptr++ = static_cast<uint8_t>(values[3] >> 52);
  *ptr++ = static_cast<uint8_t>(values[3] >> 44);
  *ptr++ = static_cast<uint8_t>(values[3] >> 36);
  *ptr++ = static_cast<uint8_t>(values[3] >> 28);
  *ptr++ = static_cast<uint8_t>(values[3] >> 20);
  *ptr++ = static_cast<uint8_t>(values[3] >> 12);
  *ptr++ = static_cast<uint8_t>(values[3] >> 4);

  *ptr = static_cast<uint8_t>(values[3] << 4);
  *ptr++ |= static_cast<uint8_t>(values[4] >> 59);
  *ptr++ = static_cast<uint8_t>(values[4] >> 51);
  *ptr++ = static_cast<uint8_t>(values[4] >> 43);
  *ptr++ = static_cast<uint8_t>(values[4] >> 35);
  *ptr++ = static_cast<uint8_t>(values[4] >> 27);
  *ptr++ = static_cast<uint8_t>(values[4] >> 19);
  *ptr++ = static_cast<uint8_t>(values[4] >> 11);
  *ptr++ = static_cast<uint8_t>(values[4] >> 3);

  *ptr = static_cast<uint8_t>(values[4] << 5);
  *ptr++ |= static_cast<uint8_t>(values[5] >> 58);
  *ptr++ = static_cast<uint8_t>(values[5] >> 50);
  *ptr++ = static_cast<uint8_t>(values[5] >> 42);
  *ptr++ = static_cast<uint8_t>(values[5] >> 34);
  *ptr++ = static_cast<uint8_t>(values[5] >> 26);
  *ptr++ = static_cast<uint8_t>(values[5] >> 18);
  *ptr++ = static_cast<uint8_t>(values[5] >> 10);
  *ptr++ = static_cast<uint8_t>(values[5] >> 2);

  *ptr = static_cast<uint8_t>(values[5] << 6);
  *ptr++ |= static_cast<uint8_t>(values[6] >> 57);
  *ptr++ = static_cast<uint8_t>(values[6] >> 49);
  *ptr++ = static_cast<uint8_t>(values[6] >> 41);
  *ptr++ = static_cast<uint8_t>(values[6] >> 33);
  *ptr++ = static_cast<uint8_t>(values[6] >> 25);
  *ptr++ = static_cast<uint8_t>(values[6] >> 17);
  *ptr++ = static_cast<uint8_t>(values[6] >> 9);
  *ptr++ = static_cast<uint8_t>(values[6] >> 1);

  *ptr = static_cast<uint8_t>(values[6] << 7);
  *ptr++ |= static_cast<uint8_t>(values[7] >> 56);
  *ptr++ = static_cast<uint8_t>(values[7] >> 48);
  *ptr++ = static_cast<uint8_t>(values[7] >> 40);
  *ptr++ = static_cast<uint8_t>(values[7] >> 32);
  *ptr++ = static_cast<uint8_t>(values[7] >> 24);
  *ptr++ = static_cast<uint8_t>(values[7] >> 16);
  *ptr++ = static_cast<uint8_t>(values[7] >> 8);
  *ptr = static_cast<uint8_t>(values[7]);
}