fairystockfish.git
7 years agoImprove generalization of castling
Fabian Fichter [Sat, 9 Feb 2019 22:23:57 +0000]
Improve generalization of castling

No functional change.

7 years agoMerge official-stockfish/master
Fabian Fichter [Sat, 9 Feb 2019 17:28:16 +0000]
Merge official-stockfish/master

bench: 5031310

7 years agoMerge official-stockfish/master
Fabian Fichter [Sat, 9 Feb 2019 17:13:35 +0000]
Merge official-stockfish/master

bench: 4633927

7 years agoMerge official-stockfish/master
Fabian Fichter [Sat, 9 Feb 2019 16:58:41 +0000]
Merge official-stockfish/master

7 years agoSimplify connection bonus
Fabian Fichter [Sat, 9 Feb 2019 14:21:00 +0000]
Simplify connection bonus

connect4
LLR: 2.99 (-2.94,2.94) [-10.00,5.00]
Total: 204 W: 108 L: 53 D: 43

7 years agoDecrease king evaluation divisor for shogi variants
Fabian Fichter [Fri, 8 Feb 2019 22:53:36 +0000]
Decrease king evaluation divisor for shogi variants

euroshogi
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 250 W: 156 L: 90 D: 4

minishogi
LLR: 3.31 (-2.94,2.94) [-10.00,5.00]
Total: 500 W: 286 L: 213 D: 1

shogi
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 506 W: 281 L: 217 D: 8

7 years agoSkip king protector bonus when there is no king
Fabian Fichter [Fri, 8 Feb 2019 18:07:49 +0000]
Skip king protector bonus when there is no king

7 years agoChange outposts to single value #1946
protonspring [Sun, 13 Jan 2019 02:30:56 +0000]
Change outposts to single value #1946

This is a functional simplification of the Outposts array
moving it to a single value. This is a duplicate PR because
I couldn't figure out how to fix the original one.

The idea is from @31m059 with formatting recommendations by @snicolet.

See #1940 for additional information.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 23933 W: 5279 L: 5162 D: 13492
http://tests.stockfishchess.org/tests/view/5c3575800ebc596a450c5ecb

LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 41718 W: 6919 L: 6831 D: 27968
http://tests.stockfishchess.org/tests/view/5c358c440ebc596a450c6117

bench 3783543

7 years agoAssorted trivial cleanups 1/2019
Marco Costalba [Tue, 1 Jan 2019 13:13:08 +0000]
Assorted trivial cleanups 1/2019

To address #1862

No functional change.

7 years agoLog message of: Less king danger...
Marco Costalba [Fri, 8 Feb 2019 09:17:18 +0000]
Log message of: Less king danger...

The commit:

Less king danger if we have a knight near by to defend it

went in withouth proper commit message, here below we add it:

STC: LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 113106 W: 25087 L: 24367 D: 63652
http://tests.stockfishchess.org/tests/view/5c5517540ebc592fc7bb0eb4

LTC: LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 96669 W: 16318 L: 15872 D: 64479
http://tests.stockfishchess.org/tests/view/5c55352b0ebc592fc7bb11c8

bench: 3653942

