fairystockfish.git
6 years agoFix updating gates on castling move
gbtami [Wed, 7 Aug 2019 11:58:05 +0000]
Fix updating gates on castling move

6 years agoFix FEN generation for S-Chess
Fabian Fichter [Mon, 5 Aug 2019 21:01:27 +0000]
Fix FEN generation for S-Chess

Prevents generation of illegal castling moves.

Example: reb2rk1/ppppqppp/2nb1n2/4p3/4P3/N1P2N2/PB1PQPPP/RE2KBHR[h] w KQacgh - 3 7

6 years agoUpdate variant list in readme
Fabian Fichter [Mon, 5 Aug 2019 19:43:33 +0000]
Update variant list in readme

6 years agoRe-enable endgame code for large-board version
Fabian Fichter [Thu, 1 Aug 2019 22:35:19 +0000]
Re-enable endgame code for large-board version

chess STC
LLR: 2.96 (-2.94,2.94) [-10.00,5.00]
Total: 1221 W: 291 L: 253 D: 677
http://35.161.250.236:6543/tests/view/5d43fddc6e23db34f4206d2f

chess LTC
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 924 W: 174 L: 136 D: 614
http://35.161.250.236:6543/tests/view/5d44270a6e23db34f4206d36

capablanca STC
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 3460 W: 1367 L: 1334 D: 759
http://35.161.250.236:6543/tests/view/5d43fdfc6e23db34f4206d32

capablanca LTC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 2306 W: 879 L: 840 D: 587
http://35.161.250.236:6543/tests/view/5d4426ff6e23db34f4206d34

6 years agoIncrease king danger for nCheck variants
Fabian Fichter [Sun, 4 Aug 2019 10:26:47 +0000]
Increase king danger for nCheck variants

3check STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 2063 W: 1037 L: 910 D: 116
http://35.161.250.236:6543/tests/view/5d46b32b6e23db34f4206d48

3check LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 1029 W: 537 L: 426 D: 66
http://35.161.250.236:6543/tests/view/5d46d0bb6e23db34f4206d4b

6 years agoSupport S-chess
Fabian Fichter [Sun, 4 Aug 2019 16:35:47 +0000]
Support S-chess

https://en.wikipedia.org/wiki/Seirawan_chess

No functional change for other variants.

6 years agoSupport Shako
Fabian Fichter [Wed, 29 May 2019 14:02:04 +0000]
Support Shako

https://www.chessvariants.com/large.dir/shako.html

- Support cannon
- Generalize pawn double steps
- Generalize castling

bench: 3713921

6 years agoFix pseudo-legal move validation for horde chess
Fabian Fichter [Sat, 3 Aug 2019 18:31:30 +0000]
Fix pseudo-legal move validation for horde chess

horde STC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 478 W: 268 L: 204 D: 6
http://35.161.250.236:6543/tests/view/5d45d3aa6e23db34f4206d3d

6 years agoRe-enable thread-sanitizing for travis
Fabian Fichter [Thu, 1 Aug 2019 21:59:54 +0000]
Re-enable thread-sanitizing for travis

6 years agoImprovements for tablebase code
Fabian Fichter [Thu, 1 Aug 2019 21:32:14 +0000]
Improvements for tablebase code

- Speed up loading of tablebases.
- Disable loading for large-board version.
- Prevent invalid usage for variants.

6 years agoIncrease king danger for nCheck endgames
Fabian Fichter [Sun, 28 Jul 2019 15:11:27 +0000]
Increase king danger for nCheck endgames

3check STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 1085 W: 569 L: 456 D: 60
http://35.161.250.236:6543/tests/view/5d3dcc106e23db34f4206d19

3check LTC
LLR: 2.94 (-2.94,2.94) [0.00,10.00]
Total: 1107 W: 587 L: 473 D: 47
http://35.161.250.236:6543/tests/view/5d3de4a46e23db34f4206d1e

6 years agoSimplify CTF bonus
Fabian Fichter [Sun, 28 Jul 2019 12:05:07 +0000]
Simplify CTF bonus

racingkings STC
LLR: 2.99 (-2.94,2.94) [-10.00,5.00]
Total: 244 W: 124 L: 69 D: 51
http://35.161.250.236:6543/tests/view/5d3d8fa46e23db34f4206d12

racingkings LTC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 148 W: 77 L: 27 D: 44
http://35.161.250.236:6543/tests/view/5d3d95886e23db34f4206d15

6 years agoSplit rook magics into horizontal and vertical
Fabian Fichter [Sun, 5 May 2019 12:26:21 +0000]
Split rook magics into horizontal and vertical

6 years agoIntroduce rider types
Fabian Fichter [Sat, 13 Apr 2019 14:41:22 +0000]
Introduce rider types

No functional change.

6 years agoMerge official-stockfish/master
Fabian Fichter [Sat, 27 Jul 2019 11:35:33 +0000]
Merge official-stockfish/master

bench: 3559377

6 years agoBug fix: always choose shortest mate in multithread mode
mstembera [Mon, 8 Jul 2019 01:36:57 +0000]
Bug fix: always choose shortest mate in multithread mode

In current master, with the voting scheme the best thread selection may
pick a non mate or not the shortest mate thread. This patch fixes this bug.
Formatting suggestion by Jörg Oster.

Related past pull requests:
https://github.com/official-stockfish/Stockfish/pull/1074
https://github.com/official-stockfish/Stockfish/pull/1215

Passed a [-4..0] verification test with 3 threads:
LLR: 2.95 (-2.94,2.94) [-4.00,0.00]
Total: 57158 W: 11374 L: 11424 D: 34360
http://tests.stockfishchess.org/tests/view/5d22deb30ebc5925cf0caefd

Closes https://github.com/official-stockfish/Stockfish/pull/2226

No functional change (in single threaded mode)

----------------------------------------------------

Comment by Jörg Oster

Just one sample output to demonstrate the effect of this patch.
5 Threads, 1 GB Hash

 +---+---+---+---+---+---+---+---+
 | r |   | b |   |   | r | k |   |
 +---+---+---+---+---+---+---+---+
 |   |   |   | n |   | p | b |   |
 +---+---+---+---+---+---+---+---+
 |   |   | p |   | p |   | p |   |
 +---+---+---+---+---+---+---+---+
 | p |   |   |   |   |   | P |   |
 +---+---+---+---+---+---+---+---+
 | P | p |   |   | B |   | N | Q |
 +---+---+---+---+---+---+---+---+
 |   | q |   |   |   |   | P |   |
 +---+---+---+---+---+---+---+---+
 |   |   | R |   |   | P |   |   |
 +---+---+---+---+---+---+---+---+
 |   |   |   | R |   |   | K |   |
 +---+---+---+---+---+---+---+---+

Fen: r1b2rk1/3n1pb1/2p1p1p1/p5P1/Pp2B1NQ/1q4P1/2R2P2/3R2K1 w - - 8 34
Key: 38B4CA1067D4F477
Checkers:
ucinewgame
isready
readyok
go mate 17 searchmoves d1d7
info depth 65 seldepth 36 multipv 1 score mate 18 nodes 785875935 nps 8650448 hashfull 1000 tbhits 0 time 90848 pv d1d7 c8d7 g4f6 g7f6 g5f6 b3a3 g1g2 a3a1 h4g5 a1f6 g5f6 e6e5 c2c1 d7h3 g2h3 a8a6 h3g2 c6c5 f6a6 g8g7 c1c5 f7f6 a6e6 f8f7 c5c8 f6f5 e4d5 g7h6 e6f7 f5f4 f7e7 f4f3 d5f3 b4b3 c8h8
info depth 63 seldepth 36 multipv 1 score mate 17 nodes 785875935 nps 8650448 hashfull 1000 tbhits 0 time 90848 pv d1d7 c8d7 g4f6 g7f6 g5f6 b3a3 g1g2 a3a1 h4g5 a1f6 g5f6 e6e5 c2c1 d7h3 g2h3 a8a6 c1d1 b4b3 h3g2 c6c5 f6a6 g8g7 d1d7 g7g8 a6f6 b3b2 e4g6 b2b1q g6f7 f8f7 f6f7 g8h8 f7g7
bestmove d1d7 ponder c8d7

