44#define LODWORD(l) ((unsigned int)(l))
45#define HIDWORD(l) ((unsigned int)((l)>>32))
63 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00,
64 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x41, 0x00, 0x00,
65 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00,
66 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x81, 0x00, 0x00
70 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00,
71 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x42, 0x41, 0x00, 0x00, 0x00, 0x00,
72 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00,
73 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x82, 0x81, 0x00, 0x00, 0x00, 0x00
77 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
78 0x40, 0x40, 0x40, 0x40, 0x44, 0x44, 0x42, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
79 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
80 0x80, 0x80, 0x80, 0x80, 0x84, 0x84, 0x82, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
84 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01,
85 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
86 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x88, 0x88, 0x88, 0x88, 0x84, 0x84, 0x82, 0x81,
87 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
98 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
99 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
100 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
101 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01
106 0x0000000000000000ULL, 0x0202020202020202ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
107 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
108 0x0808080808080808ULL, 0x0a0a0a0a0a0a0a0aULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
109 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
110 0x1818181818181818ULL, 0x1a1a1a1a1a1a1a1aULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
111 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
112 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
113 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
114 0x3838383838383838ULL, 0x3a3a3a3a3a3a3a3aULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
115 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
116 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
117 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
118 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
119 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
120 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
121 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
122 0x7878787878787878ULL, 0x7a7a7a7a7a7a7a7aULL
126 0x0000000000000000ULL, 0x0606060606060606ULL, 0x0404040404040404ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
127 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
128 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
129 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
130 0x1010101010101010ULL, 0x1616161616161616ULL, 0x1414141414141414ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
131 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
132 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
133 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
134 0x3030303030303030ULL, 0x3636363636363636ULL, 0x3434343434343434ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
135 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
136 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
137 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
138 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
139 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
140 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
141 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
142 0x7070707070707070ULL, 0x7676767676767676ULL, 0x7474747474747474ULL
146 0x0000000000000000ULL, 0x0e0e0e0e0e0e0e0eULL, 0x0c0c0c0c0c0c0c0cULL, 0x0000000000000000ULL, 0x0808080808080808ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
147 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
148 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
149 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
150 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
151 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
152 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
153 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
154 0x2020202020202020ULL, 0x2e2e2e2e2e2e2e2eULL, 0x2c2c2c2c2c2c2c2cULL, 0x0000000000000000ULL, 0x2828282828282828ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
155 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
156 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
157 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
158 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
159 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
160 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
161 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
162 0x6060606060606060ULL, 0x6e6e6e6e6e6e6e6eULL, 0x6c6c6c6c6c6c6c6cULL, 0x0000000000000000ULL, 0x6868686868686868ULL
166 0x0000000000000000ULL, 0x1e1e1e1e1e1e1e1eULL, 0x1c1c1c1c1c1c1c1cULL, 0x0000000000000000ULL, 0x1818181818181818ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
167 0x1010101010101010ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
168 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
169 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
170 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
171 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
172 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
173 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
174 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
175 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
176 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
177 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
178 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
179 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
180 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
181 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
182 0x4040404040404040ULL, 0x5e5e5e5e5e5e5e5eULL, 0x5c5c5c5c5c5c5c5cULL, 0x0000000000000000ULL, 0x5858585858585858ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
183 0x5050505050505050ULL
187 0x0000000000000000ULL, 0x000000000000ff00ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
188 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
189 0x00000000ff000000ULL, 0x00000000ff00ff00ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
190 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
191 0x000000ffff000000ULL, 0x000000ffff00ff00ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
192 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
193 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
194 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
195 0x0000ffffff000000ULL, 0x0000ffffff00ff00ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
196 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
197 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
198 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
199 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
200 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
201 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
202 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
203 0x00ffffffff000000ULL, 0x00ffffffff00ff00ULL
207 0x0000000000000000ULL, 0x0000000000ffff00ULL, 0x0000000000ff0000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
208 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
209 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
210 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
211 0x000000ff00000000ULL, 0x000000ff00ffff00ULL, 0x000000ff00ff0000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
212 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
213 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
214 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
215 0x0000ffff00000000ULL, 0x0000ffff00ffff00ULL, 0x0000ffff00ff0000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
216 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
217 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
218 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
219 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
220 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
221 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
222 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
223 0x00ffffff00000000ULL, 0x00ffffff00ffff00ULL, 0x00ffffff00ff0000ULL
227 0x0000000000000000ULL, 0x00000000ffffff00ULL, 0x00000000ffff0000ULL, 0x0000000000000000ULL, 0x00000000ff000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
228 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
229 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
230 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
231 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
232 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
233 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
234 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
235 0x0000ff0000000000ULL, 0x0000ff00ffffff00ULL, 0x0000ff00ffff0000ULL, 0x0000000000000000ULL, 0x0000ff00ff000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
236 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
237 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
238 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
239 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
240 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
241 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
242 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
243 0x00ffff0000000000ULL, 0x00ffff00ffffff00ULL, 0x00ffff00ffff0000ULL, 0x0000000000000000ULL, 0x00ffff00ff000000ULL
247 0x0000000000000000ULL, 0x000000ffffffff00ULL, 0x000000ffffff0000ULL, 0x0000000000000000ULL, 0x000000ffff000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
248 0x000000ff00000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
249 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
250 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
251 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
252 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
253 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
254 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
255 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
256 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
257 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
258 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
259 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
260 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
261 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
262 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
263 0x00ff000000000000ULL, 0x00ff00ffffffff00ULL, 0x00ff00ffffff0000ULL, 0x0000000000000000ULL, 0x00ff00ffff000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL,
264 0x00ff00ff00000000ULL
275static unsigned long long flip_A1(
const unsigned long long P,
const unsigned long long O)
277 unsigned int outflank_h;
278 unsigned long long flipped, outflank_v, outflank_d9;
280 outflank_v = ((O | ~0x0101010101010100ULL) + 0x0000000000000100ULL) &
P & 0x0101010101010000ULL;
281 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0001010101010100ULL;
283 outflank_h = ((O & 0x7e) + 0x02) &
P;
284 flipped |= (outflank_h - (
unsigned int) (outflank_h != 0)) & 0x7e;
286 outflank_d9 = ((O | ~0x8040201008040200ULL) + 0x0000000000000200ULL) &
P & 0x8040201008040000ULL;
287 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0040201008040200ULL;
299static unsigned long long flip_B1(
const unsigned long long P,
const unsigned long long O)
301 unsigned int outflank_h;
302 unsigned long long flipped, outflank_v, outflank_d9;
304 outflank_v = ((O | ~0x0202020202020200ULL) + 0x0000000000000200ULL) &
P & 0x0202020202020000ULL;
305 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0002020202020200ULL;
307 outflank_h = ((O & 0x7c) + 0x04) &
P;
308 flipped |= (outflank_h - (
unsigned int) (outflank_h != 0)) & 0x7c;
310 outflank_d9 = ((O | ~0x0080402010080400ULL) + 0x0000000000000400ULL) &
P & 0x0080402010080000ULL;
311 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0000402010080400ULL;
323static unsigned long long flip_C1(
const unsigned long long P,
const unsigned long long O)
325 unsigned int outflank_h;
326 unsigned long long flipped, outflank_v, outflank_d9;
328 outflank_v = ((O | ~0x0404040404040400ULL) + 0x0000000000000400ULL) &
P & 0x0404040404040400ULL;
329 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0404040404040400ULL;
332 flipped |= (
unsigned char)
FLIPPED_2_H[outflank_h];
334 flipped |= (((
unsigned int)
P >> 7) & 0x00000200u & (
unsigned int) O);
336 outflank_d9 = ((O | ~0x0000804020100800ULL) + 0x0000000000000800ULL) &
P & 0x0000804020100800ULL;
337 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0000804020100800ULL;
349static unsigned long long flip_D1(
const unsigned long long P,
const unsigned long long O)
351 unsigned int outflank_h, outflank_d7;
352 unsigned long long flipped, outflank_v, outflank_d9;
354 outflank_v = ((O | ~0x0808080808080800ULL) + 0x0000000000000800ULL) &
P & 0x0808080808080800ULL;
355 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0808080808080800ULL;
358 flipped |= (
unsigned char)
FLIPPED_3_H[outflank_h];
360 outflank_d7 = ((O | ~0x01020400u) + 0x00000400u) &
P & 0x01020000u;
361 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x00020400u;
363 outflank_d9 = ((O | ~0x0000008040201000ULL) + 0x0000000000001000ULL) &
P & 0x0000008040201000ULL;
364 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0000008040201000ULL;
376static unsigned long long flip_E1(
const unsigned long long P,
const unsigned long long O)
378 unsigned int outflank_h, outflank_d9;
379 unsigned long long flipped, outflank_v, outflank_d7;
381 outflank_v = ((O | ~0x1010101010101000ULL) + 0x0000000000001000ULL) &
P & 0x1010101010101000ULL;
382 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x1010101010101000ULL;
385 flipped |= (
unsigned char)
FLIPPED_4_H[outflank_h];
387 outflank_d7 = ((O | ~0x0000000102040800ULL) + 0x0000000000000800ULL) &
P & 0x0000000102040800ULL;
388 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0000000102040800ULL;
390 outflank_d9 = ((O | ~0x80402000u) + 0x00002000u) &
P & 0x80400000u;
391 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x00402000u;
403static unsigned long long flip_F1(
const unsigned long long P,
const unsigned long long O)
405 unsigned int outflank_h;
406 unsigned long long flipped, outflank_v, outflank_d7;
408 outflank_v = ((O | ~0x2020202020202000ULL) + 0x0000000000002000ULL) &
P & 0x2020202020202000ULL;
409 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x2020202020202000ULL;
412 flipped |= (
unsigned char)
FLIPPED_5_H[outflank_h];
414 outflank_d7 = ((O | ~0x0000010204081000ULL) + 0x0000000000001000ULL) &
P & 0x0000010204080000ULL;
415 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0000000204081000ULL;
417 flipped |= (((
unsigned int)
P >> 9) & 0x00004000u & (
unsigned int) O);
429static unsigned long long flip_G1(
const unsigned long long P,
const unsigned long long O)
431 unsigned int outflank_h;
432 unsigned long long flipped, outflank_v, outflank_d7;
434 outflank_v = ((O | ~0x4040404040404000ULL) + 0x0000000000004000ULL) &
P & 0x4040404040400000ULL;
435 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0040404040404000ULL;
438 flipped |= ((-outflank_h) & 0x3e) << 0;
440 outflank_d7 = ((O | ~0x0001020408102000ULL) + 0x0000000000002000ULL) &
P & 0x0001020408100000ULL;
441 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0000020408102000ULL;
453static unsigned long long flip_H1(
const unsigned long long P,
const unsigned long long O)
455 unsigned int outflank_h;
456 unsigned long long flipped, outflank_v, outflank_d7;
458 outflank_v = ((O | ~0x8080808080808000ULL) + 0x0000000000008000ULL) &
P & 0x8080808080800000ULL;
459 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0080808080808000ULL;
461 outflank_h =
OUTFLANK_7[(O >> 1) & 0x3f] & (
unsigned int)
P;
462 flipped |= ((-outflank_h) & 0x3f) << 1;
464 outflank_d7 = ((O | ~0x0102040810204000ULL) + 0x0000000000004000ULL) &
P & 0x0102040810200000ULL;
465 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0002040810204000ULL;
477static unsigned long long flip_A2(
const unsigned long long P,
const unsigned long long O)
479 unsigned int outflank_h;
480 unsigned long long flipped, outflank_v, outflank_d9;
482 outflank_v = ((O | ~0x0101010101010000ULL) + 0x0000000000010000ULL) &
P & 0x0101010101000000ULL;
483 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0001010101010000ULL;
485 outflank_h = ((O & 0x00007e00u) + 0x00000200u) &
P;
486 flipped |= (outflank_h - (outflank_h >> 8)) & 0x00007e00u;
488 outflank_d9 = ((O | ~0x4020100804020000ULL) + 0x0000000000020000ULL) &
P & 0x4020100804000000ULL;
489 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0020100804020000ULL;
501static unsigned long long flip_B2(
const unsigned long long P,
const unsigned long long O)
503 unsigned int outflank_h;
504 unsigned long long flipped, outflank_v, outflank_d9;
506 outflank_v = ((O | ~0x0202020202020000ULL) + 0x0000000000020000ULL) &
P & 0x0202020202000000ULL;
507 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0002020202020000ULL;
509 outflank_h = ((O & 0x00007c00u) + 0x00000400u) &
P;
510 flipped |= (outflank_h - (outflank_h >> 8)) & 0x00007c00u;
512 outflank_d9 = ((O | ~0x8040201008040000ULL) + 0x0000000000040000ULL) &
P & 0x8040201008000000ULL;
513 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0040201008040000ULL;
525static unsigned long long flip_C2(
const unsigned long long P,
const unsigned long long O)
527 unsigned int outflank_h;
528 unsigned long long flipped, outflank_v, outflank_d9;
530 outflank_v = ((O | ~0x0404040404040000ULL) + 0x0000000000040000ULL) &
P & 0x0404040404000000ULL;
531 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0004040404040000ULL;
533 outflank_h =
OUTFLANK_2[(O >> 9) & 0x3f] & (
P >> 8);
534 flipped |=
FLIPPED_2_H[outflank_h] & 0x000000000000ff00ULL;
536 flipped |= (((
unsigned int)
P >> 7) & 0x00020000u & (
unsigned int) O);
538 outflank_d9 = ((O | ~0x0080402010080000ULL) + 0x0000000000080000ULL) &
P & 0x0080402010080000ULL;
539 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0000402010080000ULL;
551static unsigned long long flip_D2(
const unsigned long long P,
const unsigned long long O)
553 unsigned int outflank_h;
554 unsigned long long flipped, outflank_v, outflank_d7, outflank_d9;
556 outflank_v = ((O | ~0x0808080808080000ULL) + 0x0000000000080000ULL) &
P & 0x0808080808000000ULL;
557 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0008080808080000ULL;
559 outflank_h =
OUTFLANK_3[(O >> 9) & 0x3f] & (
P >> 8);
560 flipped |=
FLIPPED_3_H[outflank_h] & 0x000000000000ff00ULL;
562 outflank_d7 = ((O | ~0x0000000102040000ULL) + 0x0000000000040000ULL) &
P & 0x0000000102000000ULL;
563 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0000000002040000ULL;
565 outflank_d9 = ((O | ~0x0000804020100000ULL) + 0x0000000000100000ULL) &
P & 0x0000804020000000ULL;
566 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0000004020100000ULL;
578static unsigned long long flip_E2(
const unsigned long long P,
const unsigned long long O)
580 unsigned int outflank_h;
581 unsigned long long flipped, outflank_v, outflank_d7, outflank_d9;
583 outflank_v = ((O | ~0x1010101010100000ULL) + 0x0000000000100000ULL) &
P & 0x1010101010000000ULL;
584 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0010101010100000ULL;
586 outflank_h =
OUTFLANK_4[(O >> 9) & 0x3f] & (
P >> 8);
587 flipped |=
FLIPPED_4_H[outflank_h] & 0x000000000000ff00ULL;
589 outflank_d7 = ((O | ~0x0000010204080000ULL) + 0x0000000000080000ULL) &
P & 0x0000010204000000ULL;
590 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0000000204080000ULL;
592 outflank_d9 = ((O | ~0x0000008040200000ULL) + 0x0000000000200000ULL) &
P & 0x0000008040000000ULL;
593 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0000000040200000ULL;
605static unsigned long long flip_F2(
const unsigned long long P,
const unsigned long long O)
607 unsigned int outflank_h;
608 unsigned long long flipped, outflank_v, outflank_d7;
610 outflank_v = ((O | ~0x2020202020200000ULL) + 0x0000000000200000ULL) &
P & 0x2020202020000000ULL;
611 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0020202020200000ULL;
613 outflank_h =
OUTFLANK_5[(O >> 9) & 0x3f] & ((
unsigned int)
P >> 8);
614 flipped |= (
unsigned int)
FLIPPED_5_H[outflank_h] & 0x0000ff00U;
616 outflank_d7 = ((O | ~0x0001020408100000ULL) + 0x0000000000100000ULL) &
P & 0x0001020408000000ULL;
617 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0000020408100000ULL;
619 flipped |= (((
unsigned int)
P >> 9) & 0x00400000u & (
unsigned int) O);
631static unsigned long long flip_G2(
const unsigned long long P,
const unsigned long long O)
633 unsigned int outflank_h;
634 unsigned long long flipped, outflank_v, outflank_d7;
636 outflank_v = ((O | ~0x4040404040400000ULL) + 0x0000000000400000ULL) &
P & 0x4040404040000000ULL;
637 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0040404040400000ULL;
639 outflank_h =
OUTFLANK_7[(O >> 8) & 0x3e] & ((
unsigned int)
P >> 7);
640 flipped |= ((-outflank_h) & 0x3e) << 8;
642 outflank_d7 = ((O | ~0x0102040810200000ULL) + 0x0000000000200000ULL) &
P & 0x0102040810000000ULL;
643 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0002040810200000ULL;
655static unsigned long long flip_H2(
const unsigned long long P,
const unsigned long long O)
657 unsigned int outflank_h;
658 unsigned long long flipped, outflank_v, outflank_d7;
660 outflank_v = ((O | ~0x8080808080800000ULL) + 0x0000000000800000ULL) &
P & 0x8080808080000000ULL;
661 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0080808080800000ULL;
663 outflank_h =
OUTFLANK_7[(O >> 9) & 0x3f] & ((
unsigned int)
P >> 8);
664 flipped |= ((-outflank_h) & 0x3f) << 9;
666 outflank_d7 = ((O | ~0x0204081020400000ULL) + 0x0000000000400000ULL) &
P & 0x0204081020000000ULL;
667 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0004081020400000ULL;
679static unsigned long long flip_A3(
const unsigned long long P,
const unsigned long long O)
681 unsigned int outflank_h;
682 unsigned long long flipped, outflank_v, outflank_d9;
684 outflank_v = ((O | ~0x0101010101000000ULL) + 0x0000000001000000ULL) &
P & 0x0101010101000000ULL;
685 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0101010101000000ULL;
687 flipped |= (((
unsigned int)
P << 8) & 0x00000100u & (
unsigned int) O);
689 outflank_h = ((O & 0x007e0000u) + 0x00020000u) &
P;
690 flipped |= (outflank_h - (outflank_h >> 8)) & 0x007e0000u;
692 flipped |= (((
unsigned int)
P << 7) & 0x00000200u & (
unsigned int) O);
694 outflank_d9 = ((O | ~0x2010080402000000ULL) + 0x0000000002000000ULL) &
P & 0x2010080400000000ULL;
695 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0010080402000000ULL;
707static unsigned long long flip_B3(
const unsigned long long P,
const unsigned long long O)
709 unsigned int outflank_h;
710 unsigned long long flipped, outflank_v, outflank_d9;
712 outflank_v = ((O | ~0x0202020202000000ULL) + 0x0000000002000000ULL) &
P & 0x0202020202000000ULL;
713 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0202020202000000ULL;
715 flipped |= (((
unsigned int)
P << 8) & 0x00000200u & (
unsigned int) O);
717 outflank_h = ((O & 0x007c0000u) + 0x00040000u) &
P;
718 flipped |= (outflank_h - (outflank_h >> 8)) & 0x007c0000u;
720 flipped |= (((
unsigned int)
P << 7) & 0x00000400u & (
unsigned int) O);
722 outflank_d9 = ((O | ~0x4020100804000000ULL) + 0x0000000004000000ULL) &
P & 0x4020100800000000ULL;
723 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0020100804000000ULL;
735static unsigned long long flip_C3(
const unsigned long long P,
const unsigned long long O)
737 unsigned int outflank_h;
738 unsigned long long flipped, outflank_v, outflank_d9;
740 outflank_v = ((O | ~0x0404040404000000ULL) + 0x0000000004000000ULL) &
P & 0x0404040404000000ULL;
741 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0404040404000000ULL;
743 flipped |= (((
unsigned int)
P << 8) & 0x00000400u & (
unsigned int) O);
745 outflank_h =
OUTFLANK_2[(O >> 17) & 0x3f] & ((
unsigned int)
P >> 16);
746 flipped |= (
unsigned int)
FLIPPED_2_H[outflank_h] & 0x00ff0000u;
748 flipped |= ((
HIDWORD(
P) << 25) | ((
unsigned int)
P << 7)) & 0x02000800u & (
unsigned int) O;
750 outflank_d9 = ((O | ~0x8040201008000000ULL) + 0x0000000008000000ULL) &
P & 0x8040201008000000ULL;
751 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x8040201008000000ULL;
753 flipped |= (((
unsigned int)
P << 9) & 0x00000200u & (
unsigned int) O);
765static unsigned long long flip_D3(
const unsigned long long P,
const unsigned long long O)
767 unsigned int outflank_h;
768 unsigned long long flipped, outflank_v, outflank_d7, outflank_d9;
770 outflank_v = ((O | ~0x0808080808000000ULL) + 0x0000000008000000ULL) &
P & 0x0808080808000000ULL;
771 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x0808080808000000ULL;
773 flipped |= (((
unsigned int)
P << 8) & 0x00000800u & (
unsigned int) O);
775 outflank_h =
OUTFLANK_3[(O >> 17) & 0x3f] & ((
unsigned int)
P >> 16);
776 flipped |= (
unsigned int)
FLIPPED_3_H[outflank_h] & 0x00ff0000u;
778 outflank_d7 = ((O | ~0x0000010204000000ULL) + 0x0000000004000000ULL) &
P & 0x0000010204000000ULL;
779 flipped |= (outflank_d7 - (outflank_d7 >> 24)) & 0x0000010204000000ULL;
781 flipped |= (((
unsigned int)
P << 7) & 0x00001000u & (
unsigned int) O);
783 outflank_d9 = ((O | ~0x0080402010000000ULL) + 0x0000000010000000ULL) &
P & 0x0080402010000000ULL;
784 flipped |= (outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x0080402010000000ULL;
786 flipped |= (((
unsigned int)
P << 9) & 0x00000400u & (
unsigned int) O);
798static unsigned long long flip_E3(
const unsigned long long P,
const unsigned long long O)
800 unsigned int outflank_h;
801 unsigned long long flipped, outflank_v, outflank_d7, outflank_d9;
803 outflank_v = ((O | ~0x1010101010000000ULL) + 0x0000000010000000ULL) &
P & 0x1010101010000000ULL;
804 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x1010101010000000ULL;
806 flipped |= (((
unsigned int)
P << 8) & 0x00001000u & (
unsigned int) O);
808 outflank_h =
OUTFLANK_4[(O >> 17) & 0x3f] & ((
unsigned int)
P >> 16);
809 flipped |= (
unsigned int)
FLIPPED_4_H[outflank_h] & 0x00ff0000u;
811 outflank_d7 = ((O | ~0x0001020408000000ULL) + 0x0000000008000000ULL) &
P & 0x0001020408000000ULL;
812 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0001020408000000ULL;
814 flipped |= (((
unsigned int)
P << 7) & 0x00002000u & (
unsigned int) O);
816 outflank_d9 = ((O | ~0x0000804020000000ULL) + 0x0000000020000000ULL) &
P & 0x0000804020000000ULL;
817 flipped |= (outflank_d9 - (outflank_d9 >> 24)) & 0x0000804020000000ULL;
819 flipped |= (((
unsigned int)
P << 9) & 0x00000800u & (
unsigned int) O);
831static unsigned long long flip_F3(
const unsigned long long P,
const unsigned long long O)
833 unsigned int outflank_h;
834 unsigned long long flipped, outflank_v, outflank_d7;
836 outflank_v = ((O | ~0x2020202020000000ULL) + 0x0000000020000000ULL) &
P & 0x2020202020000000ULL;
837 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x2020202020000000ULL;
839 flipped |= (((
unsigned int)
P << 8) & 0x00002000u & (
unsigned int) O);
841 outflank_h =
OUTFLANK_5[(O >> 17) & 0x3f] & ((
unsigned int)
P >> 16);
842 flipped |= (
unsigned int)
FLIPPED_5_H[outflank_h] & 0x00ff0000u;
844 outflank_d7 = ((O | ~0x0102040810000000ULL) + 0x0000000010000000ULL) &
P & 0x0102040810000000ULL;
845 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0102040810000000ULL;
847 flipped |= (((
unsigned int)
P << 7) & 0x00004000u & (
unsigned int) O);
849 flipped |= ((
HIDWORD(
P) << 23) | ((
unsigned int)
P << 9)) & 0x40001000u & (
unsigned int) O;
861static unsigned long long flip_G3(
const unsigned long long P,
const unsigned long long O)
863 unsigned int outflank_h;
864 unsigned long long flipped, outflank_v, outflank_d7;
866 outflank_v = ((O | ~0x4040404040000000ULL) + 0x0000000040000000ULL) &
P & 0x4040404040000000ULL;
867 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x4040404040000000ULL;
869 flipped |= (((
unsigned int)
P << 8) & 0x00004000u & (
unsigned int) O);
871 outflank_h =
OUTFLANK_7[(O >> 16) & 0x3e] & ((
unsigned int)
P >> 15);
872 flipped |= ((-outflank_h) & 0x3e) << 16;
874 outflank_d7 = ((O | ~0x0204081020000000ULL) + 0x0000000020000000ULL) &
P & 0x0204081000000000ULL;
875 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0004081020000000ULL;
877 flipped |= (((
unsigned int)
P << 9) & 0x00002000u & (
unsigned int) O);
889static unsigned long long flip_H3(
const unsigned long long P,
const unsigned long long O)
891 unsigned int outflank_h;
892 unsigned long long flipped, outflank_v, outflank_d7;
894 outflank_v = ((O | ~0x8080808080000000ULL) + 0x0000000080000000ULL) &
P & 0x8080808080000000ULL;
895 flipped = (outflank_v - (
unsigned int) (outflank_v != 0)) & 0x8080808080000000ULL;
897 flipped |= (((
unsigned int)
P << 8) & 0x00008000u & (
unsigned int) O);
899 outflank_h =
OUTFLANK_7[(O >> 17) & 0x3f] & ((
unsigned int)
P >> 16);
900 flipped |= ((-outflank_h) & 0x3f) << 17;
902 outflank_d7 = ((O | ~0x0408102040000000ULL) + 0x0000000040000000ULL) &
P & 0x0408102000000000ULL;
903 flipped |= (outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x0008102040000000ULL;
905 flipped |= (((
unsigned int)
P << 9) & 0x00004000u & (
unsigned int) O);
917static unsigned long long flip_A4(
const unsigned long long P,
const unsigned long long O)
919 unsigned int outflank_h, outflank_v, flip_d7, outflank_d9;
920 unsigned long long flipped;
923 & ((((
LODWORD(
P) & 0x01010101u) + ((
HIDWORD(
P) & 0x01010101u) << 4)) * 0x01020408u) >> 24);
924 flipped =
FLIPPED_3_V[outflank_v] & 0x0001010101010100ULL;
926 outflank_h = ((O & 0x7e000000u) + 0x02000000u) &
P;
927 flipped |= (outflank_h - (outflank_h >> 8)) & 0x7e000000u;
929 flip_d7 =
LODWORD(O) & 0x00020000u;
930 flip_d7 |= (flip_d7 >> 7) &
LODWORD(O);
931 flipped |= flip_d7 & -(flip_d7 & (
LODWORD(
P) << 7));
933 outflank_d9 = ((
HIDWORD(O) | ~0x10080402u) + 0x00000002u) &
HIDWORD(
P) & 0x10080400u;
934 flipped |= (
unsigned long long) ((outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x00080402u) << 32;
946static unsigned long long flip_B4(
const unsigned long long P,
const unsigned long long O)
948 unsigned int outflank_h, outflank_v, flip_d7, outflank_d9;
949 unsigned long long flipped;
952 & ((((
LODWORD(
P) & 0x02020202u) + ((
HIDWORD(
P) & 0x02020202u) << 4)) * 0x00810204u) >> 24);
953 flipped =
FLIPPED_3_V[outflank_v] & 0x0002020202020200ULL;
955 outflank_h = ((O & 0x7c000000u) + 0x04000000u) &
P;
956 flipped |= (outflank_h - (outflank_h >> 8)) & 0x7c000000u;
958 flip_d7 =
LODWORD(O) & 0x00040000u;
959 flip_d7 |= (flip_d7 >> 7) &
LODWORD(O);
960 flipped |= flip_d7 & -(flip_d7 & (
LODWORD(
P) << 7));
962 outflank_d9 = ((
HIDWORD(O) | ~0x20100804u) + 0x00000004u) &
HIDWORD(
P) & 0x20100800u;
963 flipped |= (
unsigned long long) ((outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x00100804u) << 32;
975static unsigned long long flip_C4(
const unsigned long long P,
const unsigned long long O)
977 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
978 unsigned long long flipped;
981 & ((((
LODWORD(
P) & 0x04040404u) + ((
HIDWORD(
P) & 0x04040404u) << 4)) * 0x00408102u) >> 24);
982 flipped =
FLIPPED_3_V[outflank_v] & 0x0004040404040400ULL;
984 outflank_h =
OUTFLANK_2[(O >> 25) & 0x3f] & ((
unsigned int)
P >> 24);
985 flipped |= (
unsigned int)
FLIPPED_2_H[outflank_h] & 0xff000000u;
988 & ((((
LODWORD(
P) & 0x04081020u) + (
HIDWORD(
P) & 0x00000102u)) * 0x01010101u) >> 24);
989 flipped |=
FLIPPED_2_H[outflank_d7] & 0x0000000204081000ULL;
992 & ((((
LODWORD(
P) & 0x04020100u) + (
HIDWORD(
P) & 0x40201008u)) * 0x01010101u) >> 24);
993 flipped |=
FLIPPED_2_H[outflank_d9] & 0x0020100804020000ULL;
1005static unsigned long long flip_D4(
const unsigned long long P,
const unsigned long long O)
1007 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
1008 unsigned long long flipped;
1011 & ((((
LODWORD(
P) & 0x08080808u) + ((
HIDWORD(
P) & 0x08080808u) << 4)) * 0x00204081u) >> 24);
1012 flipped =
FLIPPED_3_V[outflank_v] & 0x0008080808080800ULL;
1014 outflank_h =
OUTFLANK_3[(O >> 25) & 0x3f] & ((
unsigned int)
P >> 24);
1015 flipped |= (
unsigned int)
FLIPPED_3_H[outflank_h] & 0xff000000u;
1018 & ((((
LODWORD(
P) & 0x08102040u) + (
HIDWORD(
P) & 0x00010204u)) * 0x01010101u) >> 24);
1019 flipped |=
FLIPPED_3_H[outflank_d7] & 0x0000020408102000ULL;
1022 & ((((
LODWORD(
P) & 0x08040201u) + (
HIDWORD(
P) & 0x80402010u)) * 0x01010101u) >> 24);
1023 flipped |=
FLIPPED_3_H[outflank_d9] & 0x0040201008040200ULL;
1035static unsigned long long flip_E4(
const unsigned long long P,
const unsigned long long O)
1037 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
1038 unsigned long long flipped;
1041 & (((((
LODWORD(
P) & 0x10101010u) >> 4) + (
HIDWORD(
P) & 0x10101010u)) * 0x01020408u) >> 24);
1042 flipped =
FLIPPED_3_V[outflank_v] & 0x0010101010101000ULL;
1044 outflank_h =
OUTFLANK_4[(O >> 25) & 0x3f] & ((
unsigned int)
P >> 24);
1045 flipped |= (
unsigned int)
FLIPPED_4_H[outflank_h] & 0xff000000u;
1048 & ((((
LODWORD(
P) & 0x10204080u) + (
HIDWORD(
P) & 0x01020408u)) * 0x01010101u) >> 24);
1049 flipped |=
FLIPPED_4_H[outflank_d7] & 0x0002040810204000ULL;
1052 & ((((
LODWORD(
P) & 0x10080402u) + (
HIDWORD(
P) & 0x00804020u)) * 0x01010101u) >> 24);
1053 flipped |=
FLIPPED_4_H[outflank_d9] & 0x0000402010080400ULL;
1065static unsigned long long flip_F4(
const unsigned long long P,
const unsigned long long O)
1067 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
1068 unsigned long long flipped;
1071 & (((((
LODWORD(
P) & 0x20202020u) >> 4) + (
HIDWORD(
P) & 0x20202020u)) * 0x00810204u) >> 24);
1072 flipped =
FLIPPED_3_V[outflank_v] & 0x0020202020202000ULL;
1074 outflank_h =
OUTFLANK_5[(O >> 25) & 0x3f] & ((
unsigned int)
P >> 24);
1075 flipped |= (
unsigned int)
FLIPPED_5_H[outflank_h] & 0xff000000u;
1078 & ((((
LODWORD(
P) & 0x20408000u) + (
HIDWORD(
P) & 0x02040810u)) * 0x01010101u) >> 24);
1079 flipped |=
FLIPPED_5_H[outflank_d7] & 0x0004081020400000ULL;
1082 & ((((
LODWORD(
P) & 0x20100804u) + (
HIDWORD(
P) & 0x00008040u)) * 0x01010101u) >> 24);
1083 flipped |=
FLIPPED_5_H[outflank_d9] & 0x0000004020100800ULL;
1095static unsigned long long flip_G4(
const unsigned long long P,
const unsigned long long O)
1097 unsigned int outflank_h, outflank_v, outflank_d7, flip_d9;
1098 unsigned long long flipped;
1101 & (((((
LODWORD(
P) & 0x40404040u) >> 4) + (
HIDWORD(
P) & 0x40404040u)) * 0x00408102u) >> 24);
1102 flipped =
FLIPPED_3_V[outflank_v] & 0x0040404040404000ULL;
1104 outflank_h =
OUTFLANK_7[(O >> 24) & 0x3e] & ((
unsigned int)
P >> 23);
1105 flipped |= ((-outflank_h) & 0x3e) << 24;
1107 outflank_d7 = ((
HIDWORD(O) | ~0x04081020u) + 0x00000020u) &
HIDWORD(
P) & 0x04081000u;
1108 flipped |= (
unsigned long long) ((outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x00081020u) << 32;
1110 flip_d9 =
LODWORD(O) & 0x00200000u;
1111 flip_d9 |= (flip_d9 >> 9) &
LODWORD(O);
1112 flipped |= flip_d9 & -(flip_d9 & (
LODWORD(
P) << 9));
1124static unsigned long long flip_H4(
const unsigned long long P,
const unsigned long long O)
1126 unsigned int outflank_h, outflank_v, outflank_d7, flip_d9;
1127 unsigned long long flipped;
1130 & (((((
LODWORD(
P) & 0x80808080u) >> 4) + (
HIDWORD(
P) & 0x80808080u)) * 0x00204081u) >> 24);
1131 flipped =
FLIPPED_3_V[outflank_v] & 0x0080808080808000ULL;
1133 outflank_h =
OUTFLANK_7[(O >> 25) & 0x3f] & ((
unsigned int)
P >> 24);
1134 flipped |= ((-outflank_h) & 0x3f) << 25;
1136 outflank_d7 = ((
HIDWORD(O) | ~0x08102040u) + 0x00000040u) &
HIDWORD(
P) & 0x08102000u;
1137 flipped |= (
unsigned long long) ((outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x00102040u) << 32;
1139 flip_d9 =
LODWORD(O) & 0x00400000u;
1140 flip_d9 |= (flip_d9 >> 9) &
LODWORD(O);
1141 flipped |= flip_d9 & -(flip_d9 & (
LODWORD(
P) << 9));
1153static unsigned long long flip_A5(
const unsigned long long P,
const unsigned long long O)
1155 unsigned int outflank_h, outflank_v, flip_d7, outflank_d9;
1156 unsigned long long flipped;
1159 & ((((
LODWORD(
P) & 0x01010101u) + ((
HIDWORD(
P) & 0x01010101u) << 4)) * 0x01020408u) >> 24);
1160 flipped =
FLIPPED_4_V[outflank_v] & 0x0001010101010100ULL;
1163 flipped |= (
unsigned long long) ((((outflank_h << 8) - outflank_h) >> 8) & 0x0000007eu) << 32;
1166 flip_d7 &= ((flip_d7 & 0x02040000u) >> 14) | 0x02040000u;
1167 flipped |= flip_d7 & -(flip_d7 & (
LODWORD(
P) << 7));
1169 outflank_d9 = ((
HIDWORD(O) | ~0x08040200u) + 0x00000200u) &
HIDWORD(
P) & 0x08040000u;
1170 flipped |= (
unsigned long long) ((outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x00040200u) << 32;
1182static unsigned long long flip_B5(
const unsigned long long P,
const unsigned long long O)
1184 unsigned int outflank_h, outflank_v, flip_d7, outflank_d9;
1185 unsigned long long flipped;
1188 & ((((
LODWORD(
P) & 0x02020202u) + ((
HIDWORD(
P) & 0x02020202u) << 4)) * 0x00810204u) >> 24);
1189 flipped =
FLIPPED_4_V[outflank_v] & 0x0002020202020200ULL;
1191 outflank_h = ((
HIDWORD(O) & 0x0000007cu) + 0x00000004u) & (
P >> 32);
1192 flipped |= (
unsigned long long) ((((outflank_h << 8) - outflank_h) >> 8) & 0x0000007cu) << 32;
1195 flip_d7 &= ((flip_d7 & 0x04080000u) >> 14) | 0x04080000u;
1196 flipped |= flip_d7 & -(flip_d7 & (
LODWORD(
P) << 7));
1198 outflank_d9 = ((
HIDWORD(O) | ~0x10080400u) + 0x00000400u) &
HIDWORD(
P) & 0x10080000u;
1199 flipped |= (
unsigned long long) ((outflank_d9 - (
unsigned int) (outflank_d9 != 0)) & 0x00080400u) << 32;
1211static unsigned long long flip_C5(
const unsigned long long P,
const unsigned long long O)
1213 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
1214 unsigned long long flipped;
1217 & ((((
LODWORD(
P) & 0x04040404u) + ((
HIDWORD(
P) & 0x04040404u) << 4)) * 0x00408102u) >> 24);
1218 flipped =
FLIPPED_4_V[outflank_v] & 0x0004040404040400ULL;
1220 outflank_h =
OUTFLANK_2[(O >> 33) & 0x3f] & (
P >> 32);
1221 flipped |=
FLIPPED_2_H[outflank_h] & 0x000000ff00000000ULL;
1224 & ((((
LODWORD(
P) & 0x08102040u) + (
HIDWORD(
P) & 0x00010204u)) * 0x01010101u) >> 24);
1225 flipped |=
FLIPPED_2_H[outflank_d7] & 0x0000020408102000ULL;
1228 & ((((
LODWORD(
P) & 0x02010000u) + (
HIDWORD(
P) & 0x20100804u)) * 0x01010101u) >> 24);
1229 flipped |=
FLIPPED_2_H[outflank_d9] & 0x0010080402000000ULL;
1241static unsigned long long flip_D5(
const unsigned long long P,
const unsigned long long O)
1243 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
1244 unsigned long long flipped;
1247 & ((((
LODWORD(
P) & 0x08080808u) + ((
HIDWORD(
P) & 0x08080808u) << 4)) * 0x00204081u) >> 24);
1248 flipped =
FLIPPED_4_V[outflank_v] & 0x0008080808080800ULL;
1250 outflank_h =
OUTFLANK_3[(O >> 33) & 0x3f] & (
P >> 32);
1251 flipped |=
FLIPPED_3_H[outflank_h] & 0x000000ff00000000ULL;
1254 & ((((
LODWORD(
P) & 0x10204080u) + (
HIDWORD(
P) & 0x01020408u)) * 0x01010101u) >> 24);
1255 flipped |=
FLIPPED_3_H[outflank_d7] & 0x0002040810204000ULL;
1258 & ((((
LODWORD(
P) & 0x04020100u) + (
HIDWORD(
P) & 0x40201008u)) * 0x01010101u) >> 24);
1259 flipped |=
FLIPPED_3_H[outflank_d9] & 0x0020100804020000ULL;
1271static unsigned long long flip_E5(
const unsigned long long P,
const unsigned long long O)
1273 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
1274 unsigned long long flipped;
1277 & (((((
LODWORD(
P) & 0x10101010u) >> 4) + (
HIDWORD(
P) & 0x10101010u)) * 0x01020408u) >> 24);
1278 flipped =
FLIPPED_4_V[outflank_v] & 0x0010101010101000ULL;
1280 outflank_h =
OUTFLANK_4[(O >> 33) & 0x3f] & (
P >> 32);
1281 flipped |=
FLIPPED_4_H[outflank_h] & 0x000000ff00000000ULL;
1284 & ((((
LODWORD(
P) & 0x20408000u) + (
HIDWORD(
P) & 0x02040810u)) * 0x01010101u) >> 24);
1285 flipped |=
FLIPPED_4_H[outflank_d7] & 0x0004081020400000ULL;
1288 & ((((
LODWORD(
P) & 0x08040201u) + (
HIDWORD(
P) & 0x80402010u)) * 0x01010101u) >> 24);
1289 flipped |=
FLIPPED_4_H[outflank_d9] & 0x0040201008040200ULL;
1301static unsigned long long flip_F5(
const unsigned long long P,
const unsigned long long O)
1303 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
1304 unsigned long long flipped;
1307 & (((((
LODWORD(
P) & 0x20202020u) >> 4) + (
HIDWORD(
P) & 0x20202020u)) * 0x00810204u) >> 24);
1308 flipped =
FLIPPED_4_V[outflank_v] & 0x0020202020202000ULL;
1310 outflank_h =
OUTFLANK_5[(O >> 33) & 0x3f] & (
P >> 32);
1311 flipped |=
FLIPPED_5_H[outflank_h] & 0x000000ff00000000ULL;
1314 & ((((
LODWORD(
P) & 0x40800000u) + (
HIDWORD(
P) & 0x04081020u)) * 0x01010101u) >> 24);
1315 flipped |=
FLIPPED_5_H[outflank_d7] & 0x0008102040000000ULL;
1318 & ((((
LODWORD(
P) & 0x10080402u) + (
HIDWORD(
P) & 0x00804020u)) * 0x01010101u) >> 24);
1319 flipped |=
FLIPPED_5_H[outflank_d9] & 0x0000402010080400ULL;
1331static unsigned long long flip_G5(
const unsigned long long P,
const unsigned long long O)
1333 unsigned int outflank_h, outflank_v, outflank_d7, flip_d9;
1334 unsigned long long flipped;
1337 & (((((
LODWORD(
P) & 0x40404040u) >> 4) + (
HIDWORD(
P) & 0x40404040u)) * 0x00408102u) >> 24);
1338 flipped =
FLIPPED_4_V[outflank_v] & 0x0040404040404000ULL;
1340 outflank_h =
OUTFLANK_7[(O >> 32) & 0x3e] & (
P >> 31);
1341 flipped |= (
unsigned long long) ((-outflank_h) & 0x3e) << 32;
1343 outflank_d7 = ((
HIDWORD(O) | ~0x08102000u) + 0x00002000u) &
HIDWORD(
P) & 0x08100000u;
1344 flipped |= (
unsigned long long) ((outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x00102000u) << 32;
1347 flip_d9 &= ((flip_d9 & 0x20100000u) >> 18) | 0x20100000u;
1348 flipped |= flip_d9 & -(flip_d9 & (
LODWORD(
P) << 9));
1360static unsigned long long flip_H5(
const unsigned long long P,
const unsigned long long O)
1362 unsigned int outflank_h, outflank_v, outflank_d7, flip_d9;
1363 unsigned long long flipped;
1366 & (((((
LODWORD(
P) & 0x80808080u) >> 4) + (
HIDWORD(
P) & 0x80808080u)) * 0x00204081u) >> 24);
1367 flipped =
FLIPPED_4_V[outflank_v] & 0x0080808080808000ULL;
1369 outflank_h =
OUTFLANK_7[(O >> 33) & 0x3f] & (
P >> 32);
1370 flipped |= (
unsigned long long) ((-outflank_h) & 0x3f) << 33;
1372 outflank_d7 = ((
HIDWORD(O) | ~0x10204000u) + 0x00004000u) &
HIDWORD(
P) & 0x10200000u;
1373 flipped |= (
unsigned long long) ((outflank_d7 - (
unsigned int) (outflank_d7 != 0)) & 0x00204000u) << 32;
1376 flip_d9 &= ((flip_d9 & 0x40200000u) >> 18) | 0x40200000u;
1377 flipped |= flip_d9 & -(flip_d9 & (
LODWORD(
P) << 9));
1389static unsigned long long flip_A6(
const unsigned long long P,
const unsigned long long O)
1391 unsigned int outflank_h, outflank_v, flip_d7;
1392 unsigned long long flipped;
1395 & ((((
LODWORD(
P) & 0x01010101u) + ((
HIDWORD(
P) & 0x01010101u) << 4)) * 0x01020408u) >> 24);
1396 flipped =
FLIPPED_5_V[outflank_v] & 0x0001010101010100ULL;
1399 flipped |= (
unsigned long long) ((outflank_h - (outflank_h >> 8)) & 0x00007e00u) << 32;
1401 flip_d7 = (
unsigned int) (O >> 8);
1402 flip_d7 &= (flip_d7 >> 7) | 0x02000000u;
1403 flip_d7 &= ((flip_d7 & 0x02040000u) >> 14) | 0x02040000u;
1404 flipped |= (
unsigned long long) (flip_d7 & -(flip_d7 & (
LODWORD(
P) >> 1))) << 8;
1406 flipped |= (
unsigned long long) ((
HIDWORD(
P) >> 9) & 0x00020000u &
HIDWORD(O)) << 32;
1418static unsigned long long flip_B6(
const unsigned long long P,
const unsigned long long O)
1420 unsigned int outflank_h, outflank_v, flip_d7;
1421 unsigned long long flipped;
1424 & ((((
LODWORD(
P) & 0x02020202u) + ((
HIDWORD(
P) & 0x02020202u) << 4)) * 0x00810204u) >> 24);
1425 flipped =
FLIPPED_5_V[outflank_v] & 0x0002020202020200ULL;
1428 flipped |= (
unsigned long long) ((outflank_h - (outflank_h >> 8)) & 0x00007c00u) << 32;
1430 flip_d7 = (
unsigned int) (O >> 8);
1431 flip_d7 &= (flip_d7 >> 7) | 0x04000000u;
1432 flip_d7 &= ((flip_d7 & 0x04080000u) >> 14) | 0x04080000u;
1433 flipped |= (
unsigned long long) (flip_d7 & -(flip_d7 & (
LODWORD(
P) >> 1))) << 8;
1435 flipped |= (
unsigned long long) ((
HIDWORD(
P) >> 9) & 0x00040000u &
HIDWORD(O)) << 32;
1447static unsigned long long flip_C6(
const unsigned long long P,
const unsigned long long O)
1449 unsigned int outflank_h, outflank_v, outflank_d7;
1450 unsigned long long flipped;
1453 & ((((
LODWORD(
P) & 0x04040404u) + ((
HIDWORD(
P) & 0x04040404u) << 4)) * 0x00408102u) >> 24);
1454 flipped =
FLIPPED_5_V[outflank_v] & 0x0004040404040400ULL;
1456 outflank_h =
OUTFLANK_2[(O >> 41) & 0x3f] & (
P >> 40);
1457 flipped |=
FLIPPED_2_H[outflank_h] & 0x0000ff0000000000ULL;
1460 & ((((
LODWORD(
P) & 0x10204080u) + (
HIDWORD(
P) & 0x01020408u)) * 0x01010101u) >> 24);
1461 flipped |=
FLIPPED_2_H[outflank_d7] & 0x0002040810204000ULL;
1475static unsigned long long flip_D6(
const unsigned long long P,
const unsigned long long O)
1477 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
1478 unsigned long long flipped;
1481 & ((((
LODWORD(
P) & 0x08080808u) + ((
HIDWORD(
P) & 0x08080808u) << 4)) * 0x00204081u) >> 24);
1482 flipped =
FLIPPED_5_V[outflank_v] & 0x0008080808080800ULL;
1484 outflank_h =
OUTFLANK_3[(O >> 41) & 0x3f] & (
P >> 40);
1485 flipped |=
FLIPPED_3_H[outflank_h] & 0x0000ff0000000000ULL;
1488 & ((((
LODWORD(
P) & 0x20408000u) + (
HIDWORD(
P) & 0x02040810u)) * 0x01010101u) >> 24);
1489 flipped |=
FLIPPED_3_H[outflank_d7] & 0x0004081020400000ULL;
1492 & ((((
LODWORD(
P) & 0x02010000u) + (
HIDWORD(
P) & 0x20100804u)) * 0x01010101u) >> 24);
1493 flipped |=
FLIPPED_3_H[outflank_d9] & 0x0010080402000000ULL;
1505static unsigned long long flip_E6(
const unsigned long long P,
const unsigned long long O)
1507 unsigned int outflank_h, outflank_v, outflank_d7, outflank_d9;
1508 unsigned long long flipped;
1511 & (((((
LODWORD(
P) & 0x10101010u) >> 4) + (
HIDWORD(
P) & 0x10101010u)) * 0x01020408u) >> 24);
1512 flipped =
FLIPPED_5_V[outflank_v] & 0x0010101010101000ULL;
1514 outflank_h =
OUTFLANK_4[(O >> 41) & 0x3f] & (
P >> 40);
1515 flipped |=
FLIPPED_4_H[outflank_h] & 0x0000ff0000000000ULL;
1518 & ((((
LODWORD(
P) & 0x40800000u) + (
HIDWORD(
P) & 0x04081020u)) * 0x01010101u) >> 24);
1519 flipped |=
FLIPPED_4_H[outflank_d7] & 0x0008102040000000ULL;
1522 & ((((
LODWORD(
P) & 0x04020100u) + (
HIDWORD(
P) & 0x40201008u)) * 0x01010101u) >> 24);
1523 flipped |=
FLIPPED_4_H[outflank_d9] & 0x0020100804020100ULL;
1535static unsigned long long flip_F6(
const unsigned long long P,
const unsigned long long O)
1537 unsigned int outflank_h, outflank_v, outflank_d9;
1538 unsigned long long flipped;
1541 & (((((
LODWORD(
P) & 0x20202020u) >> 4) + (
HIDWORD(
P) & 0x20202020u)) * 0x00810204u) >> 24);
1542 flipped =
FLIPPED_5_V[outflank_v] & 0x0020202020202000ULL;
1544 outflank_h =
OUTFLANK_5[(O >> 41) & 0x3f] & (
P >> 40);
1545 flipped |=
FLIPPED_5_H[outflank_h] & 0x0000ff0000000000ULL;
1550 & ((((
LODWORD(
P) & 0x08040201u) + (
HIDWORD(
P) & 0x80402010u)) * 0x01010101u) >> 24);
1551 flipped |=
FLIPPED_5_H[outflank_d9] & 0x0040201008040200ULL;
1563static unsigned long long flip_G6(
const unsigned long long P,
const unsigned long long O)
1565 unsigned int outflank_h, outflank_v, flip_d9;
1566 unsigned long long flipped;
1569 & (((((
LODWORD(
P) & 0x40404040u) >> 4) + (
HIDWORD(
P) & 0x40404040u)) * 0x00408102u) >> 24);
1570 flipped =
FLIPPED_5_V[outflank_v] & 0x0040404040404000ULL;
1572 outflank_h =
OUTFLANK_7[(O >> 40) & 0x3e] & (
P >> 39);
1573 flipped |= (
unsigned long long) ((-outflank_h) & 0x3e) << 40;
1575 flipped |= (
unsigned long long) ((
HIDWORD(
P) >> 7) & 0x00200000u &
HIDWORD(O)) << 32;
1577 flip_d9 = (
unsigned int) (O >> 8);
1578 flip_d9 &= (flip_d9 >> 9) | 0x20000000u;
1579 flip_d9 &= ((flip_d9 & 0x20100000u) >> 18) | 0x20100000u;
1580 flipped |= (
unsigned long long) (flip_d9 & -(flip_d9 & (
LODWORD(
P) << 1))) << 8;
1592static unsigned long long flip_H6(
const unsigned long long P,
const unsigned long long O)
1594 unsigned int outflank_h, outflank_v, flip_d9;
1595 unsigned long long flipped;
1598 & (((((
LODWORD(
P) & 0x80808080u) >> 4) + (
HIDWORD(
P) & 0x80808080u)) * 0x00204081u) >> 24);
1599 flipped =
FLIPPED_5_V[outflank_v] & 0x0080808080808000ULL;
1601 outflank_h =
OUTFLANK_7[(O >> 41) & 0x3f] & (
P >> 40);
1602 flipped |= (
unsigned long long) ((-outflank_h) & 0x3f) << 41;
1604 flipped |= (
unsigned long long) ((
HIDWORD(
P) >> 7) & 0x00400000u &
HIDWORD(O)) << 32;
1606 flip_d9 = (
unsigned int) (O >> 8);
1607 flip_d9 &= (flip_d9 >> 9) | 0x40000000u;
1608 flip_d9 &= ((flip_d9 & 0x40200000u) >> 18) | 0x40200000u;
1609 flipped |= (
unsigned long long) (flip_d9 & -(flip_d9 & (
LODWORD(
P) << 1))) << 8;
1621static unsigned long long flip_A7(
const unsigned long long P,
const unsigned long long O)
1623 unsigned int outflank_v, outflank_h, outflank_d7;
1624 unsigned long long flipped;
1626 outflank_v = ((((((
LODWORD(O) & 0x01010100u) << 4) + (
HIDWORD(O) & 0x00000101u)) * 0x08040201u) >> 24) + 4)
1627 & (((((
LODWORD(
P) & 0x01010101u) << 4) + (
HIDWORD(
P) & 0x00000001u)) * 0x08040201u) >> 24);
1628 flipped = (outflank_v * 0x0000003e1e0e0602ULL) & 0x0000010101010100ULL;
1631 flipped |= (
unsigned long long) ((outflank_h - (outflank_h >> 8)) & 0x007e0000u) << 32;
1633 outflank_d7 = (((((
LODWORD(O) & 0x08102000u) + (
HIDWORD(O) & 0x00000204u)) * 0x01010101u) >> 24) + 2)
1634 & ((((
LODWORD(
P) & 0x08102040u) + (
HIDWORD(
P) & 0x00000004u)) * 0x01010101u) >> 24);
1635 flipped |= (outflank_d7 * 0x000000f8f0e0c080ULL) & 0x0000020408102000ULL;
1647static unsigned long long flip_B7(
const unsigned long long P,
const unsigned long long O)
1649 unsigned int outflank_v, outflank_h, outflank_d7;
1650 unsigned long long flipped;
1652 outflank_v = ((((((
LODWORD(O) & 0x02020200u) << 3) + ((
HIDWORD(O) & 0x00000202u) >> 1)) * 0x08040201u) >> 24) + 4)
1653 & (((((
LODWORD(
P) & 0x02020202u) << 3) + ((
HIDWORD(
P) & 0x00000002u) >> 1)) * 0x08040201u) >> 24);
1654 flipped = (outflank_v * 0x0000007c3c1c0c04ULL) & 0x0000020202020200ULL;
1657 flipped |= (
unsigned long long) ((outflank_h - (outflank_h >> 8)) & 0x007c0000u) << 32;
1659 outflank_d7 = (((((
LODWORD(O) & 0x10204000u) + (
HIDWORD(O) & 0x00000408u)) * 0x01010101u) >> 25) + 2)
1660 & ((((
LODWORD(
P) & 0x10204080u) + (
HIDWORD(
P) & 0x00000008u)) * 0x01010101u) >> 25);
1661 flipped |= (outflank_d7 * 0x000001f1e1c18100ULL) & 0x0000040810204000ULL;
1673static unsigned long long flip_C7(
const unsigned long long P,
const unsigned long long O)
1675 unsigned int outflank_h, outflank_v, outflank_d;
1676 unsigned long long flipped;
1678 outflank_v = ((((((
LODWORD(O) & 0x04040400u) << 2) + ((
HIDWORD(O) & 0x00000404u) >> 2)) * 0x08040201u) >> 24) + 4)
1679 & (((((
LODWORD(
P) & 0x04040404u) << 2) + ((
HIDWORD(
P) & 0x00000004u) >> 2)) * 0x08040201u) >> 24);
1680 flipped = (outflank_v * 0x000000f878381808ULL) & 0x0000040404040400ULL;
1682 outflank_h =
OUTFLANK_2[(O >> 49) & 0x3f] & (
P >> 48);
1683 flipped |=
FLIPPED_2_H[outflank_h] & 0x00ff000000000000ULL;
1686 & ((((
HIDWORD(
P) & 0x00000a11u) + (
LODWORD(
P) & 0x20408000u)) * 0x01010101u) >> 24);
1687 flipped |=
FLIPPED_2_H[outflank_d] & 0x00000a1020400000ULL;
1699static unsigned long long flip_D7(
const unsigned long long P,
const unsigned long long O)
1701 unsigned int outflank_h, outflank_v, outflank_d;
1702 unsigned long long flipped;
1704 outflank_v = ((((((
LODWORD(O) & 0x08080800u) << 1) + ((
HIDWORD(O) & 0x00000808u) >> 3)) * 0x08040201u) >> 24) + 4)
1705 & (((((
LODWORD(
P) & 0x08080808u) << 1) + ((
HIDWORD(
P) & 0x00000008u) >> 3)) * 0x08040201u) >> 24);
1706 flipped = (outflank_v * 0x000001f0f0703010ULL) & 0x0000080808080800ULL;
1708 outflank_h =
OUTFLANK_3[(O >> 49) & 0x3f] & (
P >> 48);
1709 flipped |=
FLIPPED_3_H[outflank_h] & 0x00ff000000000000ULL;
1712 & ((((
HIDWORD(
P) & 0x00001422u) + (
LODWORD(
P) & 0x41800000u)) * 0x01010101u) >> 24);
1713 flipped |=
FLIPPED_3_H[outflank_d] & 0x0000142240000000ULL;
1725static unsigned long long flip_E7(
const unsigned long long P,
const unsigned long long O)
1727 unsigned int outflank_h, outflank_v, outflank_d;
1728 unsigned long long flipped;
1730 outflank_v = (((((
LODWORD(O) & 0x10101000u) + ((
HIDWORD(O) & 0x00001010u) >> 4)) * 0x08040201u) >> 24) + 4)
1731 & ((((
LODWORD(
P) & 0x10101010u) + ((
HIDWORD(
P) & 0x00000010u) >> 4)) * 0x08040201u) >> 24);
1732 flipped = (outflank_v * 0x000003e1e0e06020ULL) & 0x0000101010101000ULL;
1734 outflank_h =
OUTFLANK_4[(O >> 49) & 0x3f] & (
P >> 48);
1735 flipped |=
FLIPPED_4_H[outflank_h] & 0x00ff000000000000ULL;
1738 & ((((
HIDWORD(
P) & 0x00002844u) + (
LODWORD(
P) & 0x82010000u)) * 0x01010101u) >> 24);
1739 flipped |=
FLIPPED_4_H[outflank_d] & 0x0000284402000000ULL;
1751static unsigned long long flip_F7(
const unsigned long long P,
const unsigned long long O)
1753 unsigned int outflank_h, outflank_v, outflank_d;
1754 unsigned long long flipped;
1756 outflank_v = ((((((
LODWORD(O) & 0x20202000u) >> 1) + ((
HIDWORD(O) & 0x00002020u) >> 5)) * 0x08040201u) >> 24) + 4)
1757 & (((((
LODWORD(
P) & 0x20202020u) >> 1) + ((
HIDWORD(
P) & 0x00000020u) >> 5)) * 0x08040201u) >> 24);
1758 flipped = (outflank_v * 0x000007c3c1c0c040ULL) & 0x0000202020202000ULL;
1760 outflank_h =
OUTFLANK_5[(O >> 49) & 0x3f] & (
P >> 48);
1761 flipped |=
FLIPPED_5_H[outflank_h] & 0x00ff000000000000ULL;
1764 & ((((
HIDWORD(
P) & 0x00005088u) + (
LODWORD(
P) & 0x04020100u)) * 0x01010101u) >> 24);
1765 flipped |=
FLIPPED_5_H[outflank_d] & 0x0000500804020000ULL;
1777static unsigned long long flip_G7(
const unsigned long long P,
const unsigned long long O)
1779 unsigned int outflank_v, outflank_h, outflank_d9;
1780 unsigned long long flipped;
1782 outflank_v = ((((((
LODWORD(O) & 0x40404000u) >> 2) + ((
HIDWORD(O) & 0x00004040u) >> 6)) * 0x08040201u) >> 24) + 4)
1783 & (((((
LODWORD(
P) & 0x40404040u) >> 2) + ((
HIDWORD(
P) & 0x00000040u) >> 6)) * 0x08040201u) >> 24);
1784 flipped = (outflank_v * 0x00000f8783818080ULL) & 0x0000404040404000ULL;
1786 outflank_h =
OUTFLANK_7[(O >> 48) & 0x3e] & (
P >> 47);
1787 flipped |= (
unsigned long long) ((-outflank_h) & 0x3e) << 48;
1790 & ((((
LODWORD(
P) & 0x08040201u) + (
HIDWORD(
P) & 0x00000010u)) * 0x01010101u) >> 23);
1791 flipped |= (outflank_d9 * 0x00001f0f07030100ULL) & 0x0000201008040200ULL;
1803static unsigned long long flip_H7(
const unsigned long long P,
const unsigned long long O)
1805 unsigned int outflank_h, outflank_v, outflank_d9;
1806 unsigned long long flipped;
1808 outflank_v = ((((((
LODWORD(O) & 0x80808000u) >> 3) + ((
HIDWORD(O) & 0x00008080u) >> 7)) * 0x08040201u) >> 24) + 4)
1809 & (((((
LODWORD(
P) & 0x80808080u) >> 3) + ((
HIDWORD(
P) & 0x00000080u) >> 7)) * 0x08040201u) >> 24);
1810 flipped = (outflank_v * 0x00001f0f07030100ULL) & 0x0000808080808000ULL;
1812 outflank_h =
OUTFLANK_7[(O >> 49) & 0x3f] & (
P >> 48);
1813 flipped |= (
unsigned long long) ((-outflank_h) & 0x3f) << 49;
1816 & ((((
LODWORD(
P) & 0x10080402u) + (
HIDWORD(
P) & 0x00000020u)) * 0x01010101u) >> 24);
1817 flipped |= (outflank_d9 * 0x00003e1e0e060200ULL) & 0x0000402010080400ULL;
1829static unsigned long long flip_A8(
const unsigned long long P,
const unsigned long long O)
1831 unsigned int outflank_v, outflank_h, outflank_d7;
1832 unsigned long long flipped;
1834 outflank_v = ((((((
LODWORD(O) & 0x01010100u) << 4) + (
HIDWORD(O) & 0x00010101u)) * 0x08040201u) >> 24) + 2)
1835 & (((((
LODWORD(
P) & 0x01010101u) << 4) + (
HIDWORD(
P) & 0x00000101u)) * 0x08040201u) >> 24);
1836 flipped = (outflank_v * 0x00007e3e1e0e0602ULL) & 0x0001010101010100ULL;
1839 flipped |= (
unsigned long long) ((outflank_h - (outflank_h >> 8)) & 0x7e000000u) << 32;
1841 outflank_d7 = (((((
LODWORD(O) & 0x10204000u) + (
HIDWORD(O) & 0x00020408u)) * 0x01010101u) >> 24) + 2)
1842 & ((((
LODWORD(
P) & 0x10204080u) + (
HIDWORD(
P) & 0x00000408u)) * 0x01010101u) >> 24);
1843 flipped |= (outflank_d7 * 0x0000fcf8f0e0c080ULL) & 0x0002040810204000ULL;
1855static unsigned long long flip_B8(
const unsigned long long P,
const unsigned long long O)
1857 unsigned int outflank_v, outflank_h, outflank_d7;
1858 unsigned long long flipped;
1860 outflank_v = ((((((
LODWORD(O) & 0x02020200u) << 3) + ((
HIDWORD(O) & 0x00020202u) >> 1)) * 0x08040201u) >> 24) + 2)
1861 & (((((
LODWORD(
P) & 0x02020202u) << 3) + ((
HIDWORD(
P) & 0x00000202u) >> 1)) * 0x08040201u) >> 24);
1862 flipped = (outflank_v * 0x0000fc7c3c1c0c04ULL) & 0x0002020202020200ULL;
1865 flipped |= (
unsigned long long) ((outflank_h - (outflank_h >> 8)) & 0x7c000000u) << 32;
1867 outflank_d7 = (((((
LODWORD(O) & 0x20400000u) + (
HIDWORD(O) & 0x00040810u)) * 0x01010101u) >> 25) + 2)
1868 & ((((
LODWORD(
P) & 0x20408000u) + (
HIDWORD(
P) & 0x00000810u)) * 0x01010101u) >> 25);
1869 flipped |= (outflank_d7 * 0x0001f9f1e1c18000ULL) & 0x0004081020400000ULL;
1881static unsigned long long flip_C8(
const unsigned long long P,
const unsigned long long O)
1883 unsigned int outflank_h, outflank_v, outflank_d;
1884 unsigned long long flipped;
1886 outflank_v = ((((((
LODWORD(O) & 0x04040400u) << 2) + ((
HIDWORD(O) & 0x00040404u) >> 2)) * 0x08040201u) >> 24) + 2)
1887 & (((((
LODWORD(
P) & 0x04040404u) << 2) + ((
HIDWORD(
P) & 0x00000404u) >> 2)) * 0x08040201u) >> 24);
1888 flipped = (outflank_v * 0x0001f8f878381808ULL) & 0x0004040404040400ULL;
1890 outflank_h =
OUTFLANK_2[(O >> 57) & 0x3f] & (
P >> 56);
1891 flipped |=
FLIPPED_2_H[outflank_h] & 0xff00000000000000ULL;
1894 & ((((
HIDWORD(
P) & 0x000a1120u) + (
LODWORD(
P) & 0x40800000u)) * 0x01010101u) >> 24);
1895 flipped |=
FLIPPED_2_H[outflank_d] & 0x000a102040000000ULL;
1907static unsigned long long flip_D8(
const unsigned long long P,
const unsigned long long O)
1909 unsigned int outflank_h, outflank_v, outflank_d;
1910 unsigned long long flipped;
1912 outflank_v = ((((((
LODWORD(O) & 0x08080800u) << 1) + ((
HIDWORD(O) & 0x00080808u) >> 3)) * 0x08040201u) >> 24) + 2)
1913 & (((((
LODWORD(
P) & 0x08080808u) << 1) + ((
HIDWORD(
P) & 0x00000808u) >> 3)) * 0x08040201u) >> 24);
1914 flipped = (outflank_v * 0x0003f1f0f0703010ULL) & 0x0008080808080800ULL;
1916 outflank_h =
OUTFLANK_3[(O >> 57) & 0x3f] & (
P >> 56);
1917 flipped |=
FLIPPED_3_H[outflank_h] & 0xff00000000000000ULL;
1920 & ((((
HIDWORD(
P) & 0x00142241u) + (
LODWORD(
P) & 0x80000000u)) * 0x01010101u) >> 24);
1921 flipped |=
FLIPPED_3_H[outflank_d] & 0x0014224000000000ULL;
1933static unsigned long long flip_E8(
const unsigned long long P,
const unsigned long long O)
1935 unsigned int outflank_h, outflank_v, outflank_d;
1936 unsigned long long flipped;
1938 outflank_v = (((((
LODWORD(O) & 0x10101000u) + ((
HIDWORD(O) & 0x00101010u) >> 4)) * 0x08040201u) >> 24) + 2)
1939 & ((((
LODWORD(
P) & 0x10101010u) + ((
HIDWORD(
P) & 0x00001010u) >> 4)) * 0x08040201u) >> 24);
1940 flipped = (outflank_v * 0x0007e3e1e0e06020ULL) & 0x0010101010101000ULL;
1942 outflank_h =
OUTFLANK_4[(O >> 57) & 0x3f] & (
P >> 56);
1943 flipped |=
FLIPPED_4_H[outflank_h] & 0xff00000000000000ULL;
1946 & ((((
HIDWORD(
P) & 0x00284482u) + (
LODWORD(
P) & 0x01000000u)) * 0x01010101u) >> 24);
1947 flipped |=
FLIPPED_4_H[outflank_d] & 0x0028440200000000ULL;
1959static unsigned long long flip_F8(
const unsigned long long P,
const unsigned long long O)
1961 unsigned int outflank_h, outflank_v, outflank_d;
1962 unsigned long long flipped;
1964 outflank_v = ((((((
LODWORD(O) & 0x20202000u) >> 1) + ((
HIDWORD(O) & 0x00202020u) >> 5)) * 0x08040201u) >> 24) + 2)
1965 & (((((
LODWORD(
P) & 0x20202020u) >> 1) + ((
HIDWORD(
P) & 0x00002020u) >> 5)) * 0x08040201u) >> 24);
1966 flipped = (outflank_v * 0x000fc7c3c1c0c040ULL) & 0x0020202020202000ULL;
1968 outflank_h =
OUTFLANK_5[(O >> 57) & 0x3f] & (
P >> 56);
1969 flipped |=
FLIPPED_5_H[outflank_h] & 0xff00000000000000ULL;
1972 & ((((
HIDWORD(
P) & 0x00508804u) + (
LODWORD(
P) & 0x02010000u)) * 0x01010101u) >> 24);
1973 flipped |=
FLIPPED_5_H[outflank_d] & 0x0050080402000000ULL;
1985static unsigned long long flip_G8(
const unsigned long long P,
const unsigned long long O)
1987 unsigned int outflank_h, outflank_v, outflank_d9;
1988 unsigned long long flipped;
1990 outflank_v = ((((((
LODWORD(O) & 0x40404000u) >> 2) + ((
HIDWORD(O) & 0x00404040u) >> 6)) * 0x08040201u) >> 24) + 2)
1991 & (((((
LODWORD(
P) & 0x40404040u) >> 2) + ((
HIDWORD(
P) & 0x00004040u) >> 6)) * 0x08040201u) >> 24);
1992 flipped = (outflank_v * 0x001f8f8783818080ULL) & 0x0040404040404000ULL;
1994 outflank_h =
OUTFLANK_7[(O >> 56) & 0x3e] & (
P >> 55);
1995 flipped |= (
unsigned long long) ((-outflank_h) & 0x3e) << 56;
1998 & ((((
LODWORD(
P) & 0x04020100u) + (
HIDWORD(
P) & 0x00001008u)) * 0x01010101u) >> 23);
1999 flipped |= (outflank_d9 * 0x001f0f0703010000ULL) & 0x0020100804020000ULL;
2011static unsigned long long flip_H8(
const unsigned long long P,
const unsigned long long O)
2013 unsigned int outflank_h, outflank_v, outflank_d9;
2014 unsigned long long flipped;
2016 outflank_v = ((((((
LODWORD(O) & 0x80808000u) >> 3) + ((
HIDWORD(O) & 0x00808080u) >> 7)) * 0x08040201u) >> 24) + 2)
2017 & (((((
LODWORD(
P) & 0x80808080u) >> 3) + ((
HIDWORD(
P) & 0x00008080u) >> 7)) * 0x08040201u) >> 24);
2018 flipped = (outflank_v * 0x003f1f0f07030100ULL) & 0x0080808080808000ULL;
2020 outflank_h =
OUTFLANK_7[(O >> 57) & 0x3f] & (
P >> 56);
2021 flipped |= (
unsigned long long) ((-outflank_h) & 0x3f) << 57;
2024 & ((((
LODWORD(
P) & 0x08040201u) + (
HIDWORD(
P) & 0x00002010u)) * 0x01010101u) >> 24);
2025 flipped |= (outflank_d9 * 0x007e3e1e0e060200ULL) & 0x0040201008040200ULL;
2037static unsigned long long flip_pass(
const unsigned long long P,
const unsigned long long O)
2046unsigned long long (*
flip[])(
const unsigned long long,
const unsigned long long) = {
static unsigned long long flip_A1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:275
static unsigned long long flip_D3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:765
static unsigned long long flip_E2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:578
static unsigned long long flip_E7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1725
static unsigned long long flip_F3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:831
static unsigned long long flip_D5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1241
static unsigned long long flip_pass(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:2037
static unsigned long long flip_G5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1331
static unsigned long long flip_A2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:477
static unsigned long long flip_B3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:707
static unsigned long long flip_B4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:946
static unsigned long long flip_E4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1035
static unsigned long long flip_F7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1751
static unsigned long long flip_C2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:525
static unsigned long long flip_D8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1907
static unsigned long long flip_G6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1563
static const unsigned char OUTFLANK_2[64]
Definition flip_carry_32.c:62
static unsigned long long flip_A6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1389
static const unsigned long long FLIPPED_2_V[130]
Definition flip_carry_32.c:186
static unsigned long long flip_A3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:679
static const unsigned char OUTFLANK_7[64]
Definition flip_carry_32.c:97
static unsigned long long flip_B1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:299
static unsigned long long flip_H6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1592
static unsigned long long flip_B6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1418
static unsigned long long flip_E1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:376
static unsigned long long flip_A4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:917
static unsigned long long flip_B5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1182
unsigned long long(* flip[])(const unsigned long long, const unsigned long long)
Definition flip_carry_32.c:2046
static const unsigned long long FLIPPED_3_H[131]
Definition flip_carry_32.c:125
static const unsigned long long FLIPPED_5_H[137]
Definition flip_carry_32.c:165
static unsigned long long flip_B7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1647
static unsigned long long flip_D7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1699
static unsigned long long flip_C5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1211
static unsigned long long flip_D6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1475
static unsigned long long flip_C1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:323
static const unsigned char OUTFLANK_3[64]
Definition flip_carry_32.c:69
static unsigned long long flip_H2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:655
static unsigned long long flip_E3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:798
static unsigned long long flip_E5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1271
static unsigned long long flip_F2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:605
static unsigned long long flip_C8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1881
static unsigned long long flip_C3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:735
static unsigned long long flip_G4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1095
static const unsigned long long FLIPPED_4_V[133]
Definition flip_carry_32.c:226
static unsigned long long flip_D2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:551
static unsigned long long flip_H3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:889
static unsigned long long flip_H4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1124
#define LODWORD(l)
Definition flip_carry_32.c:44
static unsigned long long flip_F8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1959
static unsigned long long flip_D1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:349
static unsigned long long flip_H1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:453
static unsigned long long flip_F1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:403
static const unsigned char OUTFLANK_5[64]
Definition flip_carry_32.c:83
static unsigned long long flip_A5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1153
static unsigned long long flip_F6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1535
static unsigned long long flip_B2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:501
static unsigned long long flip_G1(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:429
static const unsigned char OUTFLANK_4[64]
Definition flip_carry_32.c:76
#define HIDWORD(l)
Definition flip_carry_32.c:45
static unsigned long long flip_F5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1301
static unsigned long long flip_G3(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:861
static unsigned long long flip_G8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1985
static const unsigned long long FLIPPED_3_V[131]
Definition flip_carry_32.c:206
static unsigned long long flip_C4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:975
static const unsigned long long FLIPPED_2_H[130]
Definition flip_carry_32.c:105
static unsigned long long flip_H7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1803
static unsigned long long flip_H8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:2011
static unsigned long long flip_H5(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1360
static unsigned long long flip_G2(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:631
static unsigned long long flip_A8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1829
static unsigned long long flip_B8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1855
static unsigned long long flip_C6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1447
static unsigned long long flip_C7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1673
static unsigned long long flip_D4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1005
static const unsigned long long FLIPPED_4_H[133]
Definition flip_carry_32.c:145
static unsigned long long flip_A7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1621
static unsigned long long flip_F4(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1065
static unsigned long long flip_G7(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1777
static const unsigned long long FLIPPED_5_V[137]
Definition flip_carry_32.c:246
static unsigned long long flip_E8(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1933
static unsigned long long flip_E6(const unsigned long long P, const unsigned long long O)
Definition flip_carry_32.c:1505
uint64 P(uint64 mask, const uint64 flat)
Definition generate_flip.c:176