Author: Tony Werten
Date: 14:41:50 01/12/03
Go up one level in this thread
On January 12, 2003 at 17:14:18, Bas Hamstra wrote:
>I am playing with a 0x88 implementation, that is supposed to be faster than my
>rotated BitBoard program. Just for fun. However I am a little disappointed about
>the speed gains so far. I have learned in the past that there are a couple of
>very speed critical functions:
>
>- make/unmake
>- gencaptures
>- squareattacked
>- SEE
>
>So far my 0x88 make/unmake is about the same speed as in my BB program Tao. The
>second function I tested was bool SquareAttacked(int Sq, int ByColor). I was a
>little disappointed to see it is more than 2x slower than my rotated BitBoard
>version.
> rot BB 0x88
>Makes/Unmakes per sec: 4237288 4.25M
>GenCaptures per sec: 1915709 ?
>GenCapturesChecks per sec: 1569859 ?
>SquareAttacked per sec: 18181818 8M !!!
>SwapValue[c1e3] per sec: 6756757 ?
>GetBishopAttacks[26] per sec: 45454545 ?
>
>Below the 0x88 function used for SquareAttacked, which for the moment is the
>fastest I can think of:
>
>bool TBoard::SquareAttacked(int To, int ByColor)
>
>{ int n,
> D,
> From,
> Type,
> Sq,
> Count = PieceCount[ByColor];
>
> if(ByColor==WHITE && Bord[To-17] == 13) return true;
> if(ByColor==WHITE && Bord[To-15] == 13) return true;
> if(ByColor==BLACK && Bord[To+17] == 12) return true;
> if(ByColor==BLACK && Bord[To+15] == 12) return true;
>
> for(n=0; n<Count; n++)
> { From=PieceList[ByColor][n];
> Type=Bord[From]>>1;
> if(Type==PAWN) break;
> if(PseudoAtt[127+To-From] & (1<<Type) )
> { if(Type==KING || Type==KNIGHT) return true;
> D = Dir[127+To-From];
> for(Sq=From+D; Sq!=To; Sq+=D)
> if(Bord[Sq]) break;
> if(Sq==To) return true;
> }
> }
>
> return false;
>}
>
>All in all a little disappointing so far. Are the tiny loops *really* so
>amazingly fast?
There are some voices that say that a too tight loop will slow you down because
of too much dependences.
Anyway, this code will not slow you down. Generate captures is relatively
expensive. By the time I generate captures I have an attackboard ready, so it
becomes much cheaper.
Tony
>
>Best regards,
>Bas.
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.