Author: Gerd Isenberg
Date: 12:19:49 01/16/04
Go up one level in this thread
On January 16, 2004 at 14:26:32, Alessandro Damiani wrote: > >>i was asking because i'm generating all attacks in all positions (also the leaf >>nodes), which takes a significant amount of time. i thought my >>looping-over-bitboards was terribly slow, then i replaced it by the kogge-stone >>stuff that was posted here a while ago, and it got even slower ;-) >>so the next thing to try would be rotated bitboards, but it's rather a lot of >>work to implement, i'm afraid. > >When I started working on my engine years back I first implemented the Chess 4.0 >style attack tables. Then I read about Bob's Rotated Bitboards. I liked the >idea, but found keeping updated rotated representations of the board too >complicated. I therefore developed my own way of determining the attacked >squares. I call it Rotated Indices. As its name suggests it keeps updated the >indices used to access the attack tables. In contrast to Rotated Bitboards you >don't have to extract the index out of the rotated bitboards, it is already >there. The code is very simple. > >If you really want to implement Rotated Bitboards then you have to do it, >waiting doesn't help. ;-) But, if you don't want to spend more than two hours >for the implementation then you may have a look at Rotated Indices. You can find >the source code on my homepage under "Chess programming: Bitboards in Fortress": >http://freeweb.econophone.ch/fortress > >Alessandro > ....eine Einbuchtung im Raum Ahh, you incremental update occupied states for each ray - really nice improvement. What's about the occupied redundancy of the most outer squares of a ray? With two additional instructions, your 2nd level cache may happily wind a bit: inside your attack-getter-macros: ...[sq][(SlideIndexX[...] >> 1) & 63] // 128K instead of 512K BitBoard AFRhorizontal[64][64], AFRvertical[64][64], AFBrightup[64][64], AFBrightdown[64][64]; You may even better consider that property in incremental update and keep SlideIndexX in 0..63 range rather than 0..255. Gerd
This page took 0.01 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.