mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Simplify pawn asymmetry (remove use of semiopen files). (#2054)
This is a functional simplification. To me, the exclusive OR of semiopenFiles here is quite convoluted. Looks like it can be removed. STC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 43885 W: 9731 L: 9653 D: 24501 http://tests.stockfishchess.org/tests/view/5c9041680ebc5925cfff10ea LTC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 68437 W: 11577 L: 11533 D: 45327 http://tests.stockfishchess.org/tests/view/5c9101740ebc5925cfff1cbf bench 3575627
This commit is contained in:
parent
2f11c03bbf
commit
7133598a98
3 changed files with 6 additions and 7 deletions
|
@ -743,12 +743,12 @@ namespace {
|
||||||
&& (pos.pieces(PAWN) & KingSide);
|
&& (pos.pieces(PAWN) & KingSide);
|
||||||
|
|
||||||
// Compute the initiative bonus for the attacking side
|
// Compute the initiative bonus for the attacking side
|
||||||
int complexity = 9 * pe->pawn_asymmetry()
|
int complexity = 9 * pe->passed_count()
|
||||||
+ 11 * pos.count<PAWN>()
|
+ 11 * pos.count<PAWN>()
|
||||||
+ 9 * outflanking
|
+ 9 * outflanking
|
||||||
+ 18 * pawnsOnBothFlanks
|
+ 18 * pawnsOnBothFlanks
|
||||||
+ 49 * !pos.non_pawn_material()
|
+ 49 * !pos.non_pawn_material()
|
||||||
-121 ;
|
-103 ;
|
||||||
|
|
||||||
// Now apply the bonus: note that we find the attacking side by extracting
|
// Now apply the bonus: note that we find the attacking side by extracting
|
||||||
// the sign of the endgame value, and that we carefully cap the bonus so
|
// the sign of the endgame value, and that we carefully cap the bonus so
|
||||||
|
@ -776,7 +776,7 @@ namespace {
|
||||||
if ( pos.opposite_bishops()
|
if ( pos.opposite_bishops()
|
||||||
&& pos.non_pawn_material(WHITE) == BishopValueMg
|
&& pos.non_pawn_material(WHITE) == BishopValueMg
|
||||||
&& pos.non_pawn_material(BLACK) == BishopValueMg)
|
&& pos.non_pawn_material(BLACK) == BishopValueMg)
|
||||||
sf = 8 + 4 * pe->pawn_asymmetry();
|
sf = 16 + 4 * pe->passed_count();
|
||||||
else
|
else
|
||||||
sf = std::min(40 + (pos.opposite_bishops() ? 2 : 7) * pos.count<PAWN>(strongSide), sf);
|
sf = std::min(40 + (pos.opposite_bishops() ? 2 : 7) * pos.count<PAWN>(strongSide), sf);
|
||||||
|
|
||||||
|
|
|
@ -185,8 +185,7 @@ Entry* probe(const Position& pos) {
|
||||||
e->key = key;
|
e->key = key;
|
||||||
e->scores[WHITE] = evaluate<WHITE>(pos, e);
|
e->scores[WHITE] = evaluate<WHITE>(pos, e);
|
||||||
e->scores[BLACK] = evaluate<BLACK>(pos, e);
|
e->scores[BLACK] = evaluate<BLACK>(pos, e);
|
||||||
e->asymmetry = popcount( (e->passedPawns[WHITE] | e->passedPawns[BLACK])
|
e->passedCount= popcount(e->passedPawns[WHITE] | e->passedPawns[BLACK]);
|
||||||
| (e->semiopenFiles[WHITE] ^ e->semiopenFiles[BLACK]));
|
|
||||||
|
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ struct Entry {
|
||||||
Bitboard passed_pawns(Color c) const { return passedPawns[c]; }
|
Bitboard passed_pawns(Color c) const { return passedPawns[c]; }
|
||||||
Bitboard pawn_attacks_span(Color c) const { return pawnAttacksSpan[c]; }
|
Bitboard pawn_attacks_span(Color c) const { return pawnAttacksSpan[c]; }
|
||||||
int weak_unopposed(Color c) const { return weakUnopposed[c]; }
|
int weak_unopposed(Color c) const { return weakUnopposed[c]; }
|
||||||
int pawn_asymmetry() const { return asymmetry; }
|
int passed_count() const { return passedCount; }
|
||||||
|
|
||||||
int semiopen_file(Color c, File f) const {
|
int semiopen_file(Color c, File f) const {
|
||||||
return semiopenFiles[c] & (1 << f);
|
return semiopenFiles[c] & (1 << f);
|
||||||
|
@ -71,7 +71,7 @@ struct Entry {
|
||||||
int castlingRights[COLOR_NB];
|
int castlingRights[COLOR_NB];
|
||||||
int semiopenFiles[COLOR_NB];
|
int semiopenFiles[COLOR_NB];
|
||||||
int pawnsOnSquares[COLOR_NB][COLOR_NB]; // [color][light/dark squares]
|
int pawnsOnSquares[COLOR_NB][COLOR_NB]; // [color][light/dark squares]
|
||||||
int asymmetry;
|
int passedCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef HashTable<Entry, 16384> Table;
|
typedef HashTable<Entry, 16384> Table;
|
||||||
|
|
Loading…
Add table
Reference in a new issue