Lines Matching refs:ply

18 int Search(TREE * RESTRICT tree, int ply, int depth, int wtm, int alpha,  in Search()  argument
54 Interrupt(ply); in Search()
60 if (ply >= MAXPLY - 1) in Search()
73 if (ply > 1) { in Search()
74 if ((repeat = Repeat(tree, ply))) { in Search()
78 SavePV(tree, ply, repeat); in Search()
80 if (ply <= trace_level) in Search()
82 (repeat == 3) ? "50-move" : "repetition", ply); in Search()
98 alpha = Max(alpha, -MATE + ply - 1); in Search()
99 beta = Min(beta, MATE - ply); in Search()
128 switch (HashProbe(tree, ply, depth, wtm, alpha, beta, &value)) { in Search()
178 !Castle(ply, white) && !Castle(ply, black) && Reversible(ply) == 0) { in Search()
187 Reversible(ply), 0, EnPassant(ply), wtm, HashKey); in Search()
214 SavePV(tree, ply, 4); in Search()
259 tree->last[ply] = tree->last[ply - 1]; in Search()
267 tree->curmv[ply] = 0; in Search()
269 if (ply <= trace_level) in Search()
270 Trace(tree, ply, depth, wtm, value - 1, value, "SearchNull", serial, in Search()
273 tree->status[ply + 1] = tree->status[ply]; in Search()
274 Reversible(ply + 1) = 0; in Search()
276 if (EnPassant(ply + 1)) { in Search()
277 HashEP(EnPassant(ply + 1)); in Search()
278 EnPassant(ply + 1) = 0; in Search()
283 -Search(tree, ply + 1, depth - R - 1, Flip(wtm), -beta, -beta + 1, in Search()
286 value = -Quiesce(tree, ply + 1, Flip(wtm), -beta, -beta + 1, 1); in Search()
291 HashStore(tree, ply, depth, wtm, LOWER, value, tree->hash_move[ply]); in Search()
310 tree->next_status[ply].phase = HASH; in Search()
311 if (!tree->hash_move[ply] && depth >= 6 && do_null && ply > 1 && pv_node) { in Search()
312 tree->curmv[ply] = 0; in Search()
315 Search(tree, ply, depth - 2, wtm, alpha, beta, in_check, DO_NULL); in Search()
317 value = Quiesce(tree, ply, wtm, alpha, beta, 1); in Search()
322 if ((int) tree->pv[ply - 1].pathl > ply) in Search()
323 tree->hash_move[ply] = tree->pv[ply - 1].path[ply]; in Search()
325 tree->hash_move[ply] = tree->curmv[ply]; in Search()
326 tree->last[ply] = tree->last[ply - 1]; in Search()
327 tree->next_status[ply].phase = HASH; in Search()
344 SearchMoveList(tree, ply, depth, wtm, alpha, beta, searched, in_check, in Search()
379 int SearchMoveList(TREE * RESTRICT tree, int ply, int depth, int wtm, in SearchMoveList() argument
406 tree->next_status[ply].phase = HASH; in SearchMoveList()
433 if (ply == 1 && moves_done == 1 && alpha == original_alpha && in SearchMoveList()
438 order = (ply > 1) ? NextMove(current, ply, depth, wtm, in_check) in SearchMoveList()
441 tree->curmv[ply] = current->curmv[ply]; in SearchMoveList()
447 if (ply <= trace_level) in SearchMoveList()
448 Trace(tree, ply, depth, wtm, alpha, beta, "SearchMoveList", mode, in SearchMoveList()
449 current->phase[ply], order); in SearchMoveList()
451 MakeMove(tree, ply, wtm, tree->curmv[ply]); in SearchMoveList()
459 searched[searched[0]] = tree->curmv[ply]; in SearchMoveList()
481 tree->curmv[ply]) - pcval[Captured(tree->curmv[ply])] <= in SearchMoveList()
533 !(PawnPush(wtm, tree->curmv[ply]))) { in SearchMoveList()
560 alpha > -MATE + 300 && !CaptureOrPromote(tree->curmv[ply])) { in SearchMoveList()
600 SearchMove(tree, ply, depth, wtm, alpha, t_beta, beta, extend, in SearchMoveList()
606 if (mode == parallel && ply == 1) in SearchMoveList()
610 UnmakeMove(tree, ply, wtm, tree->curmv[ply]); in SearchMoveList()
643 if (ply == 1) { in SearchMoveList()
672 HashStore(tree, ply, depth, wtm, LOWER, value, tree->curmv[ply]); in SearchMoveList()
673 History(tree, ply, depth, wtm, tree->curmv[ply], searched); in SearchMoveList()
704 if (ply == 1 && mode == serial) { in SearchMoveList()
834 ThreadSplit(tree, ply, depth, alpha, original_alpha, moves_done)) in SearchMoveList()
840 tree->ply = ply; in SearchMoveList()
849 if (ply == 1) in SearchMoveList()
852 HashStore(tree, ply, depth, wtm, LOWER, value, tree->cutmove); in SearchMoveList()
890 value = (Check(wtm)) ? -(MATE - ply) : DrawScore(wtm); in SearchMoveList()
892 SavePV(tree, ply, 0); in SearchMoveList()
894 if (ply <= trace_level) in SearchMoveList()
895 printf("Search() no moves! ply=%d\n", ply); in SearchMoveList()
902 original_alpha) ? tree->hash_move[ply] : tree->pv[ply].path[ply]; in SearchMoveList()
904 if (repeat == 2 && alpha != -(MATE - ply - 1)) { in SearchMoveList()
907 SavePV(tree, ply, 3); in SearchMoveList()
909 if (ply <= trace_level) in SearchMoveList()
910 printf("draw by 50 move rule detected, ply=%d.\n", ply); in SearchMoveList()
914 tree->pv[ply - 1] = tree->pv[ply]; in SearchMoveList()
915 tree->pv[ply - 1].path[ply - 1] = tree->curmv[ply - 1]; in SearchMoveList()
917 HashStore(tree, ply, depth, wtm, type, alpha, bestmove); in SearchMoveList()
933 int SearchMove(TREE * RESTRICT tree, int ply, int depth, int wtm, int alpha, in SearchMove() argument
956 -Search(tree, ply + 1, depth + extend - reduce - 1, Flip(wtm), in SearchMove()
960 -Search(tree, ply + 1, depth - 1, Flip(wtm), -t_beta, -alpha, check, in SearchMove()
964 value = -Quiesce(tree, ply + 1, Flip(wtm), -t_beta, -alpha, 1); in SearchMove()
981 if (ply == 1) in SearchMove()
985 -Search(tree, ply + 1, depth + extend - 1, Flip(wtm), -beta, -alpha, in SearchMove()
988 value = -Quiesce(tree, ply + 1, Flip(wtm), -beta, -alpha, 1); in SearchMove()