Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: To bitboard or not to bitboard?

Author: Gerd Isenberg

Date: 12:10:32 08/31/03

Go up one level in this thread


On August 31, 2003 at 06:32:23, Tord Romstad wrote:

>Thanks for your input, Gerd.
>
>Lots of ideas here, and I will need some time to digest them all.
>Just one small question now:
>
>>With G5 (how many 64-bit registers?) or Opteron in mind, you may have a closer
>>look at Kogge-Stone-fill routines attack generation.
>>It is very usefull to get disjoint directions wise attacks, e.g. obviously pawns
>>left and right attacks, as well all 8 directions for sliders.
>>These algotithms may be implemented for several directions as well as piecesets
>>in parallel or interlaced, as long you have 64-bit registers free.
>>
>>http://peter.fendrich.net/Terra/Terra%20Help-1647.htm
>
>I don't see any discussion of diagonal attacks here.  How are they handled?

Similar to left and right with the same initial "wrap-ands".
Shifting generators (Pieces) and propagators (free squares) 7(14,28) or 9(18,36)
to left or right for each diagonal direction.
The initial "wrap-and" was one of the "surprising" features for me.

After Steffan introduced these fill-algorithms to me, i changed IsiChess from
rotated to an MMX-fill approach, including kogge stone.
After one-to-one replacement of the attack routines, the MMX-approach was a bit
slower. I use legal move generation - and in total i found a shlight speedup
after some changes, using disjoint direction attacks, e.g. much easier
unconditional pinned piece (including remove checker and checking target squares
for sliding pieces) code and a rather fast getAllAttacks-routine for legal king
moves.

>
>>These simple file-fill routines are great to get a lot of pawn patterns, like
>>backward, passers, isolanis, etc.:
>
>Pawn patterns are not very interesting.  Like everybody else, I get such
>information (almost) for free from my pawn hash table.  I have the number
>and location of all passed pawns, isolated pawns, backward pawns and
>lots of other info available at almost zero cost.

Yes, but they are great for didactical reasons. And a lot of pawn related
evaluation stuff interacts with other pieces. E.g. getting passed pawns outside
the "king's square" in pawn endings, is only one "and" of the set of passers
with some preinitialized bitboard[64][2] array, addressed by the king square and
color. Passed pawns are simply the intersection of all pawns of one side, with
the set of squares, opposite pawns on current files may never reach or control
(~fillUp or ~fillDown(pawn[side]|pawnattacks[side]).

I'm currently thinking about throwing out pawn hash table
in a future 64-bit IsiChess.

Gerd

>
>Tord



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.