Author: Tijs van Dam
Date: 08:58:25 01/26/00
Go up one level in this thread
On January 26, 2000 at 11:29:51, Ulrich Tuerke wrote:
>I can't find a "break" statement inside the "virtual loop". So, it seems to me
>that the "loop" can be omitted. I guess that the optimizer will throw it away
>anyway because of the constant 0.
>
>>
As i said in my original post, some things were left out. The part "<... check
if this is indeed a pv node ...>" contains breaks. This is the complete code:
tree->next_status[ply].phase=FIRST_PHASE;
if (tree->hash_move[ply]==0 && do_null && depth>=3*INCPLY) do {
if (ply & 1) {
if (alpha!=root_alpha || beta!=root_beta) break;
}
else {
if (alpha!=-root_beta || beta!=-root_alpha) break;
}
tree->current_move[ply]=0;
value=ABSearch(tree,alpha,beta,wtm,depth-2*INCPLY,ply,DO_NULL);
if (abort_search || tree->stop) return(0);
if (value <= alpha) {
value=ABSearch(tree,-MATE,beta,wtm,depth-2*INCPLY,ply,DO_NULL);
if (abort_search || tree->stop) return(0);
}
else if (value < beta) {
if ((int) tree->pv[ply-1].pathl >= ply)
tree->hash_move[ply]=tree->pv[ply-1].path[ply];
}
else tree->hash_move[ply]=tree->current_move[ply];
tree->last[ply]=tree->last[ply-1];
tree->next_status[ply].phase=FIRST_PHASE;
} while(0);
>>>
>>>Uli
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.