stm = Color(idx & 1);
bksq = Square((idx >> 1) & 63);
wksq = Square((idx >> 7) & 63);
- psq = make_square(File((idx >> 13) & 3), Rank((idx >> 15) + 1));
+ psq = File((idx >> 13) & 3) | Rank((idx >> 15) + 1);
}
Result KPKPosition::classify_leaf(int idx) {
while (b)
{
- r |= Us == WHITE ? db[index(pop_1st_bit(&b), bksq, psq, BLACK)]
- : db[index(wksq, pop_1st_bit(&b), psq, WHITE)];
+ r |= Us == WHITE ? db[index(pop_lsb(&b), bksq, psq, BLACK)]
+ : db[index(wksq, pop_lsb(&b), psq, WHITE)];
if (Us == WHITE && (r & WIN))
return WIN;