From 16c603ce9baa464c2f59cbd001987ec3a7cbc01f Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Nicolet?= Date: Wed, 11 May 2016 06:48:51 +0200 Subject: [PATCH] Double pawn simplification Try doubled pawn simplification, with psq table compensation. STC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 36094 W: 6558 L: 6463 D: 23073 LTC: LLR: 2.94 (-2.94,2.94) [-3.00,1.00] Total: 102352 W: 13417 L: 13404 D: 75531 Bench: 8716243 --- src/pawns.cpp | 10 ++++------ src/psqt.cpp | 13 ++++++------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/pawns.cpp b/src/pawns.cpp index c5c42ff1..74b3fd5e 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -44,10 +44,8 @@ namespace { // Connected pawn bonus by opposed, phalanx, twice supported and rank Score Connected[2][2][2][RANK_NB]; - // Doubled pawn penalty by file - const Score Doubled[FILE_NB] = { - S(11, 34), S(17, 38), S(19, 38), S(19, 38), - S(19, 38), S(19, 38), S(17, 38), S(11, 34) }; + // Doubled pawn penalty + const Score Doubled = S(18,38); // Lever bonus by rank const Score Lever[RANK_NB] = { @@ -145,7 +143,7 @@ namespace { // either there is a stopper in the way on this rank, or there is a // stopper on adjacent file which controls the way to that rank. backward = (b | shift_bb(b & adjacent_files_bb(f))) & stoppers; - + assert(!backward || !(pawn_attack_span(Them, s + Up) & neighbours)); } @@ -169,7 +167,7 @@ namespace { score += Connected[opposed][!!phalanx][more_than_one(supported)][relative_rank(Us, s)]; if (doubled) - score -= Doubled[f] / distance(s, frontmost_sq(Us, doubled)); + score -= Doubled / distance(s, frontmost_sq(Us, doubled)); if (lever) score += Lever[relative_rank(Us, s)]; diff --git a/src/psqt.cpp b/src/psqt.cpp index 76e4e7de..60180adf 100644 --- a/src/psqt.cpp +++ b/src/psqt.cpp @@ -38,13 +38,12 @@ const Score Bonus[][RANK_NB][int(FILE_NB) / 2] = { { }, { // Pawn { S( 0, 0), S( 0, 0), S( 0, 0), S( 0, 0) }, - { S(-19, 5), S( 1,-4), S( 7, 8), S( 3,-2) }, - { S(-26,-6), S( -7,-5), S( 19, 5), S(24, 4) }, - { S(-25, 1), S(-14, 3), S( 20,-8), S(35,-3) }, - { S(-14, 6), S( 0, 9), S( 3, 7), S(21,-6) }, - { S(-14, 6), S(-13,-5), S( -6, 2), S(-2, 4) }, - { S(-12, 1), S( 15,-9), S( -8, 1), S(-4,18) }, - { S( 0, 0), S( 0, 0), S( 0, 0), S( 0, 0) } + { S(-16, 7), S( 1,-4), S( 7, 8), S( 3,-2) }, + { S(-23,-4), S( -7,-5), S( 19, 5), S(24, 4) }, + { S(-22, 3), S(-14, 3), S( 20,-8), S(35,-3) }, + { S(-11, 8), S( 0, 9), S( 3, 7), S(21,-6) }, + { S(-11, 8), S(-13,-5), S( -6, 2), S(-2, 4) }, + { S( -9, 3), S( 15,-9), S( -8, 1), S(-4,18) } }, { // Knight { S(-143, -97), S(-96,-82), S(-80,-46), S(-73,-14) }, -- 2.39.2