36 size_t r = ((n & (n - 1)) == 0 ? 0 : 1);
48 assert(i >= -(1l << (w - 1)));
49 assert(i < (1l << (w - 1)));
50 return (i >= 0) ? i : i + (1l << w);
55 assert(i < (1ul << w));
56 return (i < (1ul << (w - 1))) ? i : i - (1ul << w);
62 for (
size_t k = 0; k < l; ++k) {
63 r = (r << 1) | (n & 1);
70 const std::initializer_list<unsigned long> &l,
const size_t wordsize)
73 for (
size_t i = 0; i < l.size(); ++i) {
74 for (
size_t j = 0; j < wordsize; ++j) {
75 res[i * wordsize + j] =
76 (*(l.begin() + i) & (1ul << (wordsize - 1 - j)));
82 long long div_ceil(
long long x,
long long y) {
return (x + (y - 1)) / y; }
86 uint64_t a = 0x12345678;
87 unsigned char *c = (
unsigned char *)(&a);
91 std::string
FORMAT(
const std::string &prefix,
const char *format, ...)
93 const static size_t MAX_FMT = 256;
96 va_start(args, format);
97 vsnprintf(buf, MAX_FMT, format, args);
100 return prefix + std::string(buf);
105 out << v.size() <<
"\n";
106 for (
size_t i = 0; i < v.size(); ++i) {
116 for (
size_t i = 0; i < size; ++i) {