chessfriend/doc/Notes.md

770 B

Notes on Building Chess Engines

BitBoards

Mapping

Little-Endian Rank-File (LERF) Mapping maps squares to bit offsets (or indexes) from a1 to h8.

 +-----------------+
8| 0 0 0 0 0 0 0 0 |
7| 0 0 0 0 0 0 0 0 |
6| 0 0 0 0 0 0 0 0 |
5| 0 0 0 0 0 0 0 0 |
4| 0 0 0 0 0 0 0 0 |
3| 0 0 0 0 0 0 0 0 |
2| 0 0 0 0 0 0 0 0 |
1| 0 0 0 0 0 0 0 0 |
 +-----------------+
   A B C D E F G H
 +-----------------+
8| 1 0 0 0 0 0 0 0 |
7| 1 0 0 0 0 0 0 0 |
6| 1 0 0 0 0 0 0 0 |
5| 1 0 0 0 0 0 0 0 |
4| 1 0 0 0 0 0 0 0 |
3| 1 0 0 0 0 0 0 0 |
2| 1 0 0 0 0 0 0 0 |
1| 1 0 0 0 0 0 0 0 |
 +-----------------+
   A B C D E F G H

Counting Bit Sets

https://graphics.stanford.edu/%7Eseander/bithacks.html#CountBitsSetParallel