123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #include "bitops.h"
- namespace NBitOps {
- namespace NPrivate {
- const ui64 WORD_MASK[] = {
- 0x0000000000000000ULL,
- 0x0000000000000001ULL,
- 0x0000000000000003ULL,
- 0x0000000000000007ULL,
- 0x000000000000000FULL,
- 0x000000000000001FULL,
- 0x000000000000003FULL,
- 0x000000000000007FULL,
- 0x00000000000000FFULL,
- 0x00000000000001FFULL,
- 0x00000000000003FFULL,
- 0x00000000000007FFULL,
- 0x0000000000000FFFULL,
- 0x0000000000001FFFULL,
- 0x0000000000003FFFULL,
- 0x0000000000007FFFULL,
- 0x000000000000FFFFULL,
- 0x000000000001FFFFULL,
- 0x000000000003FFFFULL,
- 0x000000000007FFFFULL,
- 0x00000000000FFFFFULL,
- 0x00000000001FFFFFULL,
- 0x00000000003FFFFFULL,
- 0x00000000007FFFFFULL,
- 0x0000000000FFFFFFULL,
- 0x0000000001FFFFFFULL,
- 0x0000000003FFFFFFULL,
- 0x0000000007FFFFFFULL,
- 0x000000000FFFFFFFULL,
- 0x000000001FFFFFFFULL,
- 0x000000003FFFFFFFULL,
- 0x000000007FFFFFFFULL,
- 0x00000000FFFFFFFFULL,
- 0x00000001FFFFFFFFULL,
- 0x00000003FFFFFFFFULL,
- 0x00000007FFFFFFFFULL,
- 0x0000000FFFFFFFFFULL,
- 0x0000001FFFFFFFFFULL,
- 0x0000003FFFFFFFFFULL,
- 0x0000007FFFFFFFFFULL,
- 0x000000FFFFFFFFFFULL,
- 0x000001FFFFFFFFFFULL,
- 0x000003FFFFFFFFFFULL,
- 0x000007FFFFFFFFFFULL,
- 0x00000FFFFFFFFFFFULL,
- 0x00001FFFFFFFFFFFULL,
- 0x00003FFFFFFFFFFFULL,
- 0x00007FFFFFFFFFFFULL,
- 0x0000FFFFFFFFFFFFULL,
- 0x0001FFFFFFFFFFFFULL,
- 0x0003FFFFFFFFFFFFULL,
- 0x0007FFFFFFFFFFFFULL,
- 0x000FFFFFFFFFFFFFULL,
- 0x001FFFFFFFFFFFFFULL,
- 0x003FFFFFFFFFFFFFULL,
- 0x007FFFFFFFFFFFFFULL,
- 0x00FFFFFFFFFFFFFFULL,
- 0x01FFFFFFFFFFFFFFULL,
- 0x03FFFFFFFFFFFFFFULL,
- 0x07FFFFFFFFFFFFFFULL,
- 0x0FFFFFFFFFFFFFFFULL,
- 0x1FFFFFFFFFFFFFFFULL,
- 0x3FFFFFFFFFFFFFFFULL,
- 0x7FFFFFFFFFFFFFFFULL,
- 0xFFFFFFFFFFFFFFFFULL,
- };
- const ui64 INVERSE_WORD_MASK[] = {
- ~0x0000000000000000ULL,
- ~0x0000000000000001ULL,
- ~0x0000000000000003ULL,
- ~0x0000000000000007ULL,
- ~0x000000000000000FULL,
- ~0x000000000000001FULL,
- ~0x000000000000003FULL,
- ~0x000000000000007FULL,
- ~0x00000000000000FFULL,
- ~0x00000000000001FFULL,
- ~0x00000000000003FFULL,
- ~0x00000000000007FFULL,
- ~0x0000000000000FFFULL,
- ~0x0000000000001FFFULL,
- ~0x0000000000003FFFULL,
- ~0x0000000000007FFFULL,
- ~0x000000000000FFFFULL,
- ~0x000000000001FFFFULL,
- ~0x000000000003FFFFULL,
- ~0x000000000007FFFFULL,
- ~0x00000000000FFFFFULL,
- ~0x00000000001FFFFFULL,
- ~0x00000000003FFFFFULL,
- ~0x00000000007FFFFFULL,
- ~0x0000000000FFFFFFULL,
- ~0x0000000001FFFFFFULL,
- ~0x0000000003FFFFFFULL,
- ~0x0000000007FFFFFFULL,
- ~0x000000000FFFFFFFULL,
- ~0x000000001FFFFFFFULL,
- ~0x000000003FFFFFFFULL,
- ~0x000000007FFFFFFFULL,
- ~0x00000000FFFFFFFFULL,
- ~0x00000001FFFFFFFFULL,
- ~0x00000003FFFFFFFFULL,
- ~0x00000007FFFFFFFFULL,
- ~0x0000000FFFFFFFFFULL,
- ~0x0000001FFFFFFFFFULL,
- ~0x0000003FFFFFFFFFULL,
- ~0x0000007FFFFFFFFFULL,
- ~0x000000FFFFFFFFFFULL,
- ~0x000001FFFFFFFFFFULL,
- ~0x000003FFFFFFFFFFULL,
- ~0x000007FFFFFFFFFFULL,
- ~0x00000FFFFFFFFFFFULL,
- ~0x00001FFFFFFFFFFFULL,
- ~0x00003FFFFFFFFFFFULL,
- ~0x00007FFFFFFFFFFFULL,
- ~0x0000FFFFFFFFFFFFULL,
- ~0x0001FFFFFFFFFFFFULL,
- ~0x0003FFFFFFFFFFFFULL,
- ~0x0007FFFFFFFFFFFFULL,
- ~0x000FFFFFFFFFFFFFULL,
- ~0x001FFFFFFFFFFFFFULL,
- ~0x003FFFFFFFFFFFFFULL,
- ~0x007FFFFFFFFFFFFFULL,
- ~0x00FFFFFFFFFFFFFFULL,
- ~0x01FFFFFFFFFFFFFFULL,
- ~0x03FFFFFFFFFFFFFFULL,
- ~0x07FFFFFFFFFFFFFFULL,
- ~0x0FFFFFFFFFFFFFFFULL,
- ~0x1FFFFFFFFFFFFFFFULL,
- ~0x3FFFFFFFFFFFFFFFULL,
- ~0x7FFFFFFFFFFFFFFFULL,
- ~0xFFFFFFFFFFFFFFFFULL,
- };
- } // namespace NPrivate
- } // namespace NBitOps
|