Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Crafty internal iterative deepening

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.