hgm wrote:I prefer the null move even at d=1 because it saves you generating moves, and in Joker the result goes into the hash table as a d=3 search if it works (and consequently d=2 parents in which the side that is behind can make no threat go into the hash as d=4, and their parents as d=5), which saves a lot of work on the next iteration.
There is no sense in doing nullmove at d=1 when using futily pruning, most of us do.
I don't get that. If CurEval > Beta > Alpha, then a null move is not futile.
Or are you talking now about futility pruning at d=2 and d=3? That you would prune moves that would be refuted by the null move at d=1 already there? But that pruning is done based on an estimate of the evaluation, with a large positional margin. So if you don't satisfy the conditions for pruning, and play the move, in practice it could still be refuted by stand-pat or null move if the move was positionally bad, rather than close to the best possible.
hgm wrote:I prefer the null move even at d=1 because it saves you generating moves, and in Joker the result goes into the hash table as a d=3 search if it works (and consequently d=2 parents in which the side that is behind can make no threat go into the hash as d=4, and their parents as d=5), which saves a lot of work on the next iteration.
There is no sense in doing nullmove at d=1 when using futily pruning, most of us do.