1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 08:43:09 +00:00

Let LMR at root be independent of MultiPV value

Current formula enable LMR when

i + MultiPV >= LMRPVMoves

It means that, for instance, if MultiPV == 1 then LMR
will be started to be considered at move i = LMRPVMoves - 1,
while if MultiPV == 3 then it will start before,
at move i = LMRPVMoves - 3.

With this patch the formula becomes

i >= MultiPV + LMRPVMoves - 2

So that LMR will always start after LMRPVMoves - 1 moves
from the last PV move.

No functional change when MultiPV == 1

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2009-08-08 17:04:01 +01:00
parent 339bb8a524
commit 54382f8b07

View file

@ -894,7 +894,7 @@ namespace {
// Decide search depth for this move
bool moveIsCapture = pos.move_is_capture(move);
bool dangerous;
ext = extension(pos, move, true, pos.move_is_capture(move), pos.move_is_check(move), false, false, &dangerous);
ext = extension(pos, move, true, moveIsCapture, pos.move_is_check(move), false, false, &dangerous);
newDepth = (Iteration - 2) * OnePly + ext + InitialDepth;
// Make the move, and search it
@ -918,8 +918,8 @@ namespace {
}
else
{
if (newDepth >= 3*OnePly
&& i + MultiPV >= LMRPVMoves
if ( newDepth >= 3*OnePly
&& i >= MultiPV + LMRPVMoves - 2 // Remove -2 and decrease LMRPVMoves instead ?
&& !dangerous
&& !moveIsCapture
&& !move_is_promotion(move)
@ -927,10 +927,10 @@ namespace {
{
ss[0].reduction = OnePly;
value = -search(pos, ss, -alpha, newDepth-OnePly, 1, true, 0);
}
else
} else
value = alpha + 1; // Just to trigger next condition
if(value > alpha)
if (value > alpha)
{
value = -search(pos, ss, -alpha, newDepth, 1, true, 0);
if (value > alpha)