7 years agoRemove Some Bitboard Arrays (#1963)
protonspring [Fri, 8 Feb 2019 08:54:38 +0000]
Remove Some Bitboard Arrays (#1963)

This is non-functional. These 5 arrays are simple enough to calculate real-time and maintaining an array for them does not help. Decreases the memory footprint.

This seems a tiny bit slower on my machine, but passed STC well enough. Could someone verify speed?

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 44745 W: 9780 L: 9704 D: 25261
http://tests.stockfishchess.org/tests/view/5c47aa2d0ebc5902bca13fc4

The slowdown is minimal even in 32 bit case (thanks to @mstembera for testing):

Compiled using make build ARCH=x86-32 CXX=i686-w64-mingw32-c++ and benched
This patch only:

```
Results for 40 tests for each version:

            Base      Test      Diff
    Mean    1455204   1450033   5171
    StDev   49452     34533     59621

p-value: 0.465
speedup: -0.004
```

No functional change.

7 years agoRewrite evaluation of shogi pawns
Fabian Fichter [Thu, 7 Feb 2019 23:24:50 +0000]
Rewrite evaluation of shogi pawns

Handle shogi pawns similar to pawns, different from other pieces.
Speeds up evaluation and allows improving evaluation of passed shogi pawns.

shogi
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 596 W: 322 L: 259 D: 15

euroshogi
LLR: 3.01 (-2.94,2.94) [-10.00,5.00]
Total: 530 W: 285 L: 222 D: 23

minishogi
LLR: -0.12 (-2.94,2.94) [-10.00,5.00]
Total: 1000 W: 493 L: 503 D: 4

No functional change for non-shogi variants.

7 years agoFix msb calculation for large-board version
Fabian Fichter [Thu, 7 Feb 2019 22:19:45 +0000]
Fix msb calculation for large-board version

A bug in the calculation of the most significant bit
caused undefined behavior in the king safety evaluation.

The fix significantly improves playing strength of the large-board version:
chess
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 100 W: 72 L: 15 D: 13

capablanca
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 82 W: 62 L: 8 D: 12

shogi
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 256 W: 157 L: 92 D: 7

No functional change for normal version.

7 years agoMerge official-stockfish/master
Fabian Fichter [Wed, 6 Feb 2019 21:58:26 +0000]
Merge official-stockfish/master

bench: 4766195

7 years agoDecrease king danger for drop variants
Fabian Fichter [Wed, 6 Feb 2019 20:56:33 +0000]
Decrease king danger for drop variants

crazyhouse STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 3167 W: 1606 L: 1461 D: 100
http://35.161.250.236:6543/tests/view/5c4c3cac6e23db07348e860b

crazyhouse LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 7620 W: 3785 L: 3576 D: 259
http://35.161.250.236:6543/tests/view/5c4f6a756e23db07348e8615

shogi
LLR: 2.96 (-2.94,2.94) [-10.00,5.00]
Total: 828 W: 435 L: 374 D: 19

minishogi
LLR: 2.53 (-2.94,2.94) [-10.00,5.00]
Total: 2000 W: 1018 L: 974 D: 8

7 years agoEndgame evaluation for fairy pieces
Fabian Fichter [Mon, 4 Feb 2019 21:40:57 +0000]
Endgame evaluation for fairy pieces

No functional change for standard chess.

7 years agoTweak mobility bonus for fairy pieces
Fabian Fichter [Mon, 4 Feb 2019 21:20:42 +0000]
Tweak mobility bonus for fairy pieces

ai-wok
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 550 W: 247 L: 193 D: 110

courier
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 1388 W: 349 L: 311 D: 728

minishogi
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 3490 W: 1761 L: 1718 D: 11

7 years agoLess king danger if we have a knight near by to defend it. (#1987)
mstembera [Sun, 3 Feb 2019 13:16:34 +0000]
Less king danger if we have a knight near by to defend it. (#1987)

bench: 3653942

7 years agoSpeed-up pseudo-legal move validation of drops
Fabian Fichter [Thu, 31 Jan 2019 20:14:47 +0000]
Speed-up pseudo-legal move validation of drops

Improves performance by ~10% for drop variants.

7 years agoExtend discovered checks regardless of SEE
Miguel Lahoz [Tue, 29 Jan 2019 14:26:03 +0000]
Extend discovered checks regardless of SEE

A simple idea, but it makes sense: in current master the search is extended
for checks that are considered somewhat safe, and for for this we use the
static exchange evaluation which only considers the `to_sq` of a move.
This is not reliable for discovered checks, where another piece is giving
the check and is arguably a more dangerous type of check. Thus, if the check
is a discovered check, the result of SEE is not relevant and can be ignored.

STC:
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 29370 W: 6583 L: 6274 D: 16513
http://tests.stockfishchess.org/tests/view/5c5062950ebc593af5d4d9b5

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 227341 W: 37972 L: 37165 D: 152204
http://tests.stockfishchess.org/tests/view/5c5094fb0ebc593af5d4dc2c

Bench: 3611854

7 years agoTweak tropism weight in king danger
Stéphane Nicolet [Fri, 1 Feb 2019 12:09:17 +0000]
Tweak tropism weight in king danger

There was a simplification attempt last week for the tropism
term in king danger, which passed STC but failed LTC. This
was an indirect sign that maybe the tropism factor was sightly
untuned in current master, so we tried to change it from 1/4
to 5/16.

STC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 28098 W: 6264 L: 5990 D: 15844
http://tests.stockfishchess.org/tests/view/5c518db60ebc593af5d4e306

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 103709 W: 17387 L: 16923 D: 69399
http://tests.stockfishchess.org/tests/view/5c52a5510ebc592fc7baea8b

Bench: 4016000

7 years agoMore precise checks evaluation in king danger
Vizvezdenec [Fri, 1 Feb 2019 06:21:23 +0000]
More precise checks evaluation in king danger

Remove overlapping safe checks from kingdanger:
- rook and queen checks from the same square: rook check is preferred
- bishop and queen checks form the same square: queen check is preferred

Increase bishop and rook check values as a compensation.

STC
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 27480 W: 6111 L: 5813 D: 15556
http://tests.stockfishchess.org/tests/view/5c521d050ebc593af5d4e66a

LTC
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 78500 W: 13145 L: 12752 D: 52603
http://tests.stockfishchess.org/tests/view/5c52b9460ebc592fc7baecc5

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

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

I have quite a few ideas of how to improve this patch.

- actually rethinking it now it will maybe be useful to discount
  queen/bishop checks if there is only one square that they can
  give check from and it's "occupied" by more valuable check. Right
  now count of this squares does not really matter.

- maybe some small extra bonus can be given for overlapping checks.

- some ideas about using popcount() on safechecks can be retried.

- tune this safecheck values since they were more or less randomly handcrafted in this patch.

Bench: 3216489

7 years agoSpeed up slider blockers calculation
Fabian Fichter [Thu, 31 Jan 2019 22:15:54 +0000]
Speed up slider blockers calculation

Improves speed by >10%.

No functional change.

7 years agoSmall speed-up in check detection
Fabian Fichter [Thu, 31 Jan 2019 22:13:20 +0000]
Small speed-up in check detection

Since pieces can not give check against own king.

No functional change.

7 years agoSimplify Stat Score bonus
protonspring [Thu, 31 Jan 2019 14:18:33 +0000]
Simplify Stat Score bonus

This is a functional simplification of this statScore bonus.
There seems to be little risk of regression with this one.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 26829 W: 5892 L: 5781 D: 15156
http://tests.stockfishchess.org/tests/view/5c5086bb0ebc593af5d4db75

LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 28232 W: 4684 L: 4575 D: 18973
http://tests.stockfishchess.org/tests/view/5c50d7690ebc593af5d4dec9

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

Bench: 4001014

7 years agoDon't update pvHit after IID
DU-jdto [Wed, 23 Jan 2019 04:19:10 +0000]
Don't update pvHit after IID

This patch removes line 875 of search.cpp, which was updating pvHit after IID.
Bench testing at depth 22 shows that line 875 of search.cpp never changes the
value of pvHit at NonPV nodes, while at PV nodes it often changes the value
from true to false (and never the reverse). This is because the definition of
pvHit at line 642 is :

```
pvHit = (ttHit && tte->pv_hit()) || (PvNode && depth > 4 * ONE_PLY);
```

while the assignment after IID omits the ` (PvNode && depth > 4 * ONE_PLY) `
condition. As such, unlike the other two post-IID tte reads, this line of code
does not make SF's state more consistent, but rather introduces an inconsistency
in the definition of pvHit. Indeed, changing line 875 read

```
pvHit = (ttHit && tte->pv_hit()) || (PvNode && depth > 4 * ONE_PLY);
```

to match line 642 is functionally equivalent to removing the line entirely, as
this patch does.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 62756 W: 13787 L: 13746 D: 35223
http://tests.stockfishchess.org/tests/view/5c446c850ebc5902bb5d4b75

LTC
LLR: 3.19 (-2.94,2.94) [-3.00,1.00]
Total: 61900 W: 10179 L: 10111 D: 41610
http://tests.stockfishchess.org/tests/view/5c45bf610ebc5902bb5d5d62

Bench: 3796134

7 years agoChange pinning logic in Static Exchange Evaluation (SEE)
Miguel Lahoz [Fri, 25 Jan 2019 06:37:03 +0000]
Change pinning logic in Static Exchange Evaluation (SEE)

This changes 2 parts with regards to static exchange evaluation.

Currently, we do not allow pinned pieces to recapture if *all* opponent
pinners are still in their starting squares. This changes that to having
a less strict requirement, checking if *any* pinners are still in their
starting square. This makes our SEE give more respect to the pinning
side with regards to exchanges, which makes sense because it helps our
search explore more tactical options.

Furthermore, we change the logic for saving pinners into our state
variable when computing slider_blockers. We will include double pinners,
where two sliders may be looking at the same blocker, a similar concept
to our mobility calculation for sliders in our evaluation section.
Interestingly, I think SEE is the only place where the pinners bitboard
is actually used, so as far as I know there are no other side effects
to this change.

An example and some insights:

White Bf2, Kg1
Black Qe3, Bc5

The move Qg3 will be given the correct value of 0. (Previously < 0)
The move Qd4 will be incorrectly given a value of 0. (Previously < 0)

It seems the tradeoff in search is worth it. Qd4 will likely be pruned
soon by something like probcut anyway, while Qg3 could help us spot
tactics at an earlier depth.

STC:
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 62162 W: 13879 L: 13408 D: 34875
http://tests.stockfishchess.org/tests/view/5c4ba1a70ebc593af5d49c55

LTC: (Thanks to @alayant)
LLR: 3.40 (-2.94,2.94) [0.00,3.50]
Total: 140285 W: 23416 L: 22825 D: 94044
http://tests.stockfishchess.org/tests/view/5c4bcfba0ebc593af5d49ea8

Bench: 3937213

7 years agoUse int8_t instead of int for SquareDistance[]
Maciej Żenczykowski [Sat, 26 Jan 2019 17:16:17 +0000]
Use int8_t instead of int for SquareDistance[]

This patch saves (4-1) * 64 * 64 = 12KiB of cache.

STC
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 176120 W: 38944 L: 38087 D: 99089
http://tests.stockfishchess.org/tests/view/5c4c9f840ebc593af5d4a7ce

LTC
As a pure speed up, I've been informed it should not require LTC.

No functional change

7 years agoSupport counting rules
Fabian Fichter [Sun, 27 Jan 2019 16:46:48 +0000]
Support counting rules

Counting rules are used for south-east asian chess variants:
- Makruk
- ASEAN
- Sittuyin

Standard FENs and (cutechess-style) FENs including counting rules are both supported.

7 years agoDisable futility pruning for racing kings
Fabian Fichter [Sat, 26 Jan 2019 09:54:25 +0000]
Disable futility pruning for racing kings

racingkings STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 350 W: 163 L: 81 D: 106
http://35.161.250.236:6543/tests/view/5c4b86806e23db07348e8601

racingkings LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 391 W: 174 L: 92 D: 125
http://35.161.250.236:6543/tests/view/5c4b97676e23db07348e8609

7 years agoTweak king danger for nCheck chess
Fabian Fichter [Thu, 24 Jan 2019 19:59:16 +0000]
Tweak king danger for nCheck chess

3check STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 523 W: 295 L: 192 D: 36
http://35.161.250.236:6543/tests/view/5c478ad56e23db07348e85f0

3check LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 795 W: 418 L: 312 D: 65
http://35.161.250.236:6543/tests/view/5c487f756e23db07348e85f3

7 years agoSimplify TrappedRook
protonspring [Mon, 21 Jan 2019 18:55:51 +0000]
Simplify TrappedRook

Simplified TrappedRook to a single penalty removing the dependency on mobility.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 106718 W: 23530 L: 23577 D: 59611
http://tests.stockfishchess.org/tests/view/5c43f6bd0ebc5902bb5d4131

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 54053 W: 8890 L: 8822 D: 36341
http://tests.stockfishchess.org/tests/view/5c44932a0ebc5902bb5d4d59

bench 3665090

7 years agoSimplify pondering time management (#1899)
Joost VandeVondele [Sun, 20 Jan 2019 18:14:24 +0000]
Simplify pondering time management (#1899)

stopOnPonderhit is used to stop search quickly on a ponderhit. It is set by mainThread as part of its time management. However, master employs it as a signal between mainThread and the UCI thread. This is not necessary, it is sufficient for the UCI thread to signal that pondering finished, and mainThread should do its usual time-keeping job, and in this case stop immediately.

This patch implements this, removing stopOnPonderHit as an atomic variable from the ThreadPool,
and moving it as a normal variable to mainThread, reducing its scope. In MainThread::check_time() the search is stopped immediately if ponder switches to false, and the variable stopOnPonderHit is set.

Furthermore, ponder has been moved to mainThread, as the variable is only used to exchange signals between the UCI thread and mainThread.

The version has been tested locally (as fishtest doesn't support ponder):

Score of ponderSimp vs master: 2616 - 2528 - 8630 [0.503] 13774
Elo difference: 2.22 +/- 3.54

which indicates no regression.

No functional change.

7 years agoSimplify pvHit (#1953)
marotear [Sun, 20 Jan 2019 11:24:03 +0000]
Simplify pvHit (#1953)

Removing unnecessary excludedMove condition (there is not excluded move for PvNodes) and re-ordering computation.

Non functional change.

7 years agoClean-up some shifting in space calculation (#1955)
protonspring [Sun, 20 Jan 2019 11:21:16 +0000]
Clean-up some shifting in space calculation (#1955)

No functional change.

7 years agoTweak initiative and Pawn PSQT (#1957)
Jonathan D [Sun, 20 Jan 2019 11:20:21 +0000]
Tweak initiative and Pawn PSQT (#1957)

Small changes in initiative(). For Pawn PSQT, endgame values for d6-e6 and d7-e7 are now symmetric. The MG value of d2 is now smaller than e2 (d2=13, e2=21 now compared to d2=19, e2=16 before). The MG values of h5-h6-h7 also increased so this might encourage stockfish for more h-pawn pushes.

STC
LLR: -2.96 (-2.94,2.94) [0.00,4.00]
Total: 81141 W: 17933 L: 17777 D: 45431
http://tests.stockfishchess.org/tests/view/5c4017350ebc5902bb5cf237

LTC
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 83078 W: 13883 L: 13466 D: 55729
http://tests.stockfishchess.org/tests/view/5c40763f0ebc5902bb5cff09

Bench: 3266398

7 years agoIncrease king danger without queen for nCheck
Fabian Fichter [Fri, 18 Jan 2019 19:47:51 +0000]
Increase king danger without queen for nCheck

3check STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 5565 W: 2630 L: 2456 D: 479
http://35.161.250.236:6543/tests/view/5c3d027e6e23db07348e85b8

3check LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 6185 W: 2922 L: 2739 D: 524
http://35.161.250.236:6543/tests/view/5c3ed2d66e23db07348e85c2

7 years agoDouble safe check bonus for nCheck chess
Fabian Fichter [Fri, 18 Jan 2019 19:46:15 +0000]
Double safe check bonus for nCheck chess

3check STC
LLR: 2.94 (-2.94,2.94) [0.00,10.00]
Total: 1944 W: 961 L: 838 D: 145
http://35.161.250.236:6543/tests/view/5c39dfb76e23db07348e85ac

3check LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 1953 W: 951 L: 829 D: 173
http://35.161.250.236:6543/tests/view/5c39fb726e23db07348e85ae

7 years agoRemove AdjacentFiles
protonspring [Tue, 15 Jan 2019 05:53:43 +0000]
Remove AdjacentFiles

This is a non-functional simplification that removes the AdjacentFiles array.
This array is simple enough to calculate that the pre-calculated array provides
no benefit. Reduces the memory footprint.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 74839 W: 16390 L: 16373 D: 42076
http://tests.stockfishchess.org/tests/view/5c3d75920ebc596a450cfb67

No functionnal change

7 years agoSimplify pawn moves (#1900)
protonspring [Mon, 14 Jan 2019 14:03:31 +0000]
Simplify pawn moves (#1900)

If we define dcCandidates with & pawnsNotOn7,
we don't have to & it both times.

This seems more clear to me as well.

Tested for no regression.
STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 44042 W: 9663 L: 9585 D: 24794
http://tests.stockfishchess.org/tests/view/5c21d9120ebc5902ba12e84d

No functional change.

7 years agoSimplify time management a bit
Joost VandeVondele [Wed, 2 Jan 2019 10:09:50 +0000]
Simplify time management a bit

The new form is likely to trigger a bit more at LTC. Given that LTC
appears to be an improvement, I think that is fine.

The change is not very invasive: it does the same as before, use
potentially less time for moves that are very stable. Most of the
time, the full bonus was given if the bonus was given, so the gradual
part {3, 4, 5} didn't matter much. Whereas previously 'stable' was
expressed as the last 80% of iterations are the same, now I use a
fixed depth (10 iterations). For TCEC style TC, it will presumably
imply some more moves that are played quicker (and thus more time
on the clock when it potentially matters). Note that 10 iterations
of stability means we've been proposing that move for 99.9% of search
time.

passed STC
http://tests.stockfishchess.org/tests/view/5c30d2290ebc596a450c055b
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 70921 W: 15403 L: 15378 D: 40140

passed LTC
http://tests.stockfishchess.org/tests/view/5c31ae240ebc596a450c1881
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 17422 W: 2968 L: 2842 D: 11612

No functional change.

7 years agoAdd synonym for minishogi
Fabian Fichter [Sat, 12 Jan 2019 18:31:11 +0000]
Add synonym for minishogi

7 years agoSupport prohibition of perpetual check
Fabian Fichter [Sat, 12 Jan 2019 18:18:45 +0000]
Support prohibition of perpetual check

Completes the rule implementation of shogi variants.

7 years agoRefactor game end detection
Fabian Fichter [Sat, 12 Jan 2019 17:48:31 +0000]
Refactor game end detection

Support customization of n-fold repetition and n-move rule.
- Fix fourfold rule for minishogi and other shogi variants.
- Adjust n-move rule to 70 for shatranj.
- Disable n-move rule for makruk and shogi variants.

7 years agoExpliclity set pocket size for minishogi
Fabian Fichter [Sat, 12 Jan 2019 14:39:03 +0000]
Expliclity set pocket size for minishogi

For better compatility with XBoard/WinBoard.

No functional change.

7 years agoRemove pvExact
Joost VandeVondele [Thu, 10 Jan 2019 06:43:17 +0000]
Remove pvExact

The variable pvExact now overlaps with the pvHit concept. So you simplify
the logic with small code tweaks to have pvHit trigger where pvExact
previously triggered.

passed STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 20558 W: 4497 L: 4373 D: 11688
http://tests.stockfishchess.org/tests/view/5c36e9fd0ebc596a450c7885

passed LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 23482 W: 3888 L: 3772 D: 15822
http://tests.stockfishchess.org/tests/view/5c37072d0ebc596a450c7a52

Bench: 3739723

7 years agoMinor cleanup to recent 'Flag critical search tree in hash table' patch
mstembera [Wed, 9 Jan 2019 15:27:47 +0000]
Minor cleanup to recent 'Flag critical search tree in hash table' patch

No functional change

7 years agoSmall improvements to the CI infrastructure
Joost VandeVondele [Wed, 9 Jan 2019 15:14:34 +0000]
Small improvements to the CI infrastructure

- avoid inlining for the debug testing so that suppressions work
- provide more output for triggered errors

No functional change.

7 years agoFlag critical search tree in hash table
MJZ1977 [Wed, 9 Jan 2019 14:05:28 +0000]
Flag critical search tree in hash table

Introducing new concept, saving principal lines into the transposition table
to generate a "critical search tree" which we can reuse later for intelligent
pruning/extension decisions.

For instance in this patch we just reduce reduction for these lines. But a lot
of other ideas are possible.

To go further : tune some parameters, how to add or remove lines from the
critical search tree, how to use these lines in search choices, etc.

STC :
LLR: 2.94 (-2.94,2.94) [0.50,4.50]
Total: 59761 W: 13321 L: 12863 D: 33577 +2.23 ELO
http://tests.stockfishchess.org/tests/view/5c34da5d0ebc596a450c53d3

LTC :
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 26826 W: 4439 L: 4191 D: 18196 +2.9 ELO
http://tests.stockfishchess.org/tests/view/5c35ceb00ebc596a450c65b2

Special thanks to Miguel Lahoz for his help in transposition table in/out.

Bench: 3399866

7 years agoIntroduce Multi-Cut
Miguel Lahoz [Sat, 5 Jan 2019 20:53:21 +0000]
Introduce Multi-Cut

This was inspired after reading about
[Multi-Cut](https://www.chessprogramming.org/Multi-Cut).

We now do non-singular cut node pruning. The idea is to prune when we
have a "backup plan" in case our expected fail high node does not fail
high on the ttMove.

For singular extensions, we do a search on all other moves but the
ttMove. If this fails high on our original beta, this means that both
the ttMove, as well as at least one other move was proven to fail high
on a lower depth search. We then assume that one of these moves will
work on a higher depth and prune.

STC:
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 72952 W: 16104 L: 15583 D: 41265
http://tests.stockfishchess.org/tests/view/5c3119640ebc596a450c0be5

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 27103 W: 4564 L: 4314 D: 18225
http://tests.stockfishchess.org/tests/view/5c3184c00ebc596a450c1662

Bench: 3145487

7 years agoCheck tablebase files
Joost VandeVondele [Thu, 3 Jan 2019 22:56:11 +0000]
Check tablebase files

This addresses partially issue #1911 in that it documents in our
Readme the command that users can use to verifying the md5sum of
their downloaded tablebase files.

Additionally, a quick check of the file size (the size of each
tablebase file modulo 64 is 16 as pointed out by @syzygy1) has been
implemented at launch time in Stockfish.

Closes https://github.com/official-stockfish/Stockfish/pull/1927
and https://github.com/official-stockfish/Stockfish/issues/1911

No functional change.

7 years agoDelay castling legality check
Marco Costalba [Wed, 2 Jan 2019 07:31:03 +0000]
Delay castling legality check

Delay legality check of castling moves at search time,
just before making the move, as is the standard with all
the other move types.

This should avoid an useless and not trivial legality check
when the castling is then not tried later. For instance due
to a previous cut-off.

The patch is also a big simplification and allows to entirely
remove generate_castling()

Bench changes due to a different move sequence out of MovePicker.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 45073 W: 9918 L: 9843 D: 25312
http://tests.stockfishchess.org/tests/view/5c2f176f0ebc596a450bdfb3

LTC:
LLR: 3.15 (-2.94,2.94) [-3.00,1.00]
Total: 10156 W: 1707 L: 1560 D: 6889
http://tests.stockfishchess.org/tests/view/5c2e7dfd0ebc596a450bcdf4

Verified with perft both in standard and Chess960 cases.

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

Bench: 3559104

7 years agoSimplify king danger for non-standard board sizes
Fabian Fichter [Thu, 3 Jan 2019 22:22:45 +0000]
Simplify king danger for non-standard board sizes

Turns out to be a big improvement for small board sizes.

losalamos
LLR: 3.06 (-2.94,2.94) [-10.00,5.00]
Total: 56 W: 50 L: 1 D: 5

minishogi
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 104 W: 84 L: 18 D: 2

7 years agoImprove generalization to non-standard board sizes
Fabian Fichter [Thu, 3 Jan 2019 21:45:50 +0000]
Improve generalization to non-standard board sizes

Remove assumptions about 8x8 board size from evaluation code.

losalamos
LLR: 3.02 (-2.94,2.94) [-10.00,5.00]
Total: 152 W: 83 L: 30 D: 39

capablanca
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 362 W: 180 L: 123 D: 59

minishogi
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 288 W: 163 L: 102 D: 23

7 years agoBonus for promoted pieces in drop variants
Fabian Fichter [Thu, 3 Jan 2019 21:33:10 +0000]
Bonus for promoted pieces in drop variants

Since they demote when being captured, promoted pieces
are more valuable than the promotion piece type itself.

minishogi
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 666 W: 375 L: 266 D: 25

shogi
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 1020 W: 529 L: 469 D: 22

7 years agoRevert regressive minishogi patch
Fabian Fichter [Wed, 2 Jan 2019 13:55:23 +0000]
Revert regressive minishogi patch

Further testing indicates that the initial test results were flawed.

minishogi
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 806 W: 437 L: 327 D: 42

7 years agoStalemate is a win in shogi variants
Fabian Fichter [Tue, 1 Jan 2019 17:13:56 +0000]
Stalemate is a win in shogi variants

Fix evaluation of stalemate positions.

7 years agoUse a generic PSQT for fairy pieces
Fabian Fichter [Tue, 1 Jan 2019 15:53:55 +0000]
Use a generic PSQT for fairy pieces

Give a bonus for squares closer to the center of the board.

shogi
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 1068 W: 578 L: 462 D: 28

minishogi
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 1098 W: 577 L: 464 D: 57

courier
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 396 W: 137 L: 65 D: 194

giveaway STC
LLR: 2.96 (-2.94,2.94) [-10.00,5.00]
Total: 2177 W: 863 L: 822 D: 492
http://35.161.250.236:6543/tests/view/5c2a44ad6e23db2472895687

extinction STC (failed)
LLR: -2.96 (-2.94,2.94) [-10.00,5.00]
Total: 1002 W: 436 L: 508 D: 58
http://35.161.250.236:6543/tests/view/5c2a44bf6e23db2472895689

shatranj STC (failed)
LLR: -3.00 (-2.94,2.94) [-10.00,5.00]
Total: 1891 W: 242 L: 289 D: 1360

7 years agoConsider board size in time management
Fabian Fichter [Tue, 1 Jan 2019 15:50:11 +0000]
Consider board size in time management

Also adjust for variants with mandatory captures.

courier 5+0
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 302 W: 161 L: 74 D: 67

shogi 5+0
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 1064 W: 570 L: 455 D: 39

minishogi 5+0
LLR: 2.99 (-2.94,2.94) [0.00,10.00]
Total: 1362 W: 702 L: 584 D: 76

giveaway 10+0
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 1019 W: 437 L: 340 D: 242
http://35.161.250.236:6543/tests/view/5c2a423f6e23db2472895682

giveaway 10+0.1
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 1655 W: 691 L: 585 D: 379
http://35.161.250.236:6543/tests/view/5c2a41a46e23db247289567b

losers 10+0
LLR: 2.94 (-2.94,2.94) [0.00,10.00]
Total: 1030 W: 520 L: 412 D: 98
http://35.161.250.236:6543/tests/view/5c2a42356e23db2472895680

losers 10+0.1
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 1004 W: 496 L: 390 D: 118
http://35.161.250.236:6543/tests/view/5c2a41cd6e23db247289567e

7 years agoFurther reduce king danger divisor for shogi variants
Fabian Fichter [Tue, 1 Jan 2019 15:43:30 +0000]
Further reduce king danger divisor for shogi variants

shogi
LLR: 2.99 (-2.94,2.94) [0.00,10.00]
Total: 1018 W: 544 L: 430 D: 44

minishogi
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 470 W: 281 L: 175 D: 14

7 years agoAssorted trivial cleanups (#1894)
Marco Costalba [Tue, 1 Jan 2019 13:10:26 +0000]
Assorted trivial cleanups (#1894)

To address https://github.com/official-stockfish/Stockfish/issues/1862

No functional change.

7 years agoRemove openFiles in pawns. (#1917)
protonspring [Tue, 1 Jan 2019 12:38:09 +0000]
Remove openFiles in pawns. (#1917)

A single popcount in evaluate.cpp replaces all openFiles stuff in pawns. It doesn't seem to affect performance at all.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 28103 W: 6134 L: 6025 D: 15944
http://tests.stockfishchess.org/tests/view/5b7d70a20ebc5902bdbb1999

No functional change.

7 years agoRemove "Any" predicate filter (#1914)
protonspring [Tue, 1 Jan 2019 12:36:56 +0000]
Remove "Any" predicate filter (#1914)

This custom predicate filter creates an unnecessary abstraction layer, but doesn't make the code any more readable. The code is clear enough without it.

No functional change.

7 years agoRemove as useless micro-optimization in pawns generation (#1915)
protonspring [Tue, 1 Jan 2019 12:35:53 +0000]
Remove as useless micro-optimization in pawns generation (#1915)

The extra condition is used as a shortcut to skip the following 3 assignments:

```C++
        Bitboard b1 = shift<UpRight>(pawnsOn7) & enemies;
        Bitboard b2 = shift<UpLeft >(pawnsOn7) & enemies;
        Bitboard b3 = shift<Up     >(pawnsOn7) & emptySquares;
```

In case of EVASION with no target on 8th rank (the common case), we end up performing the 3 statements for nothing because b1 = b2 = b3 = 0.

But this is just a small micro-optimization and the condition is quite confusing, so just remove it and prefer a readable code instead.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 78020 W: 16978 L: 16967 D: 44075
http://tests.stockfishchess.org/tests/view/5c27b4fe0ebc5902ba135bb0

No functional change.

7 years agoDecrease king danger divisor for shogi variants
Fabian Fichter [Mon, 31 Dec 2018 14:03:12 +0000]
Decrease king danger divisor for shogi variants

shogi
LLR: 2.99 (-2.94,2.94) [-10.00,5.00]
Total: 1050 W: 533 L: 474 D: 43

minishogi
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 3236 W: 1544 L: 1502 D: 190

euroshogi
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 808 W: 415 L: 355 D: 38

7 years agoRefactor PSQ score calculation
Fabian Fichter [Fri, 28 Dec 2018 17:17:01 +0000]
Refactor PSQ score calculation

Functional change, since the PSQT bonus is no longer divided
together with the piece value, but kept as is.

crazyhouse STC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 279 W: 164 L: 101 D: 14
http://35.161.250.236:6543/tests/view/5c265b4e6e23db247289564d

crazyhouse LTC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 372 W: 210 L: 147 D: 15
http://35.161.250.236:6543/tests/view/5c2665936e23db2472895651

giveaway STC
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 1353 W: 577 L: 528 D: 248
http://35.161.250.236:6543/tests/view/5c267e5a6e23db247289565c

giveaway LTC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 286 W: 143 L: 88 D: 55
http://35.161.250.236:6543/tests/view/5c26aa0c6e23db2472895663

losers STC (failed)
LLR: -2.96 (-2.94,2.94) [-10.00,5.00]
Total: 1453 W: 610 L: 682 D: 161
http://35.161.250.236:6543/tests/view/5c267e676e23db247289565e

losers LTC (failed)
LLR: -2.98 (-2.94,2.94) [-10.00,5.00]
Total: 910 W: 366 L: 434 D: 110
http://35.161.250.236:6543/tests/view/5c273d4c6e23db247289566c

racingkings STC
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 2150 W: 760 L: 721 D: 669
http://35.161.250.236:6543/tests/view/5c266aba6e23db2472895657

racingkings LTC
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 1506 W: 523 L: 481 D: 502
http://35.161.250.236:6543/tests/view/5c2738616e23db2472895669

7 years agoImprove the Readme
erbsenzaehler [Sat, 29 Dec 2018 10:49:10 +0000]
Improve the Readme

I tried to improve the Readme because many people in my local
chess club do not understand some of the UCO options properly.
Starting point of this was Cfish's Readme by Ronald de Man,
some internet resources and the Stockfish code itself.

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

Initial commit by user @erbsenzaehler, with help from users
Adrian Petrescu, @alayan-stk-2 and Elvin Liu.

No functional change

Co-Authored-By: Alayan-stk-2 <alayan-stk-2@users.noreply.github.com>
Co-Authored-By: Adrian Petrescu <apetresc@gmail.com>
Co-Authored-By: Elvin Liu <solarlight2@users.noreply.github.com>

7 years agoRe-initialize PSQTs for each variant
Fabian Fichter [Fri, 28 Dec 2018 13:20:37 +0000]
Re-initialize PSQTs for each variant

This allows to consider the board size of the variant when initializing
the PSQTs, which fixes some issues with non-standard board sizes,
and reduces the differences between the normal and the large-board version.

No functional change for 8x8 variants.

7 years agoAlways initialize and evaluate king safety
31m059 [Thu, 27 Dec 2018 06:51:43 +0000]
Always initialize and evaluate king safety

Recent tests by @xoto10, @Vizvezdenec, and myself seemed to hint that Elo could
be gained by expanding the number of cases where king safety is applied. Several
users (@Spliffjiffer, @Vizvezdenec) have anticipated benefits specifically in
evaluation of tactics. It appears that we actually do not need to restrict the
cases in which we initialize and evaluate king safety at all: initializing and
evaluating it in every position appears roughly Elo-neutral at STC and possibly
a substantial Elo gain at LTC.

Any explanation for this scaling is, at this point, conjecture. Assuming it is
not due to chance, my hypothesis is that initialization of king safety in all
positions is a mild slowdown, offset by an Elo gain of evaluating king safety
in all positions. At STC this produces Elo gains and losses that offset each
other, while at longer time control the slowdown is much less important, leaving
only the Elo gain. It probably helps SF to explore king attacks much earlier in
search with high numbers of enemy pieces concentrating but not essentially attacking
king ring.

Thanks to @xoto10 and @Vizvezdenec for helping run my LTC!

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

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 35432 W: 7815 L: 7721 D: 19896
http://tests.stockfishchess.org/tests/view/5c24779d0ebc5902ba131b26

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 12887 W: 2217 L: 2084 D: 8586
http://tests.stockfishchess.org/tests/view/5c25049a0ebc5902ba132586

Bench: 3163951

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

How to continue from there?

* Next step will be to tune all the king danger terms once more after that :-)

7 years agoDisable null move pruning for horde chess
Fabian Fichter [Thu, 27 Dec 2018 18:07:43 +0000]
Disable null move pruning for horde chess

horde STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 2289 W: 1212 L: 1076 D: 1
http://35.161.250.236:6543/tests/view/5c249b6d6e23db2472895633

horde LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 863 W: 488 L: 373 D: 2
http://35.161.250.236:6543/tests/view/5c24b2ea6e23db2472895639

giveaway STC
LLR: 2.95 (-2.94,2.94) [-10.00,5.00]
Total: 1213 W: 398 L: 356 D: 459
http://35.161.250.236:6543/tests/view/5c249ba06e23db2472895636

giveaway LTC
LLR: 2.99 (-2.94,2.94) [-10.00,5.00]
Total: 801 W: 268 L: 223 D: 310
http://35.161.250.236:6543/tests/view/5c24d7466e23db247289563c

7 years agoEnable shallow depth pruning for horde chess
Fabian Fichter [Sat, 1 Sep 2018 09:19:36 +0000]
Enable shallow depth pruning for horde chess

horde STC
LLR: 3.36 (-2.94,2.94) [0.00,10.00]
Total: 517 W: 320 L: 196 D: 1
http://35.161.250.236:6543/tests/view/5c2286ad6e23db247289560e

horde LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 321 W: 213 L: 106 D: 2
http://35.161.250.236:6543/tests/view/5c22a79f6e23db2472895618

giveaway STC
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 5940 W: 1928 L: 1914 D: 2098
http://35.161.250.236:6543/tests/view/5c22a7dc6e23db247289561c

giveaway LTC
LLR: 2.96 (-2.94,2.94) [-10.00,5.00]
Total: 4212 W: 1345 L: 1321 D: 1546
http://35.161.250.236:6543/tests/view/5c22aa416e23db2472895622

7 years agoTweak space bonus for horde chess
Fabian Fichter [Thu, 27 Dec 2018 10:41:08 +0000]
Tweak space bonus for horde chess

horde STC
LLR: 0.00 (-2.94,2.94) [0.00,10.00]
Total: 2000 W: 1812 L: 188 D: 0
http://35.161.250.236:6543/tests/view/5c2287cb6e23db2472895614

horde LTC
LLR: 42.35 (-2.94,2.94) [0.00,10.00]
Total: 1865 W: 1680 L: 184 D: 1
http://35.161.250.236:6543/tests/view/5c22a7b86e23db247289561a

giveaway STC
LLR: -2.96 (-2.94,2.94) [-10.00,5.00]
Total: 6022 W: 1965 L: 2055 D: 2002
http://35.161.250.236:6543/tests/view/5c22aa246e23db2472895620

giveaway LTC
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 1264 W: 410 L: 368 D: 486
http://35.161.250.236:6543/tests/view/5c22a7f36e23db247289561e

7 years agoRename judkins shogi variant name
Fabian Fichter [Thu, 27 Dec 2018 09:38:52 +0000]
Rename judkins shogi variant name

7 years agoRemove redundant check
Fabian Fichter [Wed, 26 Dec 2018 18:22:29 +0000]
Remove redundant check

No functional change.

7 years agoRewrite king danger of pieces in hand
Fabian Fichter [Wed, 26 Dec 2018 18:17:05 +0000]
Rewrite king danger of pieces in hand

Evaluate pieces in hand analogously to pieces on the board.

crazyhouse STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 1774 W: 936 L: 809 D: 29
http://35.161.250.236:6543/tests/view/5c2382e16e23db2472895629

crazyhouse LTC
LLR: 2.94 (-2.94,2.94) [0.00,10.00]
Total: 1041 W: 572 L: 456 D: 13
http://35.161.250.236:6543/tests/view/5c239b2c6e23db247289562c

minishogi
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 526 W: 303 L: 197 D: 26

shogi
LLR: 3.02 (-2.94,2.94) [-10.00,5.00]
Total: 1812 W: 892 L: 838 D: 82

7 years agoEvaluate mobility of pieces in hand
Fabian Fichter [Wed, 26 Dec 2018 12:58:29 +0000]
Evaluate mobility of pieces in hand

shogi
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 740 W: 416 L: 305 D: 19

minishogi
LLR: 2.99 (-2.94,2.94) [0.00,10.00]
Total: 660 W: 363 L: 256 D: 41

crazyhouse STC
LLR: -2.96 (-2.94,2.94) [-10.00,5.00]
Total: 8643 W: 4154 L: 4283 D: 206
http://35.161.250.236:6543/tests/view/5c16665f6e23db24728955a2

crazyhouse LTC
LLR: -2.97 (-2.94,2.94) [-10.00,5.00]
Total: 5977 W: 2855 L: 2965 D: 157
http://35.161.250.236:6543/tests/view/5c16d1616e23db24728955ac

7 years agoTweak IID search depth for drop variants
Fabian Fichter [Wed, 26 Dec 2018 12:55:15 +0000]
Tweak IID search depth for drop variants

crazyhouse STC
LLR: -2.95 (-2.94,2.94) [0.00,10.00]
Total: 24753 W: 12186 L: 11930 D: 637
http://35.161.250.236:6543/tests/view/5c1be4b96e23db24728955e0

crazyhouse LTC
LLR: -2.97 (-2.94,2.94) [0.00,10.00]
Total: 12175 W: 5928 L: 5853 D: 394
http://35.161.250.236:6543/tests/view/5c1bfc826e23db24728955e6

7 years agoIncrease connectivity bonus for drop variants
Fabian Fichter [Mon, 24 Dec 2018 14:03:58 +0000]
Increase connectivity bonus for drop variants

crazyhouse STC
LLR: -2.97 (-2.94,2.94) [0.00,10.00]
Total: 6655 W: 3246 L: 3251 D: 158
http://35.161.250.236:6543/tests/view/5c1bb69c6e23db24728955d7

crazyhouse LTC
LLR: -2.95 (-2.94,2.94) [0.00,10.00]
Total: 8857 W: 4309 L: 4281 D: 267
http://35.161.250.236:6543/tests/view/5c1bc8f56e23db24728955de

LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 2160 W: 1067 L: 1016 D: 77
http://35.161.250.236:6543/tests/view/5c216fdf6e23db247289560b

shogi
LLR: 1.41 (-2.94,2.94) [0.00,10.00]
Total: 2219 W: 1106 L: 1027 D: 86

minishogi
LLR: 0.04 (-2.94,2.94) [0.00,10.00]
Total: 5000 W: 2362 L: 2289 D: 349

7 years agoSimplify SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX loop (#1892)
noobpwnftw [Mon, 24 Dec 2018 10:24:29 +0000]
Simplify SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX loop (#1892)

When iterating through 'SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX' structure, do not use structure member beyond known size.

API is guaranteed to provide us at lease one element upon successful, and no element in the structure can have a zero size.

No functional change.

7 years agoFix crash in best_group() (#1891)
noobpwnftw [Sat, 22 Dec 2018 17:05:13 +0000]
Fix crash in best_group() (#1891)

This pull request fixes a rare crashing bug on Windows inside our NUMA code, first
reported by Dann Corbit in the following forum thread (thanks!):
https://groups.google.com/forum/?fromgroups=#!topic/fishcooking/gA6aoMEuOwg

The fix is to not use structure member beyond known size when iterating through
'SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX' structure. We note that the Microsoft
API is guaranteed to provide us at least one element upon successful, and no
element in the structure can have a zero size.

No functional change.

7 years agoExtend stack to ss-5, and remove conditions
Joost VandeVondele [Wed, 19 Dec 2018 20:04:36 +0000]
Extend stack to ss-5, and remove conditions

The `&& (ss-1)->killers[0] ` conditions are there seemingly to protect
accessing ss-5.

This is unneeded and not so intuitive (as the killer is checked for equality
with currentMove, and that one is non-zero once we're high enough in the stack,
this protects access to ss-5). We can just extend the stack from ss-4 to ss-5,
so we can call update_continuation_histories(ss-1, ..) always in search.

This goes a bit further than #1881 and addresses a comment in #1878.

passed STC:
http://tests.stockfishchess.org/tests/view/5c1aa8d50ebc5902ba127ad0
LLR: 3.12 (-2.94,2.94) [-3.00,1.00]
Total: 53515 W: 11734 L: 11666 D: 30115

passed LTC:
http://tests.stockfishchess.org/tests/view/5c1b272c0ebc5902ba12858d
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 140176 W: 23123 L: 23192 D: 93861

Bench: 3451321

7 years agoImprove endgame KBN vs K (#1877)
protonspring [Mon, 17 Dec 2018 17:25:25 +0000]
Improve endgame KBN vs K (#1877)

Even when playing without endgame table bases, this particular endgame should
be a win 100% of the time when Stockfish is given a KRBK position, assuming
there are enough moves remaining in the FEN to finish the game without hitting
the 50 move rule.

PROBLEM: The issue with master here is that the PushClose difference per square
is 20, however, the difference in squares for the PushToCorners array is usually
less. Thus, the engine prefers to move the kings closer together rather than pushing
the weak king to the correct corner.

What happens is if the weak king is in a safe corner, SF still prefers pushing the
kings together. Occasionally, the strong king traps the weak king in the safe corner.
It takes a while for SF to figure it out, but often draws the game by the 50 move rule
(on shorter time controls).

This patch increases the PushToCorners values to correct this problem. We also added
an assert to catch any overflow problem if anybody would want to increase the array
values again in the future.

It was tested in a couple of matches starting with random KRBK positions and showed
increased winning rates, see https://github.com/official-stockfish/Stockfish/pull/1877

No functional change

7 years agoUpdate our continuous integration machinery (#1889)
erbsenzaehler [Sun, 23 Dec 2018 17:17:44 +0000]
Update our continuous integration machinery (#1889)

* Update our continuous integration machinery

Ubuntu 16.04 can now be used with travis. Updating all the other stuff
when there.
Invoking the lld linker seems to save 5 minutes with clang on linux.

No functional change.

* fix

7 years agoUpdate variant list in readme
Fabian Fichter [Sun, 23 Dec 2018 17:10:32 +0000]
Update variant list in readme

7 years agoSupport kyoto shogi
Fabian Fichter [Sun, 23 Dec 2018 13:45:46 +0000]
Support kyoto shogi

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

Added features:
- Piece demotion
- Dropping pieces in promoted state

Repeating unchanged bench here to fix CI.
bench: 5141418

7 years agoAdd large-board variants to perft testing
Fabian Fichter [Sun, 23 Dec 2018 15:46:58 +0000]
Add large-board variants to perft testing

7 years agoUse a bit less code to calculate hashfull() (#1830)
mstembera [Sun, 23 Dec 2018 15:10:07 +0000]
Use a bit less code to calculate hashfull() (#1830)

* Use a bit less code to calculate hashfull(). Change post increment to preincrement as is more standard
in the rest of stockfish.  Scale result so we report 100% instead of 99.9% when completely full.

No functional change.

7 years agoTurn on random access for Syzygy files in Windows (#1840)
mstembera [Sun, 23 Dec 2018 15:09:03 +0000]
Turn on random access for Syzygy files in Windows (#1840)

* This is the Windows version of
https://github.com/official-stockfish/Stockfish/pull/1829

No functional change.

7 years agoSimplify generate_castling (#1885)
protonspring [Sun, 23 Dec 2018 15:05:24 +0000]
Simplify generate_castling (#1885)

Although this is a compile-time constant, we stick the castlingSide into a CastlingRight, then pull it out again. This seems unecessarily complex.

No functional change.

7 years agoSupport goro goro shogi
Fabian Fichter [Sat, 22 Dec 2018 15:14:59 +0000]
Support goro goro shogi

https://en.wikipedia.org/wiki/D%C5%8Dbutsu_sh%C5%8Dgi#Variation

7 years agoFix starting position of dobutsu shogi
Fabian Fichter [Fri, 21 Dec 2018 07:29:39 +0000]
Fix starting position of dobutsu shogi

7 years agoDisable probcut for clobber
Fabian Fichter [Thu, 20 Dec 2018 15:55:37 +0000]
Disable probcut for clobber

clobber
ELO: 32.05 +-21.6 (95%) LOS: 99.8%
Total: 1000 W: 546 L: 454 D: 0

7 years agoDisable NMP for breakthrough and clobber
Fabian Fichter [Thu, 20 Dec 2018 15:50:36 +0000]
Disable NMP for breakthrough and clobber

breakthrough
ELO: 29.25 +-30.6 (95%) LOS: 97.0%
Total: 500 W: 271 L: 229 D: 0

clobber
ELO: 64.66 +-31.0 (95%) LOS: 100.0%
Total: 500 W: 296 L: 204 D: 0

7 years agoConsider checks by pawn drops in king danger
Fabian Fichter [Sat, 15 Dec 2018 18:08:33 +0000]
Consider checks by pawn drops in king danger

crazyhouse STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 5743 W: 2882 L: 2699 D: 162
http://35.161.250.236:6543/tests/view/5c15435c6e23db7639060cf5

crazyhouse LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 4798 W: 2401 L: 2233 D: 164
http://35.161.250.236:6543/tests/view/5c1969046e23db24728955c6

7 years agoUnlimited mobility area for losing chess variants
Fabian Fichter [Tue, 18 Dec 2018 22:09:31 +0000]
Unlimited mobility area for losing chess variants

losers STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 1778 W: 818 L: 703 D: 257
http://35.161.250.236:6543/tests/view/5c1971166e23db24728955cb

giveaway STC
LLR: -2.98 (-2.94,2.94) [0.00,10.00]
Total: 19458 W: 6544 L: 6373 D: 6541
http://35.161.250.236:6543/tests/view/5c1970fc6e23db24728955c8

7 years agoSimplify KBNK endgame implementation
protonspring [Sat, 8 Dec 2018 17:08:59 +0000]
Simplify KBNK endgame implementation

We do not need to change the winnerKSq variable, so we can simplify
a little bit the logic of the code by changing only the loserKSq
variable when it is necessary. Also consolidate and clarify comments.

See the pull request thread for a proof that the code is correct:
https://github.com/official-stockfish/Stockfish/pull/1854

No functional change

7 years agoTweak isolated pawn penalty for losing chess variants
Fabian Fichter [Tue, 18 Dec 2018 20:09:16 +0000]
Tweak isolated pawn penalty for losing chess variants

giveaway STC
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 1699 W: 626 L: 526 D: 547
http://35.161.250.236:6543/tests/view/5c1954786e23db24728955bb

losers STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 4610 W: 2045 L: 1890 D: 675
http://35.161.250.236:6543/tests/view/5c1954b76e23db24728955be

7 years agoTweak endgame PSQ score for losers chess
Fabian Fichter [Tue, 18 Dec 2018 20:06:21 +0000]
Tweak endgame PSQ score for losers chess

losers STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 450 W: 262 L: 159 D: 29
http://35.161.250.236:6543/tests/view/5c1954486e23db24728955b9

losers LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 345 W: 209 L: 109 D: 27
http://35.161.250.236:6543/tests/view/5c197ea96e23db24728955cd

7 years agoDecrease passed pawn bonus for antichess variants
Fabian Fichter [Tue, 18 Dec 2018 23:41:24 +0000]
Decrease passed pawn bonus for antichess variants

giveaway STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 343 W: 166 L: 82 D: 95
http://35.161.250.236:6543/tests/view/5c1792fc6e23db24728955ae

giveaway LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 555 W: 219 L: 137 D: 199
http://35.161.250.236:6543/tests/view/5c1950cb6e23db24728955b4

7 years agoTweak threat evaluation for antichess variants
Fabian Fichter [Tue, 18 Dec 2018 21:33:04 +0000]
Tweak threat evaluation for antichess variants

giveaway STC
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 921 W: 372 L: 280 D: 269
http://35.161.250.236:6543/tests/view/5c1666936e23db24728955a5

losers STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 1753 W: 826 L: 710 D: 217
http://35.161.250.236:6543/tests/view/5c1666a66e23db24728955a8