Hi - does this make any sense?
#ifdef SELECTIVE
// If depth is 1 and no reductions or extensions and eval is bad relative
to alpha
// then search only captures, promotions or checking moves
if (depth == 1 && reduction == 0 && extension == 0)
if (eval(bd,QUIET) <= alpha+(1*uparams[pawn]))
if (!(sml[mvi].cap!=0||sml[mvi].pro!=0||incheck(bd))) {
unmakemv(bd);
continue;
}
#endif
I don't see any great improvement for 1*uparams[pawn] (1 pawn) 3*uparams[pawn] (a bishop/knight) and 5*uparams[pawn] (a rook).
The point is that if at depth == 1 and no reductions or extensions and
eval is worse with respect to alpha and it is not a capture, promotion
or the move didn't put us into check, then skip searching it since
the move is unlikely to improve us as much as the variation from
alpha.
Perhaps someone can see what is wrong with the above or indicate
this is not the right way to do it or to toss it entirely.
Stuart