Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Slow EGTBs

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.