MCPcopy Create free account
hub / github.com/dds-bridge/dds / mask_bytes_table

Function mask_bytes_table

library/src/trans_table/trans_table_l.cpp:139–175  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

137}
138
139static auto mask_bytes_table()
140 -> const std::array<std::array<std::array<unsigned, TtBytes>, DDS_SUITS>, 8192>&
141{
142 static const auto table = []{
143 std::array<std::array<std::array<unsigned, TtBytes>, DDS_SUITS>, 8192> m{};
144 unsigned int top_bit_rank = 1;
145 unsigned winMask[8192];
146 winMask[0] = 0;
147 for (unsigned ind = 1; ind < 8192; ind++) {
148 if (ind >= (top_bit_rank + top_bit_rank)) /* Next top bit */
149 top_bit_rank <<= 1;
150 winMask[ind] = (winMask[ind ^ top_bit_rank] >> 2) | (3 << 24);
151
152 m[ind][0][0] = (winMask[ind] << 6) & 0xff000000;
153 m[ind][0][1] = (winMask[ind] << 14) & 0xff000000;
154 m[ind][0][2] = (winMask[ind] << 22) & 0xff000000;
155 m[ind][0][3] = (winMask[ind] << 30) & 0xff000000;
156
157 m[ind][1][0] = (winMask[ind] >> 2) & 0x00ff0000;
158 m[ind][1][1] = (winMask[ind] << 6) & 0x00ff0000;
159 m[ind][1][2] = (winMask[ind] << 14) & 0x00ff0000;
160 m[ind][1][3] = (winMask[ind] << 22) & 0x00ff0000;
161
162 m[ind][2][0] = (winMask[ind] >> 10) & 0x0000ff00;
163 m[ind][2][1] = (winMask[ind] >> 2) & 0x0000ff00;
164 m[ind][2][2] = (winMask[ind] << 6) & 0x0000ff00;
165 m[ind][2][3] = (winMask[ind] << 14) & 0x0000ff00;
166
167 m[ind][3][0] = (winMask[ind] >> 18) & 0x000000ff;
168 m[ind][3][1] = (winMask[ind] >> 10) & 0x000000ff;
169 m[ind][3][2] = (winMask[ind] >> 2) & 0x000000ff;
170 m[ind][3][3] = (winMask[ind] << 6) & 0x000000ff;
171 }
172 return m;
173 }();
174 return table;
175}
176
177static auto players() -> const std::array<std::string, 4>&
178{

Callers 2

TransTableLMethod · 0.85
addMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected