Changes

Jump to: navigation, search

Titboards

840 bytes added, 24 July
add test results & remove speculation
The idea of titboards is to eliminate [[BitScan|bitscans]]. Typical bitboard move generation techniques generate a bitboard, intersect it with the set of allowable [[Squares|squares]] (empty or enemy-occupied), and then [[Bitboard Serialization|serialize]] that into a list of moves. Titboards take a bitboard occupancy for each side for just one rank, file, or diagonal, and convert them to ternary representations and add them together. This index can determine which squares can actually be moved to, instead of just attacked. It is used in a lookup table of 3^7=2187 entries per [[Direction|direction]] per square.
Titboards are not typically used (there is no known engine that implements them). The reasons behind this are that they use a large amount of memory (more than [[Magic Bitboards]]), and they must keep another attack generation method beside them due to their inflexibility. However, they  =Speed= Testing shows that titboards are very fast, possibly the fastest bitboard-based move generatorslower than magic bitboards<pre>Titboard perft group:Run 1 completed with 18652876 nps.Run 2 completed with 19684211 nps.Run 3 completed with 36981116 nps.Run 4 completed with 19180560 nps.Run 5 completed with 19103484 nps.Run 6 completed with 20140754 nps.All tests completed with means nps: 22290500 Pext perft group:Run 1 completed with 39392460 nps.Run 2 completed with 40452566 nps.Run 3 completed with 48139295 nps.Run 4 completed with 38508901 nps.Run 5 completed with 36894349 nps.Run 6 completed with 40414558 nps.All tests completed with means nps: 40633688 Magic Bitboard perft group:Run 1 completed with 36586293 nps.Run 2 completed with 37227627 nps.Run 3 completed with 45869401 nps.Run 4 completed with 35909201 nps.Run 5 completed with 35063617 nps.Run 6 completed with 37278392 nps.All tests completed with means nps: 37989088</pre>
=Forum Posts=
166
edits

Navigation menu