mask6.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. // Copyright 2021 The Inet.Af AUTHORS. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. package netaddr
  5. // mask6 are bitmasks with the topmost n bits of a
  6. // 128-bit number, where n is the array index.
  7. //
  8. // generated with https://play.golang.org/p/64XKxaUSa_9
  9. var mask6 = [...]uint128{
  10. 0: {0x0000000000000000, 0x0000000000000000},
  11. 1: {0x8000000000000000, 0x0000000000000000},
  12. 2: {0xc000000000000000, 0x0000000000000000},
  13. 3: {0xe000000000000000, 0x0000000000000000},
  14. 4: {0xf000000000000000, 0x0000000000000000},
  15. 5: {0xf800000000000000, 0x0000000000000000},
  16. 6: {0xfc00000000000000, 0x0000000000000000},
  17. 7: {0xfe00000000000000, 0x0000000000000000},
  18. 8: {0xff00000000000000, 0x0000000000000000},
  19. 9: {0xff80000000000000, 0x0000000000000000},
  20. 10: {0xffc0000000000000, 0x0000000000000000},
  21. 11: {0xffe0000000000000, 0x0000000000000000},
  22. 12: {0xfff0000000000000, 0x0000000000000000},
  23. 13: {0xfff8000000000000, 0x0000000000000000},
  24. 14: {0xfffc000000000000, 0x0000000000000000},
  25. 15: {0xfffe000000000000, 0x0000000000000000},
  26. 16: {0xffff000000000000, 0x0000000000000000},
  27. 17: {0xffff800000000000, 0x0000000000000000},
  28. 18: {0xffffc00000000000, 0x0000000000000000},
  29. 19: {0xffffe00000000000, 0x0000000000000000},
  30. 20: {0xfffff00000000000, 0x0000000000000000},
  31. 21: {0xfffff80000000000, 0x0000000000000000},
  32. 22: {0xfffffc0000000000, 0x0000000000000000},
  33. 23: {0xfffffe0000000000, 0x0000000000000000},
  34. 24: {0xffffff0000000000, 0x0000000000000000},
  35. 25: {0xffffff8000000000, 0x0000000000000000},
  36. 26: {0xffffffc000000000, 0x0000000000000000},
  37. 27: {0xffffffe000000000, 0x0000000000000000},
  38. 28: {0xfffffff000000000, 0x0000000000000000},
  39. 29: {0xfffffff800000000, 0x0000000000000000},
  40. 30: {0xfffffffc00000000, 0x0000000000000000},
  41. 31: {0xfffffffe00000000, 0x0000000000000000},
  42. 32: {0xffffffff00000000, 0x0000000000000000},
  43. 33: {0xffffffff80000000, 0x0000000000000000},
  44. 34: {0xffffffffc0000000, 0x0000000000000000},
  45. 35: {0xffffffffe0000000, 0x0000000000000000},
  46. 36: {0xfffffffff0000000, 0x0000000000000000},
  47. 37: {0xfffffffff8000000, 0x0000000000000000},
  48. 38: {0xfffffffffc000000, 0x0000000000000000},
  49. 39: {0xfffffffffe000000, 0x0000000000000000},
  50. 40: {0xffffffffff000000, 0x0000000000000000},
  51. 41: {0xffffffffff800000, 0x0000000000000000},
  52. 42: {0xffffffffffc00000, 0x0000000000000000},
  53. 43: {0xffffffffffe00000, 0x0000000000000000},
  54. 44: {0xfffffffffff00000, 0x0000000000000000},
  55. 45: {0xfffffffffff80000, 0x0000000000000000},
  56. 46: {0xfffffffffffc0000, 0x0000000000000000},
  57. 47: {0xfffffffffffe0000, 0x0000000000000000},
  58. 48: {0xffffffffffff0000, 0x0000000000000000},
  59. 49: {0xffffffffffff8000, 0x0000000000000000},
  60. 50: {0xffffffffffffc000, 0x0000000000000000},
  61. 51: {0xffffffffffffe000, 0x0000000000000000},
  62. 52: {0xfffffffffffff000, 0x0000000000000000},
  63. 53: {0xfffffffffffff800, 0x0000000000000000},
  64. 54: {0xfffffffffffffc00, 0x0000000000000000},
  65. 55: {0xfffffffffffffe00, 0x0000000000000000},
  66. 56: {0xffffffffffffff00, 0x0000000000000000},
  67. 57: {0xffffffffffffff80, 0x0000000000000000},
  68. 58: {0xffffffffffffffc0, 0x0000000000000000},
  69. 59: {0xffffffffffffffe0, 0x0000000000000000},
  70. 60: {0xfffffffffffffff0, 0x0000000000000000},
  71. 61: {0xfffffffffffffff8, 0x0000000000000000},
  72. 62: {0xfffffffffffffffc, 0x0000000000000000},
  73. 63: {0xfffffffffffffffe, 0x0000000000000000},
  74. 64: {0xffffffffffffffff, 0x0000000000000000},
  75. 65: {0xffffffffffffffff, 0x8000000000000000},
  76. 66: {0xffffffffffffffff, 0xc000000000000000},
  77. 67: {0xffffffffffffffff, 0xe000000000000000},
  78. 68: {0xffffffffffffffff, 0xf000000000000000},
  79. 69: {0xffffffffffffffff, 0xf800000000000000},
  80. 70: {0xffffffffffffffff, 0xfc00000000000000},
  81. 71: {0xffffffffffffffff, 0xfe00000000000000},
  82. 72: {0xffffffffffffffff, 0xff00000000000000},
  83. 73: {0xffffffffffffffff, 0xff80000000000000},
  84. 74: {0xffffffffffffffff, 0xffc0000000000000},
  85. 75: {0xffffffffffffffff, 0xffe0000000000000},
  86. 76: {0xffffffffffffffff, 0xfff0000000000000},
  87. 77: {0xffffffffffffffff, 0xfff8000000000000},
  88. 78: {0xffffffffffffffff, 0xfffc000000000000},
  89. 79: {0xffffffffffffffff, 0xfffe000000000000},
  90. 80: {0xffffffffffffffff, 0xffff000000000000},
  91. 81: {0xffffffffffffffff, 0xffff800000000000},
  92. 82: {0xffffffffffffffff, 0xffffc00000000000},
  93. 83: {0xffffffffffffffff, 0xffffe00000000000},
  94. 84: {0xffffffffffffffff, 0xfffff00000000000},
  95. 85: {0xffffffffffffffff, 0xfffff80000000000},
  96. 86: {0xffffffffffffffff, 0xfffffc0000000000},
  97. 87: {0xffffffffffffffff, 0xfffffe0000000000},
  98. 88: {0xffffffffffffffff, 0xffffff0000000000},
  99. 89: {0xffffffffffffffff, 0xffffff8000000000},
  100. 90: {0xffffffffffffffff, 0xffffffc000000000},
  101. 91: {0xffffffffffffffff, 0xffffffe000000000},
  102. 92: {0xffffffffffffffff, 0xfffffff000000000},
  103. 93: {0xffffffffffffffff, 0xfffffff800000000},
  104. 94: {0xffffffffffffffff, 0xfffffffc00000000},
  105. 95: {0xffffffffffffffff, 0xfffffffe00000000},
  106. 96: {0xffffffffffffffff, 0xffffffff00000000},
  107. 97: {0xffffffffffffffff, 0xffffffff80000000},
  108. 98: {0xffffffffffffffff, 0xffffffffc0000000},
  109. 99: {0xffffffffffffffff, 0xffffffffe0000000},
  110. 100: {0xffffffffffffffff, 0xfffffffff0000000},
  111. 101: {0xffffffffffffffff, 0xfffffffff8000000},
  112. 102: {0xffffffffffffffff, 0xfffffffffc000000},
  113. 103: {0xffffffffffffffff, 0xfffffffffe000000},
  114. 104: {0xffffffffffffffff, 0xffffffffff000000},
  115. 105: {0xffffffffffffffff, 0xffffffffff800000},
  116. 106: {0xffffffffffffffff, 0xffffffffffc00000},
  117. 107: {0xffffffffffffffff, 0xffffffffffe00000},
  118. 108: {0xffffffffffffffff, 0xfffffffffff00000},
  119. 109: {0xffffffffffffffff, 0xfffffffffff80000},
  120. 110: {0xffffffffffffffff, 0xfffffffffffc0000},
  121. 111: {0xffffffffffffffff, 0xfffffffffffe0000},
  122. 112: {0xffffffffffffffff, 0xffffffffffff0000},
  123. 113: {0xffffffffffffffff, 0xffffffffffff8000},
  124. 114: {0xffffffffffffffff, 0xffffffffffffc000},
  125. 115: {0xffffffffffffffff, 0xffffffffffffe000},
  126. 116: {0xffffffffffffffff, 0xfffffffffffff000},
  127. 117: {0xffffffffffffffff, 0xfffffffffffff800},
  128. 118: {0xffffffffffffffff, 0xfffffffffffffc00},
  129. 119: {0xffffffffffffffff, 0xfffffffffffffe00},
  130. 120: {0xffffffffffffffff, 0xffffffffffffff00},
  131. 121: {0xffffffffffffffff, 0xffffffffffffff80},
  132. 122: {0xffffffffffffffff, 0xffffffffffffffc0},
  133. 123: {0xffffffffffffffff, 0xffffffffffffffe0},
  134. 124: {0xffffffffffffffff, 0xfffffffffffffff0},
  135. 125: {0xffffffffffffffff, 0xfffffffffffffff8},
  136. 126: {0xffffffffffffffff, 0xfffffffffffffffc},
  137. 127: {0xffffffffffffffff, 0xfffffffffffffffe},
  138. 128: {0xffffffffffffffff, 0xffffffffffffffff},
  139. }