Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Speedups for BitBoard programs on 64-bit machines

Author: Vincent Diepeveen

Date: 05:48:41 06/07/02

Go up one level in this thread


On June 07, 2002 at 06:00:08, Gian-Carlo Pascutto wrote:



>On June 06, 2002 at 19:47:14, Vincent Diepeveen wrote:
>
>>Not really. the problem is the bitboarders have a different goal it seems.
>>If all you want is a Sum(squaresattacked) as mobility function, then sure
>>bitboards are an interesting thing to use at 64 bits processors. If you want
>>more, then bad luck with bitboards. Factor 2 slower.
>
>BitBoard Mobility function weighting each square differently:
>
>int RookMobility(int square)
>{
>  int mob, from = nobit_to_bit[square];
>  int mask;
>
>  mask = ((WhitePieces | BlackPieces) >> (Rank(from)<<3)) & FullRank;
>  mob = Rook_MobilityRank[from][mask];
>  mask = (R90 >> (File(from)<<3)) & FullRank;
>  mob += Rook_MobilityFile[from][mask];
>
>  return mob;
>}
>
>BitBoard Mobility function for Sum(squaresattacked):
>
>int RookMobility(int square)
>{
>  int mob, from = nobit_to_bit[square];
>  int mask;
>
>  mask = ((WhitePieces | BlackPieces) >> (Rank(from)<<3)) & FullRank;
>  mob = Rook_MobilityRank[from][mask];
>  mask = (R90 >> (File(from)<<3)) & FullRank;
>  mob += Rook_MobilityFile[from][mask];
>
>  return mob;
>}
>
>Oh, oops, guess what: they're exactly the same. The cleverness
>(and difference) is in a loop that is executed once at program startup
>to set up those arrays.
>
>--
>GCP

this is exactly the error you make, guessing you can assign values
without taking the board position into account.

Why don't you use a PSQ program,
which is nearly doing exactly the same?




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.