6 years agoRemove operators for color
protonspring [Tue, 16 Jul 2019 12:08:58 +0000]
Remove operators for color

This is a non-functional and untested simplification. The increment operator
for color isn't really necessary and seems a bit unnatural to me.

Passed STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 47027 W: 10589 L: 10518 D: 25920
http://tests.stockfishchess.org/tests/view/5d3472d10ebc5925cf0e8d3e

Closes https://github.com/official-stockfish/Stockfish/pull/2247

No functional change

6 years agoTweak of SEE pruning condition
Vizvezdenec [Wed, 24 Jul 2019 14:30:59 +0000]
Tweak of SEE pruning condition

passed STC
http://tests.stockfishchess.org/tests/view/5d386bda0ebc5925cf0ef49a
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 56874 W: 12820 L: 12373 D: 31681

passed LTC
http://tests.stockfishchess.org/tests/view/5d38873a0ebc5925cf0ef86e
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 43512 W: 7547 L: 7247 D: 28718

Additional thanks to @locutus2 , @miguel-l and @xoto10 for fruitful discussion.
There may be some more elo there since this tweak was the first one and numbers
are more or less arbitrary.

Closes https://github.com/official-stockfish/Stockfish/pull/2256

Bench 3935523

6 years agoPawn clean up
Alain SAVARD [Thu, 25 Jul 2019 07:02:26 +0000]
Pawn clean up

Non functional simplification when we find the passed pawns in pawn.cpp
and some code clean up. It also better follows the pattern "flag the pawn"
and "score the pawn".

-------------------------

The idea behind the third condition for candidate passed pawn is a little
bit difficult to visualize. Just for the record, the idea is the following:

Consider White e5 d4 against black e6. d4 can (in some endgames) push
to d5 and lever e6. Thanks to this sacrifice, or after d5xe6, we consider
e5 as "passed".

However:
- if White e5/d4 against black e6/c6: d4 cannot safely push to d5 since d5 is double attacked;
- if White e5/d4 against black e6/d5: d4 cannot safely push to d5 since it is occupied.

This is exactly what the following expression does:

```
   && (shift<Up>(support) & ~(theirPawns | dblAttackThem)))
```

--------------------------

http://tests.stockfishchess.org/tests/view/5d3325bb0ebc5925cf0e6e91
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 124666 W: 27586 L: 27669 D: 69411

Closes https://github.com/official-stockfish/Stockfish/pull/2255

No functional change

6 years agoLMR Tweak
VoyagerOne [Sun, 21 Jul 2019 15:25:58 +0000]
LMR Tweak

Reset statScore to zero if negative and most stats shows >= 0

STC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 23097 W: 5242 L: 4963 D: 12892
http://tests.stockfishchess.org/tests/view/5d31dd650ebc5925cf0e598f

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 227597 W: 39013 L: 38191 D: 150393
http://tests.stockfishchess.org/tests/view/5d31fcdf0ebc5925cf0e5c13

Closes https://github.com/official-stockfish/Stockfish/pull/2252

Bench: 3242229

6 years agoPassed file cleanup
Alain SAVARD [Sat, 20 Jul 2019 15:38:45 +0000]
Passed file cleanup

Protonspring had a successful functional simplification that removes the
PassedFile array using a simple linear equation.

Merge the additive term S(5, 10) of protonspring passed file simplification
(pull request https://github.com/official-stockfish/Stockfish/pull/2250)
into the PassedRank array. This harmless change has a different bench because
the candidate passer evaluation will always get less compared to #2250,
as we apply bonus = bonus /2.

Tested as a non-regression against #2250

Passed STC
http://tests.stockfishchess.org/tests/view/5d33427e0ebc5925cf0e6fa2
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 81459 W: 18174 L: 18171 D: 45114

Passed LTC
http://tests.stockfishchess.org/tests/view/5d335c8d0ebc5925cf0e731e
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 18525 W: 3176 L: 3052 D: 12297

Closes https://github.com/official-stockfish/Stockfish/pull/2250
Closes https://github.com/official-stockfish/Stockfish/pull/2251

Bench: 3859856

6 years agoNo influence on unsafeSquares of passers by pieces
Lolligerhans [Tue, 16 Jul 2019 08:14:09 +0000]
No influence on unsafeSquares of passers by pieces

Remove their pieces from influencing 'unsafeSquares' in passer
evaluation.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 36421 W: 8170 L: 8078 D: 20173
http://tests.stockfishchess.org/tests/view/5d22fc8e0ebc5925cf0cb26e

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 18927 W: 3253 L: 3129 D: 12545
http://tests.stockfishchess.org/tests/view/5d26e2b20ebc5925cf0d3218

Closes https://github.com/official-stockfish/Stockfish/pull/2248

Bench: 3285659

6 years agoTweak LMR and killers
Vizvezdenec [Tue, 16 Jul 2019 11:56:52 +0000]
Tweak LMR and killers

Give extra stat bonus/malus in case of LMR for killers.

passed STC
http://tests.stockfishchess.org/tests/view/5d2c8e760ebc5925cf0dcf23
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 67188 W: 15030 L: 14534 D: 37624

passed LTC
http://tests.stockfishchess.org/tests/view/5d2d0ce40ebc5925cf0de115
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 144355 W: 24739 L: 24153 D: 95463

Closes https://github.com/official-stockfish/Stockfish/pull/2246

bench 3723147

6 years agoSpace Invaders
Alain SAVARD [Sun, 14 Jul 2019 17:13:06 +0000]
Space Invaders

Try a more ambitius simplification of the space bonus

STC http://tests.stockfishchess.org/tests/view/5d2b62c90ebc5925cf0da2a4
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 51299 W: 11320 L: 11257 D: 28722

LTC http://tests.stockfishchess.org/tests/view/5d2bac270ebc5925cf0db215
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 49761 W: 8409 L: 8335 D: 33017

Closes https://github.com/official-stockfish/Stockfish/pull/2243

bench: 3395999

6 years agoDouble knight-pawn imbalance for antichess variants
Fabian Fichter [Fri, 19 Jul 2019 13:22:13 +0000]
Double knight-pawn imbalance for antichess variants

giveaway STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 864 W: 391 L: 294 D: 179
http://35.161.250.236:6543/tests/view/5d31c47b6e23db34f4206ca3

giveaway LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 568 W: 260 L: 170 D: 138
http://35.161.250.236:6543/tests/view/5d31d03f6e23db34f4206cb1

losers STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 1184 W: 591 L: 480 D: 113
http://35.161.250.236:6543/tests/view/5d31c4976e23db34f4206ca6

losers LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 701 W: 372 L: 268 D: 61
http://35.161.250.236:6543/tests/view/5d31d6d66e23db34f4206cb3

6 years agoFix bench
Marco Costalba [Sun, 14 Jul 2019 13:19:07 +0000]
Fix bench

Bench: 3357457

6 years agoUCI_Elo implementation (#2225)
Joost VandeVondele [Sun, 14 Jul 2019 12:47:50 +0000]
UCI_Elo implementation (#2225)

This exploits the recent fractional Skill Level, and is a result from some discussion in #2221 and the older #758.

Basically, if UCI_LimitStrength is set, it will internally convert UCI_Elo to a matching fractional Skill Level.
The Elo estimate is based on games at  TC 60+0.6, Hash 64Mb, 8moves_v3.pgn, rated with Ordo, anchored to goldfish1.13 (CCRL 40/4 ~2000).
Note that this is mostly about internal consistency, the anchoring to CCRL is a bit weak, e.g. within this tournament,
goldfish and sungorus only have a 200Elo difference, their rating difference on CCRL is 300Elo.

I propose that we continue to expose 'Skill Level' as an UCI option, for backwards compatibility.

The result of a tournament under those conditions are given by the following table, where the player name reflects the UCI_Elo.

   # PLAYER          :  RATING  ERROR  POINTS  PLAYED   (%)  CFS(%)
   1 Elo2837         :  2792.2   50.8   536.5     711    75     100
   2 Elo2745         :  2739.0   49.0   487.5     711    69     100
   3 Elo2654         :  2666.4   49.2   418.0     711    59     100
   4 Elo2562         :  2604.5   38.5   894.5    1383    65     100
   5 Elo2471         :  2515.2   38.1   651.5     924    71     100
   6 Elo2380         :  2365.9   35.4   478.5     924    52     100
   7 Elo2289         :  2290.0   28.0   864.0    1596    54     100
   8 sungorus1.4     :  2204.9   27.8   680.5    1596    43      60
   9 Elo2197         :  2201.1   30.1   523.5     924    57     100
  10 Elo2106         :  2103.8   24.5   730.5    1428    51     100
  11 Elo2014         :  2030.5   30.3   377.5     756    50      98
  12 goldfish1.13    :  2000.0   ----   511.0    1428    36     100
  13 Elo1923         :  1928.5   30.9   641.5    1260    51     100
  14 Elo1831         :  1829.0   42.1   370.5     756    49     100
  15 Elo1740         :  1738.3   42.9   277.5     756    37     100
  16 Elo1649         :  1625.0   42.1   525.5    1260    42     100
  17 Elo1558         :  1521.5   49.9   298.0     756    39     100
  18 Elo1467         :  1471.3   51.3   246.5     756    33     100
  19 Elo1375         :  1407.1   51.9   183.0     756    24     ---

It can be observed that all set Elos correspond within the error bars with the observed Ordo rating.

No functional change

6 years agoRemove std::pow from reduction. (#2234)
protonspring [Sun, 14 Jul 2019 12:46:10 +0000]
Remove std::pow from reduction. (#2234)

This is a functional simplification that removes the std::pow from reduction. The resulting reduction values are within 1% of master.

This is a simplification because i believe an fp addition and multiplication is much faster than a call to std::pow() which is historically slow and performance varies widely on different architectures.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 23471 W: 5245 L: 5127 D: 13099
http://tests.stockfishchess.org/tests/view/5d27ac1b0ebc5925cf0d476b

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 51533 W: 8736 L: 8665 D: 34132
http://tests.stockfishchess.org/tests/view/5d27b74e0ebc5925cf0d493c

Bench 3765158

6 years agoJust blockSq, not forward file. Bench: 3377831 (#2240)
31m059 [Sun, 14 Jul 2019 12:42:30 +0000]
Just blockSq, not forward file. Bench: 3377831 (#2240)

This is another functional simplification to Stockfish passed pawn evaluation.

Stockfish evaluates some pawns which are not yet passed as "candidate" passed pawns, which are given half the bonus of fully passed ones. Prior to this commit, Stockfish considered a passed pawn to be a "candidate" if (a) it would not be a passed pawn if moved one square forward (the blocking square), or (b) there were other pawns (of either color) in front of it on the file. This latter condition used a fairly complicated method, forward_file_bb; here, rather than inspect the entire forward file, we simply re-use the blocking square. As a result, some pawns previously considered "candidates", but which are able to push forward, no longer have their bonus halved.

Simplification tests passed quickly at both STC and LTC. The results from both tests imply that this simplification is, most likely, additionally a small Elo gain, with a LTC likelihood of superiority of 87 percent.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 12908 W: 2909 L: 2770 D: 7229
http://tests.stockfishchess.org/tests/view/5d2a1c880ebc5925cf0d9006

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 20723 W: 3591 L: 3470 D: 13662
http://tests.stockfishchess.org/tests/view/5d2a21fd0ebc5925cf0d9118

Bench: 3377831

6 years agotviigg. (#2238)
Michael Chaly [Sun, 14 Jul 2019 12:41:28 +0000]
tviigg. (#2238)

Current master code made sence when we had 2 types of bonuses for protected path to queen. But it was simplified so we have only one bonus now and code was never cleaned.
This non-functional simplification removes useless defendedsquares bitboard and removes one bitboard assignment (defendedSquares &= attackedBy[Us][ALL_PIECES] + defendedSquares & blockSq becomes just attackedBy[Us][ALL_PIECES] & blockSq also we never assign defendedSquares = squaresToQueen because we don't need it).
So should be small non-functional speedup.
Passed simplification SPRT.
http://tests.stockfishchess.org/tests/view/5d2966ef0ebc5925cf0d7659
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 23319 W: 5152 L: 5034 D: 13133

bench 3361902

6 years agoLinear formula for w. Bench: 3328507 (#2239)
31m059 [Sun, 14 Jul 2019 12:40:45 +0000]
Linear formula for w. Bench: 3328507 (#2239)

In Stockfish, both the middlegame and endgame bonus for a passed pawn are calculated as a product of two factors. The first is k, chosen based on the presence of defended and unsafe squares. The second is w, a quadratic function of the pawn's rank. Both are only applied if the pawn's relative rank is at least RANK_4.

It does not appear that the complexity of a quadratic function is necessary for w. Here, we replace it with a simpler linear one, which performs equally at both STC and LTC.

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 46814 W: 10386 L: 10314 D: 26114
http://tests.stockfishchess.org/tests/view/5d29686e0ebc5925cf0d76a1

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 82372 W: 13845 L: 13823 D: 54704
http://tests.stockfishchess.org/tests/view/5d2980650ebc5925cf0d7bfd

Bench: 3328507

6 years agoFull bonus for LMR stats update
Stefan Geschwentner [Fri, 12 Jul 2019 08:17:24 +0000]
Full bonus for LMR stats update

Simplify previous commit by using the full bonus for LMR-triggered stats update.

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 23684 W: 5255 L: 5137 D: 13292
http://tests.stockfishchess.org/tests/view/5d2826660ebc5925cf0d5180

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 16245 W: 2832 L: 2704 D: 10709
http://tests.stockfishchess.org/tests/view/5d282e9c0ebc5925cf0d529b

Closes https://github.com/official-stockfish/Stockfish/pull/2236

Bench: 3361902

6 years agoLate Move reduction and continuation history
Stefan Geschwentner [Fri, 12 Jul 2019 05:22:46 +0000]
Late Move reduction and continuation history

Update continuation history after LMR-triggered full depth research.
Directly after a LMR-triggered full depth research, we update the
continuation history for quiet moves (but with only half stat bonus).

STC:
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 39657 W: 8966 L: 8604 D: 22087
http://tests.stockfishchess.org/tests/view/5d279fa40ebc5925cf0d4566

LTC:
LLR: 2.96 (-2.94,2.94) [0.50,3.50]
Total: 32582 W: 5740 L: 5427 D: 21415
http://tests.stockfishchess.org/tests/view/5d27dbf90ebc5925cf0d4b7e

Bench: 3239357

6 years agoExclude passed pawns from Attacked2Unsupported
31m059 [Thu, 11 Jul 2019 13:14:57 +0000]
Exclude passed pawns from Attacked2Unsupported

We recently added a bonus for double pawn attacks on unsupported enemy pawns,
on June 27. However, it is possible that the unsupported pawn may become a passer
by simply pushing forward out of the double attack. By rewarding double attacks,
we may inadvertently reward the creation of enemy passers, by encouraging both of
our would-be stoppers to attack the enemy pawn even if there is no opposing
friendly pawn on the same file.

Here, we revise this term to exclude passed pawns. In order to simplify the code
with this change included, we non-functionally rewrite Attacked2Unsupported to
be a penalty for enemy attacks on friendly pawns, rather than a bonus for our
attacks on enemy pawns. This allows us to exclude passed pawns with a simple
& ~e->passedPawns[Us], while passedPawns[Them] is not yet defined in this part
of the code.

This dramatically reduces the proportion of positions in which Attacked2Unsupported
is applied, to about a third of the original. To compensate, maintaining the same
average effect across our bench positions, we nearly triple Attacked2Unsupported
from S(0, 20) to S(0, 56). Although this pawn formation is rare, it is worth more
than half a pawn in the endgame!

STC: (stopped automatically by fishtest after 250,000 games)
LLR: -0.87 (-2.94,2.94) [0.50,4.50]
Total: 250000 W: 56585 L: 55383 D: 138032
http://tests.stockfishchess.org/tests/view/5d25795e0ebc5925cf0cfb51

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 81038 W: 13965 L: 13558 D: 53515
http://tests.stockfishchess.org/tests/view/5d25f3920ebc5925cf0d10dd

Closes https://github.com/official-stockfish/Stockfish/pull/2233

Bench: 3765158

6 years agoAssorted trivial cleanups June 2019
Marco Costalba [Sun, 9 Jun 2019 13:07:36 +0000]
Assorted trivial cleanups June 2019

No functional change.

6 years agoTweak capture scoring formula
VoyagerOne [Wed, 10 Jul 2019 23:59:33 +0000]
Tweak capture scoring formula

STC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 20556 W: 4685 L: 4438 D: 11433
http://tests.stockfishchess.org/tests/view/5d25d26e0ebc5925cf0d0b4a

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 14856 W: 2649 L: 2446 D: 9761
http://tests.stockfishchess.org/tests/view/5d25d8b20ebc5925cf0d0c6d

bench: 3206912

6 years agoCombo of statscore divisor and pawn psqt changes
xoto10 [Sun, 7 Jul 2019 01:20:49 +0000]
Combo of statscore divisor and pawn psqt changes

Passed STC 10+0.1 th 1:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 13282 W: 3100 L: 2881 D: 7301
http://tests.stockfishchess.org/tests/view/5d21132e0ebc5925cf0c81f4

Passed LTC 60+0.6 th 1:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 44243 W: 7768 L: 7468 D: 29007
http://tests.stockfishchess.org/tests/view/5d2119050ebc5925cf0c832b

Bench 3705891

6 years agoUse score instead of array to evaluate shelter
protonspring [Tue, 9 Jul 2019 20:03:00 +0000]
Use score instead of array to evaluate shelter

This is a non-functional simplification. Instead of an array of values, just use a Score.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 16309 W: 3673 L: 3541 D: 9095
http://tests.stockfishchess.org/tests/view/5d24f3b80ebc5925cf0ceb5b

No functional change

6 years agoEnable popcount and prefetch for ppc-64
Daniel Axtens [Wed, 10 Jul 2019 23:12:54 +0000]
Enable popcount and prefetch for ppc-64

PowerPC has had popcount instructions for a long time, at least as far
back as POWER5 (released 2004). Enable them via a gcc builtin.

Using a gcc builtin has the added bonus that if compiled for a processor
that lacks a hardware instruction, gcc will include a software popcount
implementation that does not use the instruction. It might be slower
than the table lookups (or it might be faster) but it will certainly work.
So this isn't going to break anything.

On my POWER8 VM, this leads to a ~4.27% speedup.

Fir prefetch, the gcc builtin generates a 'dcbt' instruction, which is
supported at least as far back as the G5 (2002) and POWER4 (2001).

This leads to a ~5% speedup on my POWER8 VM.

No functional change

6 years agoMerge official-stockfish/master
Fabian Fichter [Sat, 6 Jul 2019 11:15:04 +0000]
Merge official-stockfish/master

bench: 3655793

6 years agoRedefine game phase for drop games
Fabian Fichter [Sat, 6 Jul 2019 10:22:06 +0000]
Redefine game phase for drop games

crazyhouse STC
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 2070 W: 1033 L: 981 D: 56
http://35.161.250.236:6543/tests/view/5d1f37226e23db34f4206c75

crazyhouse LTC
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 1346 W: 680 L: 623 D: 43
http://35.161.250.236:6543/tests/view/5d1f665c6e23db34f4206c78

6 years agoTweak evaluation for drop games
Fabian Fichter [Fri, 5 Jul 2019 11:34:31 +0000]
Tweak evaluation for drop games

crazyhouse STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 2276 W: 1175 L: 1042 D: 59
http://35.161.250.236:6543/tests/view/5d1d02f46e23db34f4206c70

crazyhouse LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 4642 W: 2320 L: 2154 D: 168
http://35.161.250.236:6543/tests/view/5d1d967c6e23db34f4206c73

6 years agoSupport gothic chess (close #22)
Fabian Fichter [Wed, 3 Jul 2019 19:06:40 +0000]
Support gothic chess (close #22)

https://www.chessvariants.com/large.dir/gothicchess.html

6 years agoSmoothly change playing strength with skill level. (#2142)
Joost VandeVondele [Mon, 1 Jul 2019 12:07:54 +0000]
Smoothly change playing strength with skill level. (#2142)

The current skill levels (1-20) allow for adjusting playing strengths, but
do so in big steps (e.g. level 10 vs level 11 is a ~143 Elo jump at STC).
Since the 'Skill Level' input can already be a floating point number, this
patch uses the fractional part of the input to provide the user with
fine control, allowing for varying the playing strength essentially
continuously.

The implementation internally still uses integer skill levels (needed since they pick Depths),
but non-deterministically rounds up or down the used skill level such that the average integer
skill corresponds to the input floating point one. As expected, intermediate
(fractional) skill levels yield intermediate playing strenghts.

Tested at STC, playing level 10 against levels between 10 and 11 for 10000 games

level 10.25 ELO:  24.26 +-6.2
level 10.5  ELO:  67.51 +-6.3
level 10.75 ELO:  98.52 +-6.4
level 11    ELO: 143.65 +-6.7

http://tests.stockfishchess.org/tests/view/5cd9c6b40ebc5925cf056791
http://tests.stockfishchess.org/tests/view/5cd9d22b0ebc5925cf056989
http://tests.stockfishchess.org/tests/view/5cd9cf610ebc5925cf056906
http://tests.stockfishchess.org/tests/view/5cd9d2490ebc5925cf05698e

No functional change.

6 years agoIntroduce coordination between searching threads (#2204)
Joost VandeVondele [Mon, 1 Jul 2019 12:07:23 +0000]
Introduce coordination between searching threads (#2204)

this patch improves threading performance by introducing some coordination between threads.

The observation is that threading is an area where a lot of Elo can potentially be gained:
https://github.com/glinscott/fishtest/wiki/UsefulData#elo-from-threading
At STC, 8 threads gain roughly 320 Elo, vs sequential at the same time,
however, loses 66 Elo against a single thread with 8x more time.
This 66 Elo should be partially recoverable with improved threading.

To improve threading, this patch introduces some LMR at nodes that are already being searched by other threads.
This requires some coordination between threads, avoiding however synchronisation.
To do so, threads leave a trail of breadcrumbs to mark the nodes they are searching.
These breadcrumbs are stored in a small hash table, which is only probed at low plies (currently ply < 8).

A couple of variants of this patch passed both STC and LTC threaded tests.
I picked the simpler, more robust version.
I expect that further tests can find further improvements.

STC (5+0.05 @ 8 threads):
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 26209 W: 5359 L: 5079 D: 15771
http://tests.stockfishchess.org/tests/view/5d0a9b030ebc5925cf0a8e6f

LTC (20+0.2 @ 8 threads):
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 34832 W: 5650 L: 5382 D: 23800
http://tests.stockfishchess.org/tests/view/5d0c67a20ebc5925cf0aafa7

other passed/tested variants:
http://tests.stockfishchess.org/tests/view/5d0a9b030ebc5925cf0a8e6f
http://tests.stockfishchess.org/tests/view/5d0c67ca0ebc5925cf0aafa9
http://tests.stockfishchess.org/tests/view/5d0c67810ebc5925cf0aafa3
http://tests.stockfishchess.org/tests/view/5d0958ca0ebc5925cf0a74c6

For the sequential code there is no change in bench, and an earlier version of this patch passed a non-regression test.
STC (10+0.1 @ 1 thread)
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 10471 W: 2364 L: 2220 D: 5887
http://tests.stockfishchess.org/tests/view/5d087ee20ebc5925cf0a6381

passed the additional non-regression tests at 2 and 4 threads 20+0.2 TC. The code was rebased on master prior to testing.

2 threads:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 218863 W: 40927 L: 41153 D: 136783
http://tests.stockfishchess.org/tests/view/5d18c6c30ebc5925cf0b9566

4threads:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 16839 W: 3017 L: 2889 D: 10933
http://tests.stockfishchess.org/tests/view/5d18c6ea0ebc5925cf0b9568

No functional change.

6 years agoMove storm special condition to UnblockedStorm array (#2210)
protonspring [Sun, 30 Jun 2019 13:22:37 +0000]
Move storm special condition to UnblockedStorm array (#2210)

This is a functional simplification.

Looks like we can accommodate the special initialization of Value in evaluate_shelter in the UnblockedStorm array.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 32483 W: 7422 L: 7322 D: 17739
http://tests.stockfishchess.org/tests/view/5d14c5f80ebc5925cf0b48da

LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 35361 W: 6139 L: 6042 D: 23180
http://tests.stockfishchess.org/tests/view/5d14d69c0ebc5925cf0b4bd0

Bench 3596270

6 years agoTry to get a more precise bench time (#2211)
Jörg Oster [Sun, 30 Jun 2019 13:16:20 +0000]
Try to get a more precise bench time (#2211)

Initialization of larger hash sizes can take some time.
Don't include this time in the bench by resetting the timer after Search::clear().
Also move 'ucinewgame' command down in the list, so that it is processed
after the configuration of Threads and Hash size.

No functional change.

6 years agoBonus for double attacks on unsupported pawns
protonspring [Thu, 27 Jun 2019 07:45:53 +0000]
Bonus for double attacks on unsupported pawns

This is a functional change that rewards double attacks on an unsupported pawns.

STC (non-functional difference)
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 83276 W: 18981 L: 18398 D: 45897
http://tests.stockfishchess.org/tests/view/5d0970500ebc5925cf0a77d4

LTC (incomplete looping version)
LLR: 0.50 (-2.94,2.94) [0.00,3.50]
Total: 82999 W: 14244 L: 13978 D: 54777
http://tests.stockfishchess.org/tests/view/5d0a8d480ebc5925cf0a8d58

LTC (completed non-looping version).
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 223381 W: 38323 L: 37512 D: 147546
http://tests.stockfishchess.org/tests/view/5d0e80510ebc5925cf0ad320

Closes https://github.com/official-stockfish/Stockfish/pull/2205

Bench 3633546

----------------------------------

Comments by Alain SAVARD:

interesting result ! I would have expected that search would resolve such positions
correctly on the very next move. This is not a very common pattern, and when it happens,
it will quickly disappear. So I'm quite surprised that it passed LTC.
I would be even more surprised if this would resist a simplification.

Anyway, let's try to imagine a few cases.

a) If you have White d5 f5 against Black e6, and White to move
last move by Black was probably a capture on e6 and White is about to recapture on e6

b) If you have White d5 f5 against e6, and Black to move
last move by White was possibly a capture on d5 or f5
or the pawn on e6 was pinned or could not move for some reason.
and white wants to blast open the position and just pushed d4-d5 or f4-f5

Some possible follow-ups
a) Motif is so rare that the popcount() can be safely replaced with a bool()
But this would not pass a SPRT[0,4],
So try a simplification with bool() and also without the & ~theirAttacks

b) If it works, we probably can simply have this in the loop
if (lever) score += S(0, 20);

c) remove all this and tweak something in search for pawn captures (priority, SEE, extension,..)

6 years agoIntroduce attacks on space area
Vizvezdenec [Thu, 27 Jun 2019 07:21:50 +0000]
Introduce attacks on space area

This patch introduces a small malus for every square in our space mask
that is attacked by enemy. The value of the malus is completely arbitrary
and is something we can tweak, also maybe we can gain some elo with tweaking
space threshold after this addition.

Passed STC
http://tests.stockfishchess.org/tests/view/5d10ce590ebc5925cf0af30b
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 7082 W: 1648 L: 1449 D: 3985

Passed LTC
http://tests.stockfishchess.org/tests/view/5d10d2d80ebc5925cf0af3fd
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 79494 W: 13727 L: 13324 D: 52443

Closes https://github.com/official-stockfish/Stockfish/pull/2207

bench 3516460

6 years agoDo not define increment operators on Value, Depth and Direction
Sergei Ivanov [Sat, 25 May 2019 12:30:32 +0000]
Do not define increment operators on Value, Depth and Direction

These operators are never used and do not make sense for these types.

No functional change.

6 years agoImprove multiPV mode
joergoster [Thu, 27 Jun 2019 06:56:35 +0000]
Improve multiPV mode

Skip all moves during the Non-PV (zero-window) search which will be
searched as PV moves later anyways. We also wake sure the moves will
be reported to the GUI despite they're not being searched — some GUIs
may get confused otherwise, and it would unnecessarily complicate the
code.

Tested with MultiPV=4
STC
http://tests.stockfishchess.org/tests/view/5ce7137c0ebc5925cf070d69
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 8233 W: 3708 L: 3424 D: 1101

LTC
http://tests.stockfishchess.org/tests/view/5ce798d60ebc5925cf071d17
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 7369 W: 3197 L: 2911 D: 1261

Closes https://github.com/official-stockfish/Stockfish/pull/2163

No functional change. (in single PV mode)

6 years agoTweak piece values for archbishop and chancellor
Fabian Fichter [Mon, 17 Jun 2019 20:10:47 +0000]
Tweak piece values for archbishop and chancellor

capablanca STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 4702 W: 1895 L: 1747 D: 1060
http://35.161.250.236:6543/tests/view/5d07f4246e23db34f4206bee

capablanca LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 5260 W: 2022 L: 1870 D: 1368
http://35.161.250.236:6543/tests/view/5d0a560a6e23db34f4206bfe

modern STC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 2329 W: 782 L: 746 D: 801
http://35.161.250.236:6543/tests/view/5d09e6a26e23db34f4206bfc

chancellor STC
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 3677 W: 1225 L: 1197 D: 1255
http://35.161.250.236:6543/tests/view/5d07fa7b6e23db34f4206bf7

6 years agoMake the debug counters thread safe.
Joost VandeVondele [Fri, 21 Jun 2019 14:24:28 +0000]
Make the debug counters thread safe.

needed to use them in a threaded run.

No functional change.

6 years agoMerge official-stockfish/master
Fabian Fichter [Fri, 21 Jun 2019 17:29:58 +0000]
Merge official-stockfish/master

bench: 3778277

6 years agoFurther increase king tropism for drop variants
Fabian Fichter [Thu, 20 Jun 2019 20:32:10 +0000]
Further increase king tropism for drop variants

crazyhouse STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 1748 W: 909 L: 784 D: 55
http://35.161.250.236:6543/tests/view/5d0bee496e23db34f4206c11

crazyhouse LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 2033 W: 1054 L: 925 D: 54
http://35.161.250.236:6543/tests/view/5d0c0daa6e23db34f4206c14

6 years agoRewrite "More bonus for free passed pawn"
Vizvezdenec [Fri, 21 Jun 2019 08:04:31 +0000]
Rewrite "More bonus for free passed pawn"

-removes wideUnsafeSquares bitboard
-removes a couple of bitboard operations
-removes one if operator
-updates comments so they actually represent what this part of code is doing now.

passed non-regression STC
http://tests.stockfishchess.org/tests/view/5d0c1ae50ebc5925cf0aa8db
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 16892 W: 3865 L: 3733 D: 9294

No functional change

6 years agoIncrease king tropism for drop games
Fabian Fichter [Thu, 20 Jun 2019 12:29:22 +0000]
Increase king tropism for drop games

crazyhouse STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 1287 W: 688 L: 569 D: 30
http://35.161.250.236:6543/tests/view/5d0b7c646e23db34f4206c03

crazyhouse LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 982 W: 536 L: 422 D: 24
http://35.161.250.236:6543/tests/view/5d0bc5fb6e23db34f4206c0e

6 years agoMore bonus for free passed pawn
Vizvezdenec [Thu, 20 Jun 2019 00:05:57 +0000]
More bonus for free passed pawn

Give even more bonus to passed pawn if adjacent squares to its path
are not attacked.

passed STC
http://tests.stockfishchess.org/tests/view/5d08c9b10ebc5925cf0a6630
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 175197 W: 39859 L: 38816 D: 96522

passed LTC
http://tests.stockfishchess.org/tests/view/5d0ab8240ebc5925cf0a8fe4
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 92928 W: 16124 L: 15682 D: 61122

Bench: 3398333

6 years agoChange multi-cut pruning condition
Miguel Lahoz [Sat, 15 Jun 2019 06:01:02 +0000]
Change multi-cut pruning condition

Use comparison of eval with beta to predict potential cutNodes. This
allows multi-cut pruning to also prune possibly mislabeled Pv and NonPv
nodes.

STC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 54305 W: 12302 L: 11867 D: 30136
http://tests.stockfishchess.org/tests/view/5d048ba50ebc5925cf0a15e8

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 189512 W: 32620 L: 31904 D: 124988
http://tests.stockfishchess.org/tests/view/5d04bf740ebc5925cf0a17f0

Normally I would think such changes are risky, specially for PvNodes,
but after trying a few other versions, it seems this version is more
sound than I initially thought.

Aside from this, a small funtional change is made to return
singularBeta instead of beta to be more consistent with the fail-soft
logic used in other parts of search.

=============================

How to continue from there ?

We could try to audit other parts of the search where the "cutNode"
variable is used, and try to use dynamic info based on heuristic
eval rather than on this variable, to check if the idea behind this
patch could also be applied successfuly.

Bench: 3503788

6 years agoQuietPick Speed-up
VoyagerOne [Mon, 17 Jun 2019 21:35:03 +0000]
QuietPick Speed-up

Non-functional speedup: no need to generate, score, or sort quiet moves
if SkipQuiet is true. Thanks to @mstembera for his suggestion.

STC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 27910 W: 6406 L: 6129 D: 15375
http://tests.stockfishchess.org/tests/view/5d07e0920ebc5925cf0a58a8

Closes https://github.com/official-stockfish/Stockfish/pull/2194

No functional change

6 years agoFix progress issue with shuffling extensions
Joost VandeVondele [Thu, 13 Jun 2019 20:32:23 +0000]
Fix progress issue with shuffling extensions

Fixes issues #2126 and #2189 where no progress in rootDepth is made for particular fens:

8/8/3P3k/8/1p6/8/1P6/1K3n2 b - - 0 1
8/1r1rp1k1/1b1pPp2/2pP1Pp1/1pP3Pp/pP5P/P5K1/8 w - - 79 46

the cause are the shuffle extensions. Upon closer analysis, it appears that in these cases a shuffle extension is made for every node searched, and progess can not be made. This patch implements a fix, namely to limit the number of extensions relative to the number of nodes searched. The ratio employed is 1/4, which fixes the issues seen so far, but it is a heuristic, and I expect that certain positions might require an even smaller fraction.

The patch was tested as a bug fix and passed:

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 56601 W: 12633 L: 12581 D: 31387
http://tests.stockfishchess.org/tests/view/5d02b37a0ebc5925cf09f6da

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 52042 W: 8907 L: 8837 D: 34298
http://tests.stockfishchess.org/tests/view/5d0319420ebc5925cf09fe57

Furthermore, to confirm that the shuffle extension in this form indeed still brings Elo, one more test at VLTC was performed:
VLTC:
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 142022 W: 20963 L: 20435 D: 100624
http://tests.stockfishchess.org/tests/view/5d03630d0ebc5925cf0a011a

Bench: 3961247

6 years agoPartial revert of "Assorted trivial cleanups 5/2019".
syzygy1 [Tue, 18 Jun 2019 21:27:34 +0000]
Partial revert of "Assorted trivial cleanups 5/2019".

Since root_probe() and root_probe_wdl() do not reset all tbRank values if they fail,
it is necessary to do this in rank_root_move(). This fixes issue #2196.
Alternatively, the loop could be moved into both root_probe() and root_probe_wdl().

No functional change

6 years agoMerge official-stockfish/master
Fabian Fichter [Sun, 16 Jun 2019 13:58:56 +0000]
Merge official-stockfish/master

bench: 3512052

6 years agoMerge official-stockfish/master
Fabian Fichter [Sun, 16 Jun 2019 13:54:37 +0000]
Merge official-stockfish/master

No functional change.

6 years agoMerge official-stockfish/master
Fabian Fichter [Sun, 16 Jun 2019 11:54:56 +0000]
Merge official-stockfish/master

bench: 3700144

6 years agoReduce connected bonus for horde
Fabian Fichter [Sun, 16 Jun 2019 08:17:18 +0000]
Reduce connected bonus for horde

Revert parameter change caused by mis-merge.

horde STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 500 W: 302 L: 193 D: 5
http://35.161.250.236:6543/tests/view/5d05fb8b6e23db34f4206bd6

horde LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 343 W: 222 L: 116 D: 5
http://35.161.250.236:6543/tests/view/5d0603346e23db34f4206bd9

6 years agoMerge official-stockfish/master
Fabian Fichter [Sat, 15 Jun 2019 14:08:54 +0000]
Merge official-stockfish/master

bench: 3785196

6 years agoMerge official-stockfish/master
Fabian Fichter [Sat, 15 Jun 2019 13:45:57 +0000]
Merge official-stockfish/master

No functional change.

6 years agoSimplify SEE Pruning (#2191)
VoyagerOne [Fri, 14 Jun 2019 17:59:17 +0000]
Simplify SEE Pruning (#2191)

Simplify SEE Pruning
Note this should also be a speedup...
If givesCheck is extended we know (except for DC) that it will have a positive SEE. So this new logic will be triggered before doing another expensive SEE function.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 24429 W: 5484 L: 5368 D: 13577
http://tests.stockfishchess.org/tests/view/5cffbccd0ebc5925cf09a154

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 28428 W: 4873 L: 4765 D: 18790
http://tests.stockfishchess.org/tests/view/5d0015f60ebc5925cf09acb1

Bench: 3897263

6 years agoRemove backmost_sq (#2190)
protonspring [Fri, 14 Jun 2019 06:22:02 +0000]
Remove backmost_sq (#2190)

This is a non-functional simplification.

backmost_sq and frontmost_sq are redundant. It seems quite clear to always use frontmost_sq and use the correct color.

Non functional change.

6 years agoIncrease pawns cache (#2187)
Stefan Geschwentner [Fri, 14 Jun 2019 05:36:42 +0000]
Increase pawns cache (#2187)

Increase size of the pawns table by the factor 8. This decreases the number of recalculations of pawn structure information significantly (at least at LTC).

I have done measurements for different depths and pawn cache sizes.
First are given the number of pawn entry calculations are done (in parentheses is the frequency that a call to probe triggers a pawn entry calculation). The delta% are the percentage of less done pawn entry calculations in comparison to master

VSTC:   bench 1 1 12
STC:    bench 8 1 16
LTC:    bench 64 1 20
VLTC:   bench 512 1 24

            VSTC       STC         LTC          VLTC
master      82218(6%)  548935(6%)  2415422(7%)  9548071(7%)
pawncache*2 79859(6%)  492943(5%)  2084794(6%)  8275206(6%)
pawncache*4 78551(6%)  458758(5%)  1827770(5%)  7112531(5%)
pawncache*8 77963(6%)  439421(4%)  1649169(5%)  6128652(4%)

delta%(p2-m)  -2.9%      -10.2%      -13.7%       -13.3%
delta%(p4-m)  -4.5%      -16.4%      -24.3%       -25.5%
delta%(p8-m)  -5.2%      -20.0%      -31.7%       -35.8%

STC: (non-regression test because at STC the effect is smaller than at LTC)
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 22767 W: 5160 L: 5040 D: 12567
http://tests.stockfishchess.org/tests/view/5d00f6040ebc5925cf09c3e2

LTC:
LLR: 2.94 (-2.94,2.94) [0.00,4.00]
Total: 26340 W: 4524 L: 4286 D: 17530
http://tests.stockfishchess.org/tests/view/5d00a3810ebc5925cf09ba16

No functional change.

6 years agoMerge official-stockfish/master
Fabian Fichter [Thu, 13 Jun 2019 20:26:10 +0000]
Merge official-stockfish/master

bench: 3468545

6 years agoMerge official-stockfish/master
Fabian Fichter [Thu, 13 Jun 2019 20:09:05 +0000]
Merge official-stockfish/master

No functional change.

6 years agoNo DC prune in QS (#2185)
VoyagerOne [Sun, 9 Jun 2019 22:26:47 +0000]
No DC prune in QS (#2185)

Don't prune discover checks in qSearch

STC:
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 23176 W: 5320 L: 5039 D: 12817
http://tests.stockfishchess.org/tests/view/5cfbc9350ebc5925cf094ab3

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 128428 W: 22222 L: 21679 D: 84527
http://tests.stockfishchess.org/tests/view/5cfbf0b70ebc5925cf094ebc

Bench: 3883245

6 years agoAssorted trivial cleanups 5/2019
Marco Costalba [Thu, 2 May 2019 17:36:25 +0000]
Assorted trivial cleanups 5/2019

No functional change.

bench: 4178282

6 years agoRemove depth condition for ttPv (#2166)
Stefan Geschwentner [Sun, 9 Jun 2019 12:34:51 +0000]
Remove depth condition for ttPv (#2166)

Currently PV nodes with a depth <= 4 were ignored for ttPv. Now remove this constraint and use all PV nodes.

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 52209 W: 11755 L: 11694 D: 28760
http://tests.stockfishchess.org/tests/view/5cebc2d30ebc5925cf07b93a

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 20874 W: 3689 L: 3568 D: 13617
http://tests.stockfishchess.org/tests/view/5cec01fc0ebc5925cf07c62d

6 years agoSimplify passed pawns. (#2159)
protonspring [Sun, 9 Jun 2019 12:33:34 +0000]
Simplify passed pawns. (#2159)

This is a functional simplification.

If all of the stoppers are levers, a simple pawn push passes.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 41768 W: 9360 L: 9278 D: 23130
http://tests.stockfishchess.org/tests/view/5ce82ed60ebc5925cf073a79

LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 40463 W: 6964 L: 6875 D: 26624
http://tests.stockfishchess.org/tests/view/5ce87d0b0ebc5925cf07472b

6 years agoRemove a few file_of's (simplify adjacent_files_bb) #2171
protonspring [Sun, 9 Jun 2019 12:31:16 +0000]
Remove a few file_of's (simplify adjacent_files_bb) #2171

This is a non-functional simplification that removes two file_of(s).

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 22030 W: 5106 L: 4984 D: 11940
http://tests.stockfishchess.org/tests/view/5cf028de0ebc5925cf0839e7

6 years agoSimplify WeakUnopposedPawn #2181
protonspring [Sun, 9 Jun 2019 12:28:42 +0000]
Simplify WeakUnopposedPawn #2181

This is a functional simplification.

Moves WeakUnopposedPawn to pawns.cpp and remove piece dependency.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 8699 W: 2000 L: 1853 D: 4846
http://tests.stockfishchess.org/tests/view/5cf7721b0ebc5925cf08ee79

LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 46605 W: 7969 L: 7890 D: 30746
http://tests.stockfishchess.org/tests/view/5cf7d5f70ebc5925cf08fa96

6 years agoSEE Pruning Tweak (#2183)
VoyagerOne [Sun, 9 Jun 2019 12:27:50 +0000]
SEE Pruning Tweak (#2183)

Don't SEE prune any check extensions

STC (yellow):
LLR: -2.96 (-2.94,2.94) [0.50,4.50]
Total: 129934 W: 29390 L: 28905 D: 71639
http://tests.stockfishchess.org/tests/view/5cf6b1a70ebc5925cf08dedb

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 102115 W: 17692 L: 17224 D: 67199
http://tests.stockfishchess.org/tests/view/5cf830710ebc5925cf090331

6 years agoAdvanced pawn pushes tweak (#2175)
Michael Chaly [Sun, 9 Jun 2019 12:26:53 +0000]
Advanced pawn pushes tweak (#2175)

passed STC
http://tests.stockfishchess.org/tests/view/5cf586ee0ebc5925cf08c0ed
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 29496 W: 6718 L: 6406 D: 16372

passed LTC
http://tests.stockfishchess.org/tests/view/5cf59b630ebc5925cf08c343
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 40778 W: 7057 L: 6765 D: 26956

original idea from early 2018 by @jerrydonaldwatson
Code slightly rewritten to be shorter and more logical, no functinal changes
compared to passed patch.

6 years agoSimplify Outposts #2176
protonspring [Mon, 3 Jun 2019 13:16:33 +0000]
Simplify Outposts #2176

This is a functional simplification. This is NOT the exact version that was tested. Beyond the testing, an assignment was removed and a piece changes for consistency.

Instead of rewarding ANY square past an opponent pawn as an "outpost," only use squares that are protected by our pawn. I believe this is more consistent with what the chess world calls an "outpost."

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 23540 W: 5387 L: 5269 D: 12884
http://tests.stockfishchess.org/tests/view/5cf51e6d0ebc5925cf08b823

LTC
LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 53085 W: 9271 L: 9204 D: 34610
http://tests.stockfishchess.org/tests/view/5cf5279e0ebc5925cf08b992

bench 3424592

6 years agoSimplify k-value for passers. Bench: 3854907 (#2182)
31m059 [Sun, 9 Jun 2019 12:19:07 +0000]
Simplify k-value for passers. Bench: 3854907 (#2182)

Stockfish evaluates passed pawns in part based on a variable k, which shapes the passed pawn bonus based on the number of squares between the current square and promotion square that are attacked by enemy pieces, and the number defended by friendly ones. Prior to this commit, we gave a large bonus when all squares between the pawn and the promotion square were defended, and if they were not, a somewhat smaller bonus if at least the pawn's next square was. However, this distinction does not appear to provide any Elo at STC or LTC.

Where do we go from here? Many promising Elo-gaining patches were attempted in the past few months to refine passed pawn calculation, by altering the definitions of unsafe and defended squares. Stockfish uses these definitions to choose the value of k, so those tests interact with this PR. Therefore, it may be worthwhile to retest previously promising but not-quite-passing tests in the vicinity of this patch.

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 42344 W: 9455 L: 9374 D: 23515
http://tests.stockfishchess.org/tests/view/5cf83ede0ebc5925cf0904fb

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 69548 W: 11855 L: 11813 D: 45880
http://tests.stockfishchess.org/tests/view/5cf8698f0ebc5925cf0908c8

Bench: 3854907

6 years agoScale lazy threshold according to material. (#2170)
protonspring [Fri, 31 May 2019 12:35:39 +0000]
Scale lazy threshold according to material. (#2170)

STC
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 58543 W: 13238 L: 12782 D: 32523
http://tests.stockfishchess.org/tests/view/5cef3efa0ebc5925cf081f07

LTC
LLR: 3.70 (-2.94,2.94) [0.00,3.50]
Total: 82232 W: 14281 L: 13825 D: 54126
http://tests.stockfishchess.org/tests/view/5cef595d0ebc5925cf082441

bench 3807737

6 years agoSimplify semiopen_file (#2165)
protonspring [Wed, 29 May 2019 08:00:32 +0000]
Simplify semiopen_file (#2165)

This is a non-functional simplification. Since our file_bb handles either Files or Squares, using Square here removes some code. Not likely any performance difference despite the test.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 6081 W: 1444 L: 1291 D: 3346
http://tests.stockfishchess.org/tests/view/5ceb3e2e0ebc5925cf07ab03

Non functional change.

6 years agoTweak connected bonus for drop variants
Fabian Fichter [Fri, 24 May 2019 17:40:26 +0000]
Tweak connected bonus for drop variants

crazyhouse STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 5584 W: 2806 L: 2626 D: 152
http://35.161.250.236:6543/tests/view/5ce82ccd6e23db34f4206b26

crazyhouse LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 2588 W: 1324 L: 1187 D: 77
http://35.161.250.236:6543/tests/view/5ceac7766e23db34f4206b3d

6 years agoTweak connected bonus for horde chess
Fabian Fichter [Fri, 24 May 2019 17:55:16 +0000]
Tweak connected bonus for horde chess

horde STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 443 W: 273 L: 165 D: 5
http://35.161.250.236:6543/tests/view/5ce8fc696e23db34f4206b38

horde LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 394 W: 250 L: 142 D: 2
http://35.161.250.236:6543/tests/view/5ce914f66e23db34f4206b3b

6 years agoRemove one division. (#2158)
Joost VandeVondele [Sat, 25 May 2019 07:43:52 +0000]
Remove one division. (#2158)

Can be included in the earlier calculation, with a small rounding difference.

passed STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 17912 W: 4044 L: 3915 D: 9953
http://tests.stockfishchess.org/tests/view/5ce711f90ebc5925cf070d0e

passed LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 56061 W: 9579 L: 9516 D: 36966
http://tests.stockfishchess.org/tests/view/5ce716820ebc5925cf070e37

Bench: 3817662

6 years agoFix #21 bitboard operations for MSVC
Fabian Fichter [Mon, 6 May 2019 18:24:37 +0000]
Fix #21 bitboard operations for MSVC

No functional change for other compilers.

6 years agoReduce memory consumption of continuation history
Fabian Fichter [Sun, 5 May 2019 16:12:04 +0000]
Reduce memory consumption of continuation history

No functional change for standard chess.

6 years agoLess LMR for losing chess variants
Fabian Fichter [Sat, 18 May 2019 08:04:38 +0000]
Less LMR for losing chess variants

giveaway STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 555 W: 269 L: 176 D: 110
http://35.161.250.236:6543/tests/view/5cdfbcee6e23db34f4206af7

giveaway LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 1321 W: 557 L: 456 D: 308
http://35.161.250.236:6543/tests/view/5cdfd1a26e23db34f4206afc

losers STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 929 W: 484 L: 375 D: 70
http://35.161.250.236:6543/tests/view/5cdfbd0f6e23db34f4206afa

losers LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 1153 W: 573 L: 463 D: 117
http://35.161.250.236:6543/tests/view/5cdfd1b06e23db34f4206afe

6 years agoMerge official-stockfish/master
Fabian Fichter [Fri, 17 May 2019 12:59:32 +0000]
Merge official-stockfish/master

bench: 3293925

6 years agoFix passed pawn evaluation
Fabian Fichter [Fri, 17 May 2019 13:21:47 +0000]
Fix passed pawn evaluation

No functional change for variants with promotion rank equal to 8.

6 years agoFix CTF bonus for large-board version
Fabian Fichter [Thu, 16 May 2019 19:09:25 +0000]
Fix CTF bonus for large-board version

racingkings STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 179 W: 120 L: 32 D: 27
http://35.161.250.236:6543/tests/view/5cddb8176e23db34f4206acd

racingkings LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 242 W: 149 L: 58 D: 35
http://35.161.250.236:6543/tests/view/5cddb83b6e23db34f4206ad0

6 years agoAllow RQ through pieces. Bench: 3415326 (#2153)
31m059 [Fri, 17 May 2019 11:38:23 +0000]
Allow RQ through pieces. Bench: 3415326 (#2153)

We evaluate defended and unsafe squares for a passed pawn push based on friendly and enemy rooks and queens on the passed pawn's file. Prior to this patch, we further required that these rooks and queens be able to directly attack the passed pawn. However, this restriction appears unnecessary and worth almost exactly 0 Elo at LTC.

The simplified code allows rooks and queens to attack/defend the passed pawn through other pieces of either color.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 29019 W: 6488 L: 6381 D: 16150
http://tests.stockfishchess.org/tests/view/5cdcf7270ebc5925cf05d30c

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 54224 W: 9200 L: 9133 D: 35891
http://tests.stockfishchess.org/tests/view/5cddc6210ebc5925cf05eca3

Bench: 3415326

6 years agoRemove unused code (#2150)
svivanov72 [Thu, 16 May 2019 12:14:11 +0000]
Remove unused code (#2150)

Remove an unused operator in has_game_cycle (thanks @vondele)
and modify its comment to explain other code.

No functional change.

6 years agoScore and Select Best Thread in same loop (#2125)
protonspring [Thu, 16 May 2019 12:13:16 +0000]
Score and Select Best Thread in same loop (#2125)

This is a non-functional simplification that combines vote counting and thread selecting in the same loop.

It is possible that the best thread would be updated more frequently than master, but I'm not sure it matters here. Perhaps "mostVotes" is a better name than "bestVote?"

STC (stopped early).
LLR: 0.70 (-2.94,2.94) [-3.00,1.00]
Total: 10714 W: 2329 L: 2311 D: 6074
http://tests.stockfishchess.org/tests/view/5ccc71470ebc5925cf03d244

No functional change.

6 years agoConsolidate some code in set_state. (#2151)
protonspring [Thu, 16 May 2019 12:11:00 +0000]
Consolidate some code in set_state. (#2151)

Non functional change.

6 years agoSupport capablanca random chess
Fabian Fichter [Tue, 14 May 2019 20:55:33 +0000]
Support capablanca random chess

https://en.wikipedia.org/wiki/Capablanca_Random_Chess

6 years agoTweak fairy piece values
Fabian Fichter [Mon, 13 May 2019 16:26:23 +0000]
Tweak fairy piece values

capablanca STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 344 W: 187 L: 96 D: 61
http://35.161.250.236:6543/tests/view/5cd99b016e23db34f4206ab0

capablanca LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 345 W: 192 L: 99 D: 54
http://35.161.250.236:6543/tests/view/5cd9ab846e23db34f4206abd

courier STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 162 W: 92 L: 18 D: 52
http://35.161.250.236:6543/tests/view/5cd99b206e23db34f4206ab3

courier LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 144 W: 80 L: 11 D: 53
http://35.161.250.236:6543/tests/view/5cd9ac0b6e23db34f4206abf