Author: Gerd Isenberg
Date: 01:13:34 02/24/06
Go up one level in this thread
On February 23, 2006 at 18:45:34, Dann Corbit wrote:
>On February 23, 2006 at 17:37:21, Gerd Isenberg wrote:
>[snip]
>>>a1b2 is a 64 bit unsigned integer with bits a1 and b2 set.
>>
>>Huch! That is possible!?
>>Hopefully no indirect jump table with 2**64 entries ;-)
>>Is that inside the generator or inside the chess programs.
>
>For a given square, I need at most 128 constants per row or diagonal.
>
>They are precomputed.
>
>Obviously, you must have the 64 unique bitboards A1-H8 defined.
>
>Then, your generator program writes (above the functions themselves):
>
>printf("static const Bitboard a1b2 = %ui64;\n", A1|B2);
>
>Any given file will need 128 for each column and 128 for each row and between 0
>and 128 for each diagonal for both diagonals.
Thanks, i have it now. Was too dazed by the switch(BitBoard). Hmm, yes as far i
can see the switch with up to 128 cases translates chain of 32-bit
compares/jumps.
Intuitively without having a closer look to some generated assembly i tend to
favour the De Bruijn folding with distinct directions, even if less flexible in
terms of xrays and other data-structures used for see. Otoh a quadbitboard
filler also provides xray informations as well - at least for usual and well
predictable cases with not more than two rooks, one queen and one bishop per
square color and side.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.