Author: Robert Hyatt
Date: 19:54:30 12/29/03
Go up one level in this thread
On December 29, 2003 at 18:11:16, Uri Blass wrote:
>some questions:
>1)Crafty is using fail hard so is there a reason to change alpha and beta in the
>following code and not returning UPPER and LOWER without doing it?
It currently uses fail hard, but it has used fail soft. However, on
searching the root move, this allows crafty to raise alpha or lower
beta if possible, which restricts the size of the tree...
>
> case UPPER:
> if (val <= *alpha) {
> *alpha=val;
> return(UPPER);
> }
> break;
> case LOWER:
> if (val >= *beta) {
> *beta=val;
> return LOWER;
> }
>
>
>2)I am not sure if I understand the following part of HashStore
>
>if (type == EXACT) {
> if ((int) tree->pv[ply].pathl >= ply)
> word1l|=tree->pv[ply].path[ply];
>
>What does pv[ply].path1 means?
>I guess length of the pv line but I am not sure.
Correct. There might not always be a PV move to store.
>
>type=EXACT means exact score so if I understand correctly crafty stores the move
>of the pv in the hash tables when the move of the pv is tree->pv[ply].path[ply]
>
>If I understand correctly when type=EXACT
>you may have tree->pv[ply].pathl >= ply when you do not probe the egtb when it
>is 0 when you probe them.
That really isn't the point of the pathl check. IE at the current
ply, you could get an EGTB hit, and when it tries to store the current
score, there is no move at the current ply as we haven't searched
anything yet... If I didn't do the check, I could store a garbage
move while will produce a warning later...
>
>Am I correct?
>
>Uri
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.