Author: Robert Hyatt
Date: 11:49:54 01/16/03
Go up one level in this thread
On January 16, 2003 at 14:35:25, David Rasmussen wrote:
>On January 16, 2003 at 14:22:01, Dann Corbit wrote:
>
>>Do you probe in quiescent search?
>>
>
>No
>
>>Under what conditions do you probe?
>
>I think my code is self explanatory (probably not...):
>
> /*
> * Probe the endgame tablebases
> */
>
> if (ply <= iterationDepth
> && EGTBEnabled
> && PopCount(pos.occupied[WHITE] | pos.occupied[BLACK])
> <= EGTBLimit
> && (
> Capture(currentMove[ply-1])
> || Promote(currentMove[ply-1])
wasted test. First, check for Capture(). Why do the PopCnt first when it is
slow?
Then check for popcnt or (better) just keep a count of pieces on the board and
update
it incrementally. Finally, dump the Promote test. If you have all egtbs you
can never
get here as you would have gotten a hit previously.
> || ply < 2
> )
> )
> {
> ++EGTBProbes;
> Score EGTBValue;
> if (EGTBProbe(pos,EGTBValue))
> {
> ++EGTBHits;
> alpha = EGTBValue;
> if (Abs(alpha) > MATE - 300)
> {
> alpha += (alpha > 0) ? -ply : ply;
> }
> else if (alpha == 0)
> alpha = DRAW;
> HashStore(pos,MAX_PLY*ONE_PLY,ply,EXACT,alpha,0);
> return(alpha);
> }
> }
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.