fairystockfish.git
6 years agoSet castling rights only if enabled
Fabian Fichter [Mon, 14 Oct 2019 16:24:27 +0000]
Set castling rights only if enabled

Makes FEN parsing more robust and allows to support S-Chess without castling.

6 years agoFix compiler warnings for large-board version
Fabian Fichter [Mon, 14 Oct 2019 13:58:46 +0000]
Fix compiler warnings for large-board version

No functional change.

6 years agoAmendment for documentation update (#30)
Fabian Fichter [Fri, 11 Oct 2019 13:14:19 +0000]
Amendment for documentation update (#30)

6 years agoExtend variant INI documentation (#30)
Fabian Fichter [Fri, 11 Oct 2019 13:07:50 +0000]
Extend variant INI documentation (#30)

6 years agoFix pseudo-legal move validation (close #35)
Fabian Fichter [Mon, 7 Oct 2019 19:36:47 +0000]
Fix pseudo-legal move validation (close #35)

sittuyin STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 126 W: 60 L: 2 D: 64
http://35.161.250.236:6543/tests/view/5d9b94916e23db3768ec08f3

sittuyin LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 111 W: 58 L: 1 D: 52
http://35.161.250.236:6543/tests/view/5d9b9f566e23db3768ec08fd

bench: 3686859

6 years agoSupport generation of SFEN (gbtami/pychess-variants#36)
Fabian Fichter [Thu, 3 Oct 2019 14:58:20 +0000]
Support generation of SFEN (gbtami/pychess-variants#36)

Report SFEN next to FEN in the "d" command.

6 years agoSupport Makrukhouse (Makruk+Crazyhouse hybrid)
Fabian Fichter [Wed, 2 Oct 2019 21:56:51 +0000]
Support Makrukhouse (Makruk+Crazyhouse hybrid)

6 years agoSpeed up move picking for losing chess
Fabian Fichter [Fri, 27 Sep 2019 07:31:08 +0000]
Speed up move picking for losing chess

giveaway STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 403 W: 203 L: 114 D: 86
http://35.161.250.236:6543/tests/view/5d93a8726e23db3768ec087a

giveaway LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 369 W: 178 L: 93 D: 98
http://35.161.250.236:6543/tests/view/5d93be896e23db3768ec088a

losers STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 539 W: 290 L: 190 D: 59
http://35.161.250.236:6543/tests/view/5d93a8fd6e23db3768ec087d

losers LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 604 W: 314 L: 214 D: 76
http://35.161.250.236:6543/tests/view/5d93be916e23db3768ec088c

codrus STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 857 W: 477 L: 364 D: 16
http://35.161.250.236:6543/tests/view/5d93a9126e23db3768ec087f

6 years agoMake drop region constraint more explicit
Fabian Fichter [Tue, 1 Oct 2019 20:07:06 +0000]
Make drop region constraint more explicit

No functional change.

6 years agoSupport "coffeehouse" chess
Fabian Fichter [Fri, 27 Sep 2019 07:01:31 +0000]
Support "coffeehouse" chess

Crazyhouse with mandatory captures.

6 years agoDo not consider quiet moves as attacks
Fabian Fichter [Thu, 26 Sep 2019 18:46:32 +0000]
Do not consider quiet moves as attacks

Fix attack bitboard calculation for hoppelpoppel-style pieces.

hoppelpoppel STC
LLR: 2.94 (-2.94,2.94) [0.00,10.00]
Total: 863 W: 335 L: 247 D: 281
http://35.161.250.236:6543/tests/view/5d8d0ab36e23db3768ec085c

hoppelpoppel LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 717 W: 271 L: 187 D: 259
http://35.161.250.236:6543/tests/view/5d8d0d8f6e23db3768ec085f

chess STC
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 1338 W: 317 L: 279 D: 742
http://35.161.250.236:6543/tests/view/5d8d16766e23db3768ec0861

6 years agoUse shuffle extension only with N-move rule
Fabian Fichter [Thu, 19 Sep 2019 18:48:16 +0000]
Use shuffle extension only with N-move rule

makruk STC
LLR: 4.58 (-2.94,2.94) [-10.00,5.00]
Total: 3656 W: 314 L: 264 D: 3078
http://35.161.250.236:6543/tests/view/5d83cf5e6e23db3768ec083c

makruk LTC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 3645 W: 268 L: 238 D: 3139
http://35.161.250.236:6543/tests/view/5d8a510d6e23db3768ec0854

6 years agoSkip updating history of reverse move for drops
Fabian Fichter [Wed, 18 Sep 2019 19:55:14 +0000]
Skip updating history of reverse move for drops

crazyhouse STC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 3523 W: 1731 L: 1690 D: 102
http://35.161.250.236:6543/tests/view/5d83cf716e23db3768ec083e

6 years agoFix pos_is_ok for castling with non-king piece
Fabian Fichter [Fri, 20 Sep 2019 15:59:44 +0000]
Fix pos_is_ok for castling with non-king piece

No functional change.

6 years agoSupport peasant revolt
Fabian Fichter [Fri, 20 Sep 2019 14:26:47 +0000]
Support peasant revolt

6 years agoList variant configuration options in INI (#30)
Fabian Fichter [Thu, 19 Sep 2019 19:58:13 +0000]
List variant configuration options in INI (#30)

6 years agoFilter invalid moves early
Fabian Fichter [Sun, 1 Sep 2019 18:50:36 +0000]
Filter invalid moves early

No functional change.

6 years agoUpdate readme
Fabian Fichter [Thu, 19 Sep 2019 13:02:00 +0000]
Update readme

6 years agoRevert "Fix #29: Increase stack limit for mingw"
Fabian Fichter [Tue, 17 Sep 2019 19:09:21 +0000]
Revert "Fix #29: Increase stack limit for mingw"

This reverts commit 9085d6831bf9cabc8f1ff6edc15b9ba0b0c2f6b4.

No longer required due to fix merged from upstream.

6 years agoMerge official-stockfish/master
Fabian Fichter [Mon, 16 Sep 2019 19:55:09 +0000]
Merge official-stockfish/master

bench: 3815926

6 years agoRaise stack size to 8MB for pthreads
noobpwnftw [Sat, 14 Sep 2019 16:18:10 +0000]
Raise stack size to 8MB for pthreads

It seems there is no other way to specify stack size on std::thread than linker
flags and the effective flags are named differently in many toolchains. On
toolchains where pthread is always available, this patch changes the stack
size change in our C++ code via pthread to ensure a minimum stack size of 8MB,
instead of relying on linker defaults which may be platform-specific.

Also raises default stack size on OSX to current Linux default (8MB) just to
be safe.

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

No functional change

6 years agoScale down endgame factor when shuffling
Stéphane Nicolet [Sun, 15 Sep 2019 21:18:54 +0000]
Scale down endgame factor when shuffling

This patch decreases the endgame scale factor using the 50 moves counter.
Looking at some games with this patch, it seems to have two effects on
the playing style:

1) when no progress can be made in late endgames (for instance in fortresses
   or opposite bishops endgames) the evaluation will be largely tamed down
   towards a draw value.

2) more interestingly, there is also a small effect in the midgame play because
   Stockfish will panic a little bit if there are more than four consecutive
   shuffling moves with an advantage: the engine will try to move a pawn or to
   exchange a piece to keep the advantage, so the follow-ups of the position
   will be discovered earlier by the alpha-beta search.

passed STC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 23017 W: 5080 L: 4805 D: 13132
http://tests.stockfishchess.org/tests/view/5d7e4aef0ebc59069c36fc74

passed LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 30746 W: 5171 L: 4911 D: 20664
http://tests.stockfishchess.org/tests/view/5d7e513d0ebc59069c36ff26

Pull request: https://github.com/official-stockfish/Stockfish/pull/2304

Bench: 4272173

6 years agoIntroduce midgame initiative
Vizvezdenec [Sat, 14 Sep 2019 22:32:39 +0000]
Introduce midgame initiative

This patch finally introduces something that was tried for years: midgame score
dependance on complexity of position. More precisely, if the position is very
simplified and the complexity measure calculated in the initiative() function
is inferior to -50 by an amount d, then we add this value d to the midgame score.

One example of play of this patch will be (again!) 4 vs 3 etc same flank endgames
where sides have a lot of non-pawn material: 4 vs 3 draw mostly remains the same
draw even if we add a lot of equal material to both sides.

STC run was stopped after 200k games (and not converging):
LLR: -1.75 (-2.94,2.94) [0.50,4.50]
Total: 200319 W: 44197 L: 43310 D: 112812
http://tests.stockfishchess.org/tests/view/5d7cfdb10ebc5902d386572c

passed LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 41051 W: 6858 L: 6570 D: 27623
http://tests.stockfishchess.org/tests/view/5d7d14680ebc5902d3866196

This is the first and not really precise version, a lot of other stuff can be
tried on top of it (separate complexity for middlegame, some more terms, even
simple retuning of values).

Bench: 4248476

6 years agoAssorted trivial cleanups
Stéphane Nicolet [Sat, 14 Sep 2019 06:33:00 +0000]
Assorted trivial cleanups

No functional change

6 years agoUse queens of either color in RookOnQueenFile
31m059 [Fri, 13 Sep 2019 19:46:05 +0000]
Use queens of either color in RookOnQueenFile

The recently-added RookOnQueenFile evaluation term (36e4a86) provided a bonus
for placing our rook on the same file as an enemy queen.

Here, we relax a condition in this bonus, broadening its effect to any queen.
It is also strategically desirable to place the rook on the same file as a friendly
queen, so the restriction on the queen's color is removed.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 66856 W: 14847 L: 14815 D: 37194
http://tests.stockfishchess.org/tests/view/5d7b3c6a0ebc5902d385bcf5

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 86786 W: 14264 L: 14248 D: 58274
http://tests.stockfishchess.org/tests/view/5d7b4e9b0ebc5902d385c178

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

Bench: 3703909

6 years agoUpdate Makefile documentation
Stéphane Nicolet [Sat, 14 Sep 2019 05:33:48 +0000]
Update Makefile documentation

Follow-up to previous commit. Update the documentation for the user when using `make`,
to show the preferred bmi2 compile in the advanced examples section.

Note: I made a mistake in the previous commit comment, the documentation is shown when
using `make` or `make help`, not `make --help`.

No functional change

6 years agoAdd sse4 if bmi2 is enabled
Joost VandeVondele [Thu, 12 Sep 2019 19:25:58 +0000]
Add sse4 if bmi2 is enabled

The only change done to the Makefile to get a somewhat faster binary as
discussed in #2291 is to add -msse4 to the compile options of the bmi2 build.
Since all processors supporting bmi2 also support sse4 this can be done easily.
It is a useful step to avoid sending around custom and poorly tested builds.

The speedup isn't enough to pass [0,4] but it is roughly 1.15Elo and a LOS of 90%:
LLR: -2.95 (-2.94,2.94) [0.00,4.00]
Total: 93009 W: 20519 L: 20316 D: 52174

Also rewrite the documentation for the user when using `make --help`, so that
the order of architectures for x86-64 has the more performant build one on top.

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

No functional change

6 years agoScale down complexity for almost unwinnable endgames
Vizvezdenec [Thu, 12 Sep 2019 03:43:04 +0000]
Scale down complexity for almost unwinnable endgames

This patch greatly scales down complexity of endgames when the
following conditions are all true together:

- pawns are all on one flank
- stronger side king is not outflanking weaker side
- no passed pawns are present

This should improve stockfish evaluation of obvious draws 4 vs 3, 3 vs 2
and 2 vs 1 pawns in rook/queen/knight/bishop single flank endgames where
strong side can not make progress.

passed STC
LLR: 2.94 (-2.94,2.94) [0.50,4.50]
Total: 15843 W: 3601 L: 3359 D: 8883

passed LTC
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 121275 W: 20107 L: 19597 D: 81571

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

Bench: 3954190

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

How to continue from there?

a) This could be a powerful idea for refining some parts of the evaluation
   function, a bit like when we try quadratics or other equations to emphasize
   certain situations (xoto10).

b) Some other combinaison values for this bonus can be done further, or
   overall retuning of weight and offset while keeping the formula simple.

6 years agoBonus for rook on same file as their queen
xoto10 [Thu, 12 Sep 2019 03:29:23 +0000]
Bonus for rook on same file as their queen

This patch creates a simple bonus for a rook that is on the same file as the
opponent's queen.

STC 10+0.1 th 1 :
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 45609 W: 10120 L: 9733 D: 25756
http://tests.stockfishchess.org/tests/view/5d79895a0ebc5902d385484a

LTC 60+0.6 th 1 :
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 51651 W: 8606 L: 8288 D: 34757
http://tests.stockfishchess.org/tests/view/5d79a0850ebc5902d3854d27

Many thanks to @noobpwnftw for providing the extra cpu resources for fishtest,
which led to me doing these tests.

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

Bench: 4024461

6 years agoSimplify Weak Lever
protonspring [Wed, 11 Sep 2019 18:36:58 +0000]
Simplify Weak Lever

This is a simplification that integrated WeakLever into doubled pawns.
Since we already check for !support for Doubled pawns, it is trivial
to check for weak lever by just checking more_than_one(lever).

We also introduce the Score * bool operation overload to remove some
casts in the code.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 26757 W: 5842 L: 5731 D: 15184
http://tests.stockfishchess.org/tests/view/5d77ee220ebc5902d384e5a4

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

No functional change

6 years agoUpdate reverse move stats
Stefan Geschwentner [Wed, 11 Sep 2019 11:46:08 +0000]
Update reverse move stats

For a good quiet non-pawn move consider the reverse move as bad
and update the main history with a negative stat bonus.

STC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 19292 W: 4401 L: 4141 D: 10750
http://tests.stockfishchess.org/tests/view/5d7751d50ebc594e7864973c

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 111952 W: 18762 L: 18275 D: 74915
http://tests.stockfishchess.org/tests/view/5d7771cf0ebc594e786498fa

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

Bench: 3914238

6 years agoFix pseudo-legal move validation for microshogi
Fabian Fichter [Sun, 1 Sep 2019 14:00:38 +0000]
Fix pseudo-legal move validation for microshogi

- Fix validation of dropped promoted piece.
- Fix validation of mandatory promotion and demotion.

6 years agoSupport reading variants from configuration file
Fabian Fichter [Fri, 30 Aug 2019 17:22:30 +0000]
Support reading variants from configuration file

Read variants from INI-style configuration file in order to
support user-defined variants without requiring recompilation.

6 years agoTweak piece values of silver and gold
Fabian Fichter [Wed, 28 Aug 2019 19:49:51 +0000]
Tweak piece values of silver and gold

minishogi
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 1794 W: 958 L: 830 D: 6

makruk STC
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 844 W: 99 L: 63 D: 682
http://35.161.250.236:6543/tests/view/5d66db396e23db3768ec07a8

makruk LTC
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 1269 W: 115 L: 80 D: 1074
http://35.161.250.236:6543/tests/view/5d676dfd6e23db3768ec07ae

sittuyin STC
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 1150 W: 206 L: 169 D: 775
http://35.161.250.236:6543/tests/view/5d66db566e23db3768ec07ac

6 years agoRedefine passed pawns for sittuyin
Fabian Fichter [Tue, 27 Aug 2019 19:00:20 +0000]
Redefine passed pawns for sittuyin

sittuyin STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 500 W: 112 L: 48 D: 340
http://35.161.250.236:6543/tests/view/5d657e296e23db3768ec0791

sittuyin LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 454 W: 101 L: 38 D: 315
http://35.161.250.236:6543/tests/view/5d65a2566e23db3768ec079f

6 years agoFix #29: Increase stack limit for mingw
Fabian Fichter [Sat, 24 Aug 2019 10:57:44 +0000]
Fix #29: Increase stack limit for mingw

6 years agoTweak Late Move Reduction at root
Stefan Geschwentner [Sun, 25 Aug 2019 19:45:58 +0000]
Tweak Late Move Reduction at root

Maintain best move counter at the root and allow there only moves which has a counter
of zero for Late Move Reduction. For compensation only the first three moves are excluded
from Late Move Reduction per default instead the first four moves.

What we can further do:

- here we use a simple counting scheme but perhaps some aging to fade out early iterations
  could be helpful
- use the best move counter also at inner nodes for LMR and/or pruning

STC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 17414 W: 3984 L: 3733 D: 9697
http://tests.stockfishchess.org/tests/view/5d6234bb0ebc5939d09f2aa2

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 38058 W: 6448 L: 6166 D: 25444
http://tests.stockfishchess.org/tests/view/5d62681a0ebc5939d09f2f27

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

Bench: 3568210

6 years agoNMP Tweaks
VoyagerOne [Thu, 15 Aug 2019 00:46:09 +0000]
NMP Tweaks

Tweak again the null move pruning preconditions.

STC:
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 19675 W: 4430 L: 4169 D: 11076
http://tests.stockfishchess.org/tests/view/5d52bc0e0ebc5925cf108300

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 73895 W: 12496 L: 12114 D: 49285
http://tests.stockfishchess.org/tests/view/5d52dcbc0ebc5925cf108552

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

Bench: 3690065

6 years agoImprove signature of evaluate_shelter()
protonspring [Sat, 24 Aug 2019 06:16:20 +0000]
Improve signature of evaluate_shelter()

Remove one parameter in function evaluate_shelter(), making all
comparisons for castled/uncastled shelter locally in do_king_safety().
Also introduce BlockedStorm penalty.

Passed non-regression test at STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 65864 W: 14630 L: 14596 D: 36638
http://tests.stockfishchess.org/tests/view/5d5fc80c0ebc5939d09f0acc

No functional change

6 years agoSupport seirawan-crazyhouse
Fabian Fichter [Wed, 14 Aug 2019 20:04:36 +0000]
Support seirawan-crazyhouse

6 years agoConsolidate CastlingSide and CastlingRights
protonspring [Mon, 12 Aug 2019 14:42:28 +0000]
Consolidate CastlingSide and CastlingRights

This is a non-functional simplification that removes CastlingSide and
implements the functionality in CastlingRights (thanks to Jörg Oster
for a comment on the first version of this patch).

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 53854 W: 12077 L: 12019 D: 29758
http://tests.stockfishchess.org/tests/view/5d517b940ebc5925cf107474

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

No functional change

6 years agoSimplify futility equation
protonspring [Thu, 22 Aug 2019 14:27:26 +0000]
Simplify futility equation

This is a functional simplification. The 178 constant for the futility equation
in master can be removed.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 42626 W: 9508 L: 9428 D: 23690
http://tests.stockfishchess.org/tests/view/5d5d4e320ebc5925cf11254e

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 26182 W: 4432 L: 4320 D: 17430
http://tests.stockfishchess.org/tests/view/5d5df70d0ebc5925cf112fee

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

Bench: 3985701

6 years agoIncrease stack size for Windows and macOS (#29)
Fabian Fichter [Wed, 21 Aug 2019 19:13:38 +0000]
Increase stack size for Windows and macOS (#29)

Account for recent increase of stack usage.

6 years agoLate move reduction, captures and CUT nodes
Vizvezdenec [Wed, 21 Aug 2019 05:30:48 +0000]
Late move reduction, captures and CUT nodes

Expand of Stefan Geschwentner's original idea: we always do LMR for captures at cutnodes.

Passed STC
http://tests.stockfishchess.org/tests/view/5d5b2f8e0ebc5925cf1111b8
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 36026 W: 8122 L: 7779 D: 20125

Passed LTC
http://tests.stockfishchess.org/tests/view/5d5b40c80ebc5925cf111353
LLR: 3.22 (-2.94,2.94) [0.00,3.50]
Total: 133502 W: 22508 L: 21943 D: 89051

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

Bench: 3494372

6 years agoTuned Futility Equation
protonspring [Wed, 21 Aug 2019 01:52:18 +0000]
Tuned Futility Equation

@Vizvezdenec array suggested that alternate values may be better than current
master (see pull request #2270 ). I tuned some linear equations to more closely
represent his values and it passed. These futility values seem quite sensitive,
so perhaps additional Elo improvements can be found here.

STC
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 12257 W: 2820 L: 2595 D: 6842
http://tests.stockfishchess.org/tests/view/5d5b2f360ebc5925cf1111ac

LTC
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 20273 W: 3497 L: 3264 D: 13512
http://tests.stockfishchess.org/tests/view/5d5c0d250ebc5925cf111ac3

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

------------------------------------------
How to continue from there ?

a) we can try a simpler version for the futility margin, this would
   be a simplification :
    margin = 188 * (depth - improving)

b) on the other direction, we can try a complexification by trying
   again to gain Elo with an complete array of futility values.

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

Bench: 4330402

6 years agoSlight speep up fetching the endgame table
Jean Gauthier [Wed, 14 Aug 2019 12:44:21 +0000]
Slight speep up fetching the endgame table

Replace calls to count(key) + operator[key] with a single call to find(key).
Replace the std::map with std::unordered_map which provide O(1) access,
although the map has a really small number of objects.

Test with [0..4] failed yellow:

TC 10+0.1
SPRT elo0: 0.00  alpha: 0.05  elo1: 4.00  beta: 0.05
LLR -2.96 [-2.94,2.94] (rejected)
Elo 1.01 [-0.87,3.08] (95%)
LOS 85.3%
Games 71860 [w:22.3%, l:22.2%, d:55.5%]
http://tests.stockfishchess.org/tests/view/5d5432210ebc5925cf109d61

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

No functional change

6 years agoFix pawn double-step move validation
Fabian Fichter [Tue, 20 Aug 2019 21:25:59 +0000]
Fix pawn double-step move validation

6 years agoSupport gardner's minichess
Fabian Fichter [Fri, 16 Aug 2019 18:49:46 +0000]
Support gardner's minichess

https://en.wikipedia.org/wiki/Minichess#5%C3%975_chess

6 years agoSupport grand chess
Fabian Fichter [Fri, 16 Aug 2019 16:15:59 +0000]
Support grand chess

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

6 years agoPrevent out-of-bound array accesses
Fabian Fichter [Fri, 16 Aug 2019 17:09:19 +0000]
Prevent out-of-bound array accesses

Squares outside of board were used in following scenarios:
- Passed pawn evaluation of unpromoted pawns on last rank (e.g., in sittuyin)
- SEE pruning of check evading drops in qsearch

6 years agoBonus for safe CTF squares
Fabian Fichter [Tue, 13 Aug 2019 18:17:41 +0000]
Bonus for safe CTF squares

kingofthehill STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 2289 W: 1043 L: 921 D: 325
http://35.161.250.236:6543/tests/view/5d52ff166e23db34f4206d8e

kingofthehill STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 4480 W: 1967 L: 1815 D: 698
http://35.161.250.236:6543/tests/view/5d5307c46e23db34f4206d91

6 years agoAssorted trivial cleanups (July 2019)
Alain SAVARD [Wed, 14 Aug 2019 20:15:41 +0000]
Assorted trivial cleanups (July 2019)

No functional change

6 years agoTweak unsafe checks
Stefan Geschwentner [Wed, 14 Aug 2019 08:02:21 +0000]
Tweak unsafe checks

Remove mobility area for unsafe checks. Also separate the evaluation terms
for unsafe checks and blockers for king with adjusted weights.

STC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 124526 W: 28292 L: 27504 D: 68730
http://tests.stockfishchess.org/tests/view/5d5138290ebc5925cf1070c3

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 84968 W: 14499 L: 14083 D: 56386
http://tests.stockfishchess.org/tests/view/5d527cfa0ebc5925cf107f93

Bench: 4139590

6 years agoIncrease king danger for drop variants
Fabian Fichter [Fri, 9 Aug 2019 16:46:17 +0000]
Increase king danger for drop variants

crazyhouse STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 2010 W: 1043 L: 914 D: 53
http://35.161.250.236:6543/tests/view/5d4da3906e23db34f4206d69

crazyhouse LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 2902 W: 1473 L: 1332 D: 97
http://35.161.250.236:6543/tests/view/5d4da5e16e23db34f4206d6c

6 years agoSupport capahouse
Fabian Fichter [Mon, 12 Aug 2019 20:35:04 +0000]
Support capahouse

6 years agoConsider all major pieces in king safety
Fabian Fichter [Tue, 6 Aug 2019 21:10:40 +0000]
Consider all major pieces in king safety

seirawan STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 574 W: 247 L: 160 D: 167
http://35.161.250.236:6543/tests/view/5d49ed306e23db34f4206d5b

seirawan LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 992 W: 396 L: 304 D: 292
http://35.161.250.236:6543/tests/view/5d4a6ace6e23db34f4206d5e

capablanca STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 458 W: 220 L: 131 D: 107
http://35.161.250.236:6543/tests/view/5d4d4a8c6e23db34f4206d62

capablanca LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 362 W: 191 L: 101 D: 70
http://35.161.250.236:6543/tests/view/5d4d6faf6e23db34f4206d67

6 years agoIncrease nCheck bonus
Fabian Fichter [Fri, 9 Aug 2019 16:16:55 +0000]
Increase nCheck bonus

3check STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 15730 W: 7481 L: 7160 D: 1089
http://35.161.250.236:6543/tests/view/5d3d689e6e23db34f4206cfe

3check LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 2991 W: 1436 L: 1299 D: 256
http://35.161.250.236:6543/tests/view/5d4af0f56e23db34f4206d60

6 years agoExtend perft test for S-Chess (#25)
Fabian Fichter [Wed, 7 Aug 2019 15:25:44 +0000]
Extend perft test for S-Chess (#25)

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 agoRevert "Improve multiPV mode"
joergoster [Thu, 4 Jul 2019 09:02:32 +0000]
Revert "Improve multiPV mode"

This reverts commit a8de07cc26999e2fef7298a63bfe349aaa4650fa.

6 years agoTune search constants
xoto10 [Tue, 30 Jul 2019 10:46:43 +0000]
Tune search constants

This is the result of a 200k tuning run at LTC:
http://tests.stockfishchess.org/tests/view/5d3576b70ebc5925cf0e9e1e

which passed quickly at LTC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 12954 W: 2280 L: 2074 D: 8600
http://tests.stockfishchess.org/tests/view/5d3ff3f70ebc5925cf0f87a2

STC failed, but second LTC at [0,4] passed easily:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 8004 W: 1432 L: 1252 D: 5320
http://tests.stockfishchess.org/tests/view/5d407cff0ebc5925cf0f9119

Further work?
No doubt some of these changes produce most of the gain and some are neutral
or even bad, so further testing on individual/groups of parameters changed
here might show more gains. It does look like these tests might need to be
at LTC though, so maybe not too practical to do. See the thread in the pull
request for an interesting discussion:
https://github.com/official-stockfish/Stockfish/pull/2260

Bench: 4024328

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 weak lever
protonspring [Thu, 25 Jul 2019 22:27:46 +0000]
Simplify weak lever

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 14844 W: 3347 L: 3212 D: 8285
http://tests.stockfishchess.org/tests/view/5d3a2d7b0ebc5925cf0f1632

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 55261 W: 9374 L: 9309 D: 36578
http://tests.stockfishchess.org/tests/view/5d3a3d9e0ebc5925cf0f1786

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

bench: 3484124

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