+ if (ply >= PLY_MAX - 1)
+ return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID);
+
+ // Transposition table lookup. At PV nodes, we don't use the TT for
+ // pruning, but only for move ordering.
+ tte = TT.retrieve(pos.get_key());
+ ttMove = (tte ? tte->move() : MOVE_NONE);
+
+ if (!pvNode && tte && ok_to_use_TT(tte, depth, beta, ply))