fairystockfish.git
7 years agoFirst check threshold in space evaluation
Stefano Cardanobile [Wed, 8 Aug 2018 12:27:28 +0000]
First check threshold in space evaluation

Currently, we first calculate some bitboards at the top of Evaluation::space()
and then check whether we actually need them. Invert the ordering. Of course this
does not make a difference in current master because the constexpr bitboard
calculations are in fact done at compile time by any decent compiler, but I find
my version a bit healthier since it will always meet or exceed current implementation
even if we eventually change the spaceMask to something not contsexpr.

No functional change.

7 years agoKing Psqt Tuning
FauziAkram [Wed, 8 Aug 2018 15:48:06 +0000]
King Psqt Tuning

After a session of tuning for King Psqt I got some new values, which was later
tweaked manually by me Fauzi, to result in an Elo-gain patch which seems to scale
pretty well:

STC: LLR: -2.96 (-2.94,2.94) [0.00,4.00]
Total: 100653 W: 22550 L: 22314 D: 55789 [Yellow patch]

LTC: LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 147079 W: 25584 L: 24947 D: 96548 [Green Patch]

Bench: 4669050

7 years agoIntroduce voting system for best move selection
Stefano Cardanobile [Wed, 4 Jul 2018 19:54:38 +0000]
Introduce voting system for best move selection

Introduce voting system for best move selction in multi-threads mode.
Joint work with Stefan Geschwentner, based on ideas introduced by
Michael Stembera.

Moves are upvoted by every thread using the margin to the minimum score
across threads and the completed depth.

First thread voting for the winner move is selected as best thread.

Passed STC, LTC. A further LTC test with only 4 threads failed with positive
score. A LTC with 31 threads was stopped with LLR 0.77 after 25k games to
avoid use of excessive resources (equivalent to 1.5M STC games).

Similar ideas were proposed by Michael Stembera 2 years ago #507, #508.
This implementation seems simpler and more understandable, the results
slightly more promising.

Further possible work:

1) Tweak of the formula using for assigning votes.
2) Use a different baseline for the score dependent part: maximum score
or winning probability could make more sense.
3) Assign votes in `Thread::Search` as iterations are completed and use
voting results to stop search.
4) Select best thread as the threads voting for best move with the highest
completed depth or, alternatively, vote on PV moves.

Link to SPRT tests

[stopped LTC, 31 threads 20+0.02](http://tests.stockfishchess.org/tests/view/5b61dc090ebc5902bdb95192)
LLR: 0.77 (-2.94,2.94) [0.00,5.00]
Total: 25602 W: 3977 L: 3850 D: 17775
Elo: 1.70 [-0.68,4.07] (95%)

[passed LTC, 8 threads 20+0.02](http://tests.stockfishchess.org/tests/view/5b5df5180ebc5902bdb9162d)
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 44478 W: 7602 L: 7300 D: 29576
Elo: 1.92 [-0.29,3.94] (95%)

[failed LTC, 4 threads 20+0.02](http://tests.stockfishchess.org/tests/view/5b5f39ef0ebc5902bdb92792)
LLR: -2.94 (-2.94,2.94) [0.00,5.00]
Total: 29922 W: 5286 L: 5285 D: 19351
Elo: 0.48 [-1.98,3.10] (95%)

[passed STC, 4 threads 5+0.05](http://tests.stockfishchess.org/tests/view/5b5dbf0f0ebc5902bdb9131c)
LLR: 2.97 (-2.94,2.94) [0.00,5.00]
Total: 9108 W: 2033 L: 1858 D: 5217
Elo: 6.11 [1.26,10.89] (95%)

No functional change (in simple threat mode)

7 years agoSkip problematic travis mac builds
Fabian Fichter [Tue, 31 Jul 2018 12:33:35 +0000]
Skip problematic travis mac builds

7 years agoEnable CI for all branches
ianfab [Wed, 1 Aug 2018 18:42:10 +0000]
Enable CI for all branches

7 years agoImprove Stats definition
Marco Costalba [Sat, 28 Jul 2018 13:33:39 +0000]
Improve Stats definition

Use operator const T&() instead of operator T() to avoid possible
costly hidden copies of non-scalar nested types.

Currently StatsEntry has a single member T, so assuming
sizeof(StatsEntry) == sizeof(T) it happens to work, but it's
better to use the size of the proper entry type in std::fill.
Note that current code works because std::array items are ensured
to be allocated in contiguous memory and there is no padding among
nested arrays. The latter condition does not seem to be strictly
enforced by the standard, so be careful here.

Finally use address-of operator instead of get() to fully hide the
wrapper class StatsEntry at calling sites. For completness add
the arrow operator too and simplify the C++ code a bit more.

Same binary code as previous master under the Clang compiler.

No functional change.

7 years agoDivide piece score by 2 for drop variants
ianfab [Thu, 26 Jul 2018 20:22:44 +0000]
Divide piece score by 2 for drop variants

STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 302 W: 202 L: 96 D: 4

LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 262 W: 182 L: 77 D: 3

7 years agoSmall tweaks to recent code changes
Marco Costalba [Sat, 28 Jul 2018 08:38:36 +0000]
Small tweaks to recent code changes

As a note, current 2 LMR conditions on stat score
could be simplified in a single line:

r -= ((ss->statScore >= 0) - ((ss-1)->statScore >= 0)) * ONE_PLY;

We keep them splitted in 2 "if" statements because are easier
to (immediately) read.

No functional change.

7 years ago7-pieces Syzygy tablebase support
noobpwnftw [Thu, 26 Jul 2018 19:18:04 +0000]
7-pieces Syzygy tablebase support

This is the first patch teaching Stockfish how to use the 7-pieces
Syzygy tablebase currently calculated by Bujun Guo (@noobpwnftw) and
Ronald de Man (@syzygy1). The 7-pieces database are so big that they
required a change in the internal format of the files (technically,
some DTZ values are 16 bits long, so this had to be stored as wide
integers in the Huffman tree).

Here are the estimated file size for the 7-pieces Syzygy files,
compared to the 151G of the 6-pieces Syzygy:

```
7.1T    ./7men_testing/4v3_pawnful (ongoing, 120 of 325 sets remaining)
2.4T    ./7men_testing/4v3_pawnless
2.3T    ./7men_testing/5v2_pawnful
660G    ./7men_testing/5v2_pawnless
117G    ./7men_testing/6v1_pawnful
87G     ./7men_testing/6v1_pawnless
```
Some pointers to download or recalculate the tables:

Location of original files, by Bujun Guo:
ftp://ftp.chessdb.cn/pub/syzygy/

Mirrors:
http://tablebase.sesse.net/ (partial)
http://tablebase.lichess.ovh/tables/standard/7/

Generator code:
https://github.com/syzygy1/tb/

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

Bench: 5591925 (No functional change if SyzygyTB is not used)

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

Comment by Leonardo Ljubičić (@DragonMist)

This is an amazing achievement, generating and being able to use 7 men syzygy
on the fly. Thank you for your efforts @noobpwnftw !! Looking forward how this
will work in real life, and expecting some trade off between gaining perfect
play and slow disc Access, but once the disc speed and space is not a problem,
I expect 7 men to yield something like 30 elo at least.

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

Comment by Michael Byrne (@MichaelB7)

This definitely has a bright future. I turned off the 50 move rule (ala ICCF
new rules) for the following position:  `[d]8/8/1b6/8/4N2r/1k6/7B/R1K5 w - - 0 1`
This position is a 451 ply win for white (sans the 50 move rule, this position
was identified by the generator as the longest cursed win for white in KRBN v KRB).

Now Stockfish finds it instantly (as it should), nice work 👊👍 .
```
dep score     nodes     time
  7 +132.79  4339     0:00.00 Rb1+ Kc4 Nd6+ Kc5 Bg1+ Kxd6 Rxb6+ Kc7 Be3 Rh2 Bd4
  6 +132.79  1652     0:00.00 Rb1+ Kc4 Nd2+ Kd5 Rxb6 Rxh2 Nf3 Rf2
  5 +132.79  589       0:00.00 Rb1+ Kc4 Rxb6 Rxh2 Nf6 Rh1+ Kb2
  4 +132.79  308       0:00.00 Rb1+ Kc4 Nd6+ Kc3 Rxb6 Rxh2
  3 +132.79  88         0:00.00 Rb1+ Ka4 Nc3+ Ka5 Ra1+ Kb4 Ra4+ Kxc3 Rxh4
  2 +132.79  54         0:00.00 Rb1+ Ka4 Nc3+ Ka5 Ra1+ Kb4
  1 +132.7
```

7 years agoTweak SEE for nCheck and extinction variants
ianfab [Sat, 28 Jul 2018 15:22:39 +0000]
Tweak SEE for nCheck and extinction variants

3check STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 131 W: 115 L: 14 D: 2

extinction STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 92 W: 90 L: 1 D: 1

7 years agoIncrease king danger for drop games and nCheck
ianfab [Sat, 28 Jul 2018 14:53:18 +0000]
Increase king danger for drop games and nCheck

3check STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 229 W: 162 L: 60 D: 7

crazyhouse STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 722 W: 404 L: 294 D: 24

7 years agoSkip early pruning in case of mandatory captures
ianfab [Sat, 28 Jul 2018 13:51:02 +0000]
Skip early pruning in case of mandatory captures

giveaway STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 86 W: 83 L: 1 D: 2

losers STC
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 96 W: 89 L: 3 D: 4

7 years agoFix king piece-square table
ianfab [Sat, 28 Jul 2018 11:24:02 +0000]
Fix king piece-square table

chess STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 984 W: 284 L: 205 D: 495

bench: 4515065

7 years agoIntroduce tropism measure in king danger
Stéphane Nicolet [Sun, 29 Jul 2018 23:41:04 +0000]
Introduce tropism measure in king danger

This patch adds the tropism measure as a new term in the king danger variable.
Since we then trasform this variable as a Score via a quadratic formula, the
main effect of the patch is the positive correlation of the tropism measure
with some checks and pins information already present in the king danger code.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 6805 W: 1597 L: 1431 D: 3777
http://tests.stockfishchess.org/tests/view/5b5df8d10ebc5902bdb91699

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 32872 W: 5782 L: 5523 D: 21567
http://tests.stockfishchess.org/tests/view/5b5e08d80ebc5902bdb917ee

How to continue from there?

• it may be possible to use CloseEnemies=S(7,0)
• we may want to try incorporating other strategic features in the quadratic
  king danger.

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

Bench: 5591925

7 years agoIncrease the mg->eg gradient for the PawnlessFlank malus
Miguel Lahoz [Fri, 27 Jul 2018 16:23:53 +0000]
Increase the mg->eg gradient for the PawnlessFlank malus

Just a change of value to S(19, 84). Also somewhat of a follow up
to the recent tweak in definition of KingFlank.

I tried a lot of other values before this, increasing and decreasing
but with little success, and before giving up I wanted to try tweaking
the middlegame and endgame values in the opposite directions. I guess
this is somewhat lucky.

STC:
LLR: 2.94 (-2.94,2.94) [0.00,4.00]
Total: 67685 W: 15399 L: 14963 D: 37323
http://tests.stockfishchess.org/tests/view/5b5b5ae80ebc5902bdb8e4f8

LTC: (Also thanks to Stephane Nicolet)
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 54635 W: 9505 L: 9172 D: 35958
http://tests.stockfishchess.org/tests/view/5b5b78f20ebc5902bdb8ece5

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

Bench: 4883742

7 years agoSimplify cmh pruning
VoyagerOne [Fri, 27 Jul 2018 14:23:05 +0000]
Simplify cmh pruning

Simplify cmh pruning by removing PvNode exception

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 9935 W: 2330 L: 2184 D: 5421
http://tests.stockfishchess.org/tests/view/5b587dc00ebc5902bdb88424

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 20635 W: 3585 L: 3464 D: 13586
http://tests.stockfishchess.org/tests/view/5b58910a0ebc5902bdb885b9

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

Bench: 4905530

7 years agoFix a compilation error for MSVC
Stéphane Nicolet [Fri, 27 Jul 2018 13:46:13 +0000]
Fix a compilation error for MSVC

The previous commit wouldn't compile on the Microsoft Virtual Studio C++ compiler. So use a more compatible style for the same idea (which we already use in numerous places of evaluate.cpp, for instance in line 563).

Under the Clang compiler, both versions generate exactly the same machine code (same md5 signatures for the two binaries).

No functional change.

7 years agoRemove a popcount for HinderPassedPawn
Stéphane Nicolet [Fri, 27 Jul 2018 07:39:06 +0000]
Remove a popcount for HinderPassedPawn

Remove a popcount for HinderPassedPawn, and compensate by doubling
 the bonus from S(4,0) to to S(8,0).

Maybe it was pure luck, but we got the idea of this Elo gaining patch by
seing the simplification attempt by Mike Whiteley in pull request #1703.
This suggests that whenever we have a passed evaluation simplification,
we should consider the possibility that the master bonus has become
slightly out of tune with time, and we should try a few Elo gaining [0..4]
tests by hand-tuning the master bonus.

STC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 19136 W: 4388 L: 4147 D: 10601
http://tests.stockfishchess.org/tests/view/5b59be6f0ebc5902bdb8ac06

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 99382 W: 17324 L: 16843 D: 65215
http://tests.stockfishchess.org/tests/view/5b59d2410ebc5902bdb8afa8

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

Bench: 4688817

7 years agoTweak KingFlank when king is on edge files
Miguel Lahoz [Wed, 25 Jul 2018 16:11:51 +0000]
Tweak KingFlank when king is on edge files

This tweak excludes files D and E from the KingFlank bitboard when our
king is on the A or H files respectively. As far as I can tell, this
affects two things: the calculation for CloseEnemies and PawnlessFlank.
Aside from filtering out slightly less relevant attacks in the flank,
I suspect this helps with king prophylaxis, avoiding attacks and moving
towards the center when the pawns start to come off.

STC
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 56755 W: 12881 L: 12489 D: 31385
http://tests.stockfishchess.org/tests/view/5b58a94c0ebc5902bdb88c72

LTC
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 130205 W: 22536 L: 21957 D: 85712
http://tests.stockfishchess.org/tests/view/5b58b7580ebc5902bdb89029

How to continue: Tweaking the two bonuses mentioned might give some
gain, although as far as I can tell, CloseEnemies is very sensitive to
even small changes.

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

Bench: 5026009

7 years agoSmall reformat in evaluate threats (non functional)
Jekaa [Fri, 27 Jul 2018 08:24:49 +0000]
Small reformat in evaluate threats (non functional)

When evaluating threat by safe pawn and pawn push the same expression is used.

STC
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 19444 W: 4540 L: 4309 D: 10595
http://tests.stockfishchess.org/tests/view/5b5a6e150ebc5902bdb8c5c0

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

No functional change.

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

Comments by Stéphane Nicolet:

I don't measure any speed-up on my system, with two parallel benches at depth 22:

Total time (ms) : 74989
Nodes searched : 144830258
Nodes/second : 1931353
master

Total time (ms) : 75341
Nodes searched : 144830258
Nodes/second : 1922329
testedpatch

And anyway, like Stefan Geschwentner, I don't think that a 0.3% speed-up would
be enough to pass a [0..5] LTC test -- as a first approximation, we have this
rule of thumb that 1% speed-up gives about 1 Elo point.

However, considering the facts that the reformatting by itself is interesting,
that this is your first green test and that you played by the rules by running
the SPRT[0..5] test before opening the pull request, I will commit the change.
I will only take the liberty to change the occurrences of safe in lines 590 and
591 to b, to make the code more similar to lines 584 and 585.

So approved, and congrats :-)

7 years agoFix condition for error message of signature script
ianfab [Wed, 25 Jul 2018 19:02:28 +0000]
Fix condition for error message of signature script

Use obtained bench instead of reference bench when checking for crash.

No functional change.

7 years agoRemove condition for pawn threats
protonspring [Thu, 26 Jul 2018 07:34:14 +0000]
Remove condition for pawn threats

It appears as though removing squares that are already attacked
by our pawns can be removed.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 51242 W: 11503 L: 11440 D: 28299
http://tests.stockfishchess.org/tests/view/5b58b5a40ebc5902bdb88f52

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 35246 W: 6063 L: 5966 D: 23217
http://tests.stockfishchess.org/tests/view/5b58f8e20ebc5902bdb8959b

How to continue after this patch: there is now a slight semantic
overlap between the ThreatByPawnPush and the ThreatBySafePawn bonuses,
so hand-tuning either of these, or both at the same time, is natural.

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

Bench 4734881

7 years agoRank threats on pinned pawns
Stefan Geschwentner [Wed, 25 Jul 2018 23:28:37 +0000]
Rank threats on pinned pawns

Add for pinned pawns half of the standard rank based threat bonus.

STC:
LLR: 2.97 (-2.94,2.94) [0.00,5.00]
Total: 44010 W: 9987 L: 9635 D: 24388
http://tests.stockfishchess.org/tests/view/5b58aa780ebc5902bdb88c7a

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 29475 W: 5089 L: 4847 D: 19539
http://tests.stockfishchess.org/tests/view/5b58b56c0ebc5902bdb88f37

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

Bench: 4503866

7 years agoFix Analysis Contempt combo option
Niklas Fiekas [Wed, 25 Jul 2018 07:51:10 +0000]
Fix Analysis Contempt combo option

7 years agoCode clean-up
Stéphane Nicolet [Wed, 25 Jul 2018 16:31:02 +0000]
Code clean-up

This patch implements some idea by Alain Savard and Mike Whiteley taken from the perpertual renaming/reformatting thread.

This is a pure code cleaning patch (so no change in functionality), but I use it as a pretext to correct the bogus bench number that I introduced in the previous commit.

Bench: 4413383

7 years agoTweak stat bonus
Stefan Geschwentner [Wed, 25 Jul 2018 16:01:47 +0000]
Tweak stat bonus

Increase stat bonus by 1/32 and adjust the divisor of main and capture
history tables to 10692.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 28437 W: 6444 L: 6166 D: 15827
http://tests.stockfishchess.org/tests/view/5b579b4d0ebc5902bdb87139

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 111204 W: 19160 L: 18644 D: 73400
http://tests.stockfishchess.org/tests/view/5b57a7c60ebc5902bdb872d3

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

Bench: 4778882

7 years agoCounterMove History Pruning Tweak
VoyagerOne [Wed, 25 Jul 2018 11:49:35 +0000]
CounterMove History Pruning Tweak

STC: (Yellow)
LLR: -2.96 (-2.94,2.94) [0.00,5.00]
Total: 40124 W: 8817 L: 8751 D: 22556
http://tests.stockfishchess.org/tests/view/5b5690180ebc5902bdb85c8a

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 21599 W: 3811 L: 3599 D: 14189
http://tests.stockfishchess.org/tests/view/5b5757010ebc5902bdb86b1f

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

Bench:  4794161

7 years agoFix signature verification script
Fabian Fichter [Wed, 25 Jul 2018 14:20:41 +0000]
Fix signature verification script

7 years agoRevert "Tweak reductions formula: 0.88 * depth + 0.12"
Stefan Geschwentner [Tue, 24 Jul 2018 10:16:49 +0000]
Revert "Tweak reductions formula: 0.88 * depth + 0.12"

This patch reverts the recent commit called "Tweak reductions formula, etc."
The decisions for the revert decision were as follows:

1) The original commit called "Tweak reductions formula: 0.88 * depth + 0.12"
showed bad scaling at in a Very Long Time Control (VLTC) test:

VLTC (180+1.8):
LLR: -1.59 (-2.94,2.94) [0.00,5.00]
Total: 14968 W: 2247 L: 2257 D: 10464
http://tests.stockfishchess.org/tests/view/5b559ffa0ebc5902bdb84f36

2) So there was a suspicion that the original fast passing LTC test which lead
us to accept the patch may have been a statistical accident, so we organized
a match against the previous master at LTC to get an Elo estimate for the
patch:

LTC match:
ELO: -1.83 +-2.1 (95%) LOS: 4.3%
Total: 36018 W: 6018 L: 6208 D: 23792
http://tests.stockfishchess.org/tests/view/5b55f8110ebc5902bdb8526f

3) Based on these results, we ran a simplification test with [-3..1] bounds
for the revert at LTC:

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 41501 W: 7107 L: 7020 D: 27374
http://tests.stockfishchess.org/tests/view/5b5738670ebc5902bdb86932

4) So we revert.

Bench: 4491691

7 years agoFix relative_rank for maximum rank != 2^n
ianfab [Tue, 24 Jul 2018 20:27:05 +0000]
Fix relative_rank for maximum rank != 2^n

No functional change for 8x8 boards.

7 years agoAdd support for Judkins Shogi
ianfab [Tue, 24 Jul 2018 20:20:52 +0000]
Add support for Judkins Shogi

7 years agoSlight decrease of overload value
double-beep [Mon, 23 Jul 2018 20:06:24 +0000]
Slight decrease of overload value

Set overload value to S(13,6)

STC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 27606 W: 6371 L: 6094 D: 15141
http://tests.stockfishchess.org/tests/view/5b5455840ebc5902bdb82425

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 112435 W: 19442 L: 18921 D: 74072
http://tests.stockfishchess.org/tests/view/5b546d4a0ebc5902bdb82741

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

Bench: 4937000

7 years agoTweak reductions formula: 0.88 * depth + 0.12
Stefan Geschwentner [Mon, 23 Jul 2018 07:16:14 +0000]
Tweak reductions formula: 0.88 * depth + 0.12

Replace the depth part in the reduction formula for higher depths
with a slower growing linear function. So for depth > 3 less reductions
are used.

What we can try next:
- move the break point to even higher depths
- tweak the slope for lower and higher depth
- even possibly use a further higher depth threshold for a another
  slower growing function

STC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 25317 W: 5763 L: 5505 D: 14049
http://tests.stockfishchess.org/tests/view/5b54f9f70ebc5902bdb840ed

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 7451 W: 1320 L: 1167 D: 4964
http://tests.stockfishchess.org/tests/view/5b54feeb0ebc5902bdb84244

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

Bench: 4617359

7 years agoSimplify condition for ThreatByRook
Goodkov Vasiliy Aleksandrovich [Sun, 22 Jul 2018 22:02:37 +0000]
Simplify condition for ThreatByRook

Remove stronglyProtected Queen for ThreatByRook. Idea is that in the
current master the  SliderOnQueen bonus and the see_ge() function do
something similar as ThreatByRook for Queen, so this patch removes
some redundancy, in that sense.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 21878 W: 4939 L: 4818 D: 12121
http://tests.stockfishchess.org/tests/view/5b53a83b0ebc5902bdb815d1

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 35307 W: 5979 L: 5882 D: 23446
http://tests.stockfishchess.org/tests/view/5b53b60b0ebc5902bdb8174c

Close https://github.com/official-stockfish/Stockfish/pull/1690

Bench: 4834554

7 years agosimplified forward ranks.
protonspring [Sat, 21 Jul 2018 06:17:27 +0000]
simplified forward ranks.

This is a non-functional simplification. We change replaces an 'OR'
and a lookup (rank_bb(ksq)) with a bitwise ~.  This is fewer operations
and is probably faster.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 25441 W: 5689 L: 5575 D: 14177
http://tests.stockfishchess.org/tests/view/5b52d05a0ebc5902bdb8010e

LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 26904 W: 4664 L: 4553 D: 17687
http://tests.stockfishchess.org/tests/view/5b543df70ebc5902bdb8212d

No functional change.

7 years agoSlight tidy up in endgame machinery
Marco Costalba [Sat, 21 Jul 2018 08:30:22 +0000]
Slight tidy up in endgame machinery

No functional change.

7 years agoNon functional LMR rewrite.
Stefan Geschwentner [Sat, 21 Jul 2018 02:21:54 +0000]
Non functional LMR rewrite.

7 years agoAdd shogi variants to readme
Fabian Fichter [Sun, 22 Jul 2018 15:50:12 +0000]
Add shogi variants to readme

7 years agoSupport FEN notation for promoted shogi pieces
ianfab [Sun, 22 Jul 2018 15:42:12 +0000]
Support FEN notation for promoted shogi pieces

Parse and generate FENs with promoted pieces using the '+'-Notation,
e.g. '+r' for a promoted rook.

7 years agoPerformance improvement for small board sizes
ianfab [Sun, 22 Jul 2018 11:22:55 +0000]
Performance improvement for small board sizes

Filter out illegal moves early.

No functional change.

7 years agoFix move validation for minishogi
ianfab [Sun, 22 Jul 2018 11:12:49 +0000]
Fix move validation for minishogi

Invalidate drops and normal moves that result in a piece having no legal move.
Perft looks good now for euroshogi and minishogi, so add them to tests.

7 years agoExtend perft tests
ianfab [Sat, 21 Jul 2018 19:35:09 +0000]
Extend perft tests

7 years agoAdd perft tests for variants
ianfab [Sat, 21 Jul 2018 19:14:58 +0000]
Add perft tests for variants

No functional change.

7 years agoPartial support for shogi variants
ianfab [Sat, 21 Jul 2018 15:25:57 +0000]
Partial support for shogi variants

Support minishogi and euroshogi with the limitation that the position
must be sent via "position startpos moves ..." and not using an FEN.

Limitations:
- FENs with promoted pieces do not work.
- Mates by pawn drops are not recognized to be losing.

bench: 4604661

7 years agoSimplify the "overload" condition
Alain SAVARD [Fri, 20 Jul 2018 23:57:45 +0000]
Simplify the "overload" condition

This is a follow-up of the previous pull request (#1686) by Miguel.
We simplify the "Overload" bonus condition by re-using the "weak"
variable, which captures well the essence of the overload condition.
This may also be a small speed optimization because the weak variable
is in a register at this point of the code.

http://tests.stockfishchess.org/tests/view/5b527b440ebc5902bdb7f7db
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 10925 W: 2517 L: 2374 D: 6034

http://tests.stockfishchess.org/tests/view/5b527f930ebc5902bdb7f883
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 15569 W: 2697 L: 2568 D: 10304

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

Bench: 5010472

7 years agoRemove connectivity.
Miguel Lahoz [Thu, 19 Jul 2018 11:18:30 +0000]
Remove connectivity.

There seems to be some strange interaction between Overload and Connectivity.
Overload encourages us to not have too many defended and attacked pieces,
as this may expose us to various tactics. This feels somewhat like it is in
conflict with Connectivity, where pieces are defended preemptively.

Here I take the "pick one or the other" approach and just remove connectivity,
while strengthening the effect of Overload to compensate. The reasoning is that
if we defend our pieces preemptively, then it does get attacked, we want to do
something about it so we don't get penalized by Overload. On the other
hand, if it doesn't get attacked, then there's no need to defend it.

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 27734 W: 6174 L: 6064 D: 15496
http://tests.stockfishchess.org/tests/view/5b5073bd0ebc5902bdb7ba5c

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 51606 W: 8897 L: 8827 D: 33882
http://tests.stockfishchess.org/tests/view/5b50aa900ebc5902bdb7bf29

Bench: 4658006

7 years agoBetter check evasion move sorting
Stefan Geschwentner [Thu, 19 Jul 2018 16:26:05 +0000]
Better check evasion move sorting

Use in addition the counter move history table for sorting quiet
check evasion moves in main and quiecence search. Also rename
"contHistory" to "continuationHistory" while there.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 73284 W: 16433 L: 15938 D: 40913
http://tests.stockfishchess.org/tests/view/5b4f526e0ebc5902bdb7a401

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 12135 W: 2171 L: 1997 D: 7967
http://tests.stockfishchess.org/tests/view/5b4fc0ef0ebc5902bdb7ae0e

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

Bench 4817583

7 years agoUse single value for KingProtector.
Miguel Lahoz [Mon, 16 Jul 2018 16:51:43 +0000]
Use single value for KingProtector.

After some recent big tuning session, the values for King Protector were
simplified to only be used on minor pieces. This patch tries to further
simplify by just using a single value, since current S(6,5) and S(5,6)
are close to each other. The value S(6,6) ended up passing, although
S(5,5) was also tried and failed STC.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 14261 W: 3288 L: 3151 D: 7822
http://tests.stockfishchess.org/tests/view/5b4ccdf50ebc5902bdb77f65

LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 19606 W: 3396 L: 3273 D: 12937
http://tests.stockfishchess.org/tests/view/5b4ce4280ebc5902bdb7803b

Bench: 5448998

7 years ago Simplify Overload condition
ElbertoOne [Wed, 18 Jul 2018 06:36:23 +0000]
 Simplify Overload condition

Extend the bonus for Overload to cases where our side
 has more than one attacker to a non pawn piece.
Based on an idea by Bryan in the forum. For instance,
 now black gets the overload bonus in this position:
 8/5R1k/6pb/p6p/P1N4P/1Pp5/2K3P1/2N4r b - - 6 46
 because two black pieces are attacking the knight on c1
 that is defended only by the king.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 57446 W: 12762 L: 12711 D: 31973
http://tests.stockfishchess.org/tests/view/5b4ca9970ebc5902bdb77a88

LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 42113 W: 7295 L: 7209 D: 27609
http://tests.stockfishchess.org/tests/view/5b4ccea00ebc5902bdb77f69

Bench: 4667263

7 years agoMinor code style tweaks
DU-jdto [Mon, 16 Jul 2018 20:53:50 +0000]
Minor code style tweaks

No functional change.

7 years agoMinor whitespace formatting changes
ianfab [Sun, 15 Jul 2018 12:30:59 +0000]
Minor whitespace formatting changes

No functional change.

7 years agoAllow Position::init() to be called multiple times.
Gian-Carlo Pascutto [Tue, 17 Jul 2018 21:13:12 +0000]
Allow Position::init() to be called multiple times.

For the rationale to allow this, see commit
a66c73deef420104e74b6645ee60e20b37fd8549

This was broken when cuckoo hashing was added, and
subtly broke (for example) lichess' Android application,
thus illustrating the original judgement was sound.

No functional change.

7 years agoUpdate variant list in readme
Fabian Fichter [Tue, 17 Jul 2018 17:12:04 +0000]
Update variant list in readme

7 years agoUse endgame evaluation only for moderate variants
ianfab [Sun, 15 Jul 2018 10:20:42 +0000]
Use endgame evaluation only for moderate variants

Endgame evaluation functions and scaling factors are no longer applied
to games where they are not applicable, e.g., crazyhouse, giveaway, etc.

No functional change for standard chess.

7 years agoSupport giveaway, antichess, extinction, and kinglet chess
ianfab [Sat, 14 Jul 2018 17:33:36 +0000]
Support giveaway, antichess, extinction, and kinglet chess

Includes implementation of
- positions without kings
- castling with non-king piece
- winning condition "extinction"
- piece type commoner

bench: 4948195

7 years agoRemove rank limitation for MinorBehindPawn
protonspring [Sat, 14 Jul 2018 06:26:57 +0000]
Remove rank limitation for MinorBehindPawn

This is a functional simplification.  It seems like the rank restriction
for MinorBehindPawn can be removed.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 61195 W: 13404 L: 13360 D: 34431
http://tests.stockfishchess.org/tests/view/5b47e6f00ebc5978f4be3fc0

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 31701 W: 5367 L: 5264 D: 21070
http://tests.stockfishchess.org/tests/view/5b48a2cb0ebc5978f4be4769

Bench: 4938702

7 years agoTuned Values after 2 million spsa games
candirufish [Sat, 14 Jul 2018 06:08:32 +0000]
Tuned Values after 2 million spsa games

Various king and pawn eval values tuned after 2 million games. Rounding
slightly adjusted.

LTC: http://tests.stockfishchess.org/tests/view/5b477a260ebc5978f4be3ed4
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 32783 W: 5852 L: 5588 D: 21343

STC: http://tests.stockfishchess.org/tests/view/5b472d420ebc5978f4be3e4d
LLR: 3.23 (-2.94,2.94) [0.00,4.00]
Total: 44380 W: 10201 L: 9841 D: 24338

I think I reached the limit of the fishtest framework. It frequently
crashed at 2 million games already. The small values also moved a lot
throughout the entire tuning session though with smaller margin. The
passed danger and close enemies values seems the most sensitive (changing
close enemies alone to 6 failed before but now it passes), whether or not
they are close to optimal I don't know, but it seems some parameters are
also correlated to others.

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

bench: 5103722

7 years agoUpdate variant list in readme
Fabian Fichter [Sun, 8 Jul 2018 15:47:10 +0000]
Update variant list in readme

7 years agoSupport chessgi and pocketknight
ianfab [Sun, 8 Jul 2018 15:35:39 +0000]
Support chessgi and pocketknight

7 years agoFix appveyor build
ianfab [Sun, 8 Jul 2018 07:51:02 +0000]
Fix appveyor build

Explicitly include <functional> for std::greater.

7 years agoSupport shatar (incomplete), chigorin, and almost chess
ianfab [Sat, 7 Jul 2018 15:22:35 +0000]
Support shatar (incomplete), chigorin, and almost chess

bench: 4636838

7 years agoUse a general mobility bonus formula for fairy pieces
ianfab [Sat, 7 Jul 2018 14:19:28 +0000]
Use a general mobility bonus formula for fairy pieces

No functional change for standard chess.

7 years agoRemove offset in thread redistribution scheme.
Joost VandeVondele [Thu, 5 Jul 2018 16:33:18 +0000]
Remove offset in thread redistribution scheme.

doesn't have a benefit.

passed STC (8 threads):
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 19574 W: 4028 L: 3904 D: 11642
http://tests.stockfishchess.org/tests/view/5b3e48950ebc5902b9fff080

passed LTC (8 threads):
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 21293 W: 3626 L: 3506 D: 14161
http://tests.stockfishchess.org/tests/view/5b3eefd60ebc5902b9fffa81

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

No functional change single threaded.

7 years agoSimplify ThreatByKing to be a single Score.
31m059 [Thu, 5 Jul 2018 02:18:52 +0000]
Simplify ThreatByKing to be a single Score.

In the current master, ThreatByKing is an array of two Scores, one for
when we have a single attack and one for when we have many. The latter
case is very rarely called during bench and was recently given a strange
negative value during a tuning run, as pointed out by @candirufish on
commit efd4ca2.  Here, we simplify away this second case entirely, and
increase the remaining ThreatByKing to compensate.

Although I derived the parameter tweak independently, with the goal of
preserving the same average bonus, I later noticed that a very similar
Score had already been derived by an ongoing SPSA tuning session.
I therefore recognize @candirufish for first discovering these values.

I would also like to thank @Rocky640 for valuable feedback that pointed
me in the direction of ThreatByKing.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 7677 W: 1772 L: 1623 D: 4282
http://tests.stockfishchess.org/tests/view/5b3db0320ebc5902b9ffe97a

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 108031 W: 18329 L: 18350 D: 71352
http://tests.stockfishchess.org/tests/view/5b3dbf4b0ebc5902b9ffe9db

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

Bench: 4678861

7 years agoFix #3: Filter out double steps when disabled
ianfab [Thu, 5 Jul 2018 19:29:40 +0000]
Fix #3: Filter out double steps when disabled

Fixes pseudo-legal move validation for variants without double steps.

7 years agoCapture Stat Tweak
VoyagerOne [Tue, 3 Jul 2018 23:11:54 +0000]
Capture Stat Tweak

Penalize capture moves that fail to create a cutoff even at quiet move cutoff.

STC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 19004 W: 4284 L: 4059 D: 10661
http://tests.stockfishchess.org/tests/view/5b3a7d4d0ebc5902b9ffb6ea

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 23100 W: 3981 L: 3765 D: 15354
http://tests.stockfishchess.org/tests/view/5b3aa4550ebc5902b9ffb8cf

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

Bench: 5232010

7 years agoSimplify saving a TT entry.
Joost VandeVondele [Tue, 3 Jul 2018 22:58:16 +0000]
Simplify saving a TT entry.

Avoid passing TT.generation() to TTEntry::save() at every call,
moving the implementation of TTEntry::save from tt.h to tt.cpp.

tested for no regression:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 53787 W: 11948 L: 11890 D: 29949
http://tests.stockfishchess.org/tests/view/5b2ff37f0ebc5902b2e582fe

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

No functional change.

7 years agoReduce scope of variables
Joost VandeVondele [Tue, 3 Jul 2018 22:48:20 +0000]
Reduce scope of variables

Small cleanup TranspositionTable:clear().

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

No functional change.

7 years agoMinishogi WIP
ianfab [Tue, 3 Jul 2018 20:50:54 +0000]
Minishogi WIP

7 years agoMinor readme changes
Fabian Fichter [Tue, 3 Jul 2018 16:11:25 +0000]
Minor readme changes

7 years agoAdd links to readme
Fabian Fichter [Tue, 3 Jul 2018 16:04:01 +0000]
Add links to readme

7 years agoFix tablebase initialization (#2)
ianfab [Mon, 2 Jul 2018 21:53:31 +0000]
Fix tablebase initialization (#2)

7 years agoIncrease timeout for Travis perft test (#2)
ianfab [Mon, 2 Jul 2018 21:23:32 +0000]
Increase timeout for Travis perft test (#2)

7 years agoUpdate appveyor link
ianfab [Mon, 2 Jul 2018 20:26:53 +0000]
Update appveyor link

7 years agoEnable Travis CI
ianfab [Mon, 2 Jul 2018 20:08:35 +0000]
Enable Travis CI

bench: 4847945

7 years agoScale passed pawn evaluation by promotion piece value
ianfab [Tue, 26 Jun 2018 20:45:23 +0000]
Scale passed pawn evaluation by promotion piece value

No functional change for standard chess.

Shatranj STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 82 W: 63 L: 1 D: 18

7 years agoAdd support for smaller board sizes, implement los alamos chess
ianfab [Sun, 1 Jul 2018 14:01:24 +0000]
Add support for smaller board sizes, implement los alamos chess

However, the evaluation does not reflect the dependence of symmetry
on number of ranks and files yet.

7 years agoEuroShogi WIP
ianfab [Sun, 1 Jul 2018 12:39:44 +0000]
EuroShogi WIP

Promotion rules, pawn drop restrictions, and perpetuals not implemented yet.

7 years agoFix king of the hill and racing kings
ianfab [Wed, 27 Jun 2018 20:37:20 +0000]
Fix king of the hill and racing kings

Furthermore introduce some basic variant-specific bonuses.

7 years agoMove PSQ score to Position
Ondrej Mosnáček [Sat, 9 Jun 2018 11:45:49 +0000]
Move PSQ score to Position

This patch simplifies Position::do_move() by moving the PSQ score from
StateInfo to Position and updating it inside the put/remove/move_piece
functions.

The downside is that there is now slightly more computation done in
Position::undo_move(), but the fishtest results are Elo neutral.

Passed STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 78820 W: 15775 L: 15760 D: 47285
http://tests.stockfishchess.org/tests/view/5b1cd1d00ebc5902ab9c64ab

Passed LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 32966 W: 5716 L: 5615 D: 21635
http://tests.stockfishchess.org/tests/view/5b31e1230ebc5902b2e5a833

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

No functional change.

7 years agoRemove make_bitboard()
protonspring [Sun, 17 Jun 2018 02:26:25 +0000]
Remove make_bitboard()

In current master, the function make_bitboard() does nothing apart from
helping initialize the SquareBB[] array. This seems like an unnecessary
abstraction layer.

The advantage of make_bitboard() is we can define a bitboard, in a simple
and general way, not only from a single square but also from a list of
squares. It is more elegant, faster and  readable than combining multiple
SquareBB explicitly, but the last complex use case in evaluation was
simplified away a few months ago.

If make_bitboard() becomes useful again to define complicated bitboards,
it will be easy enough to reintroduce it using this pull request as
an implementation reference.

No functional change.

7 years agoSimplify KingProtector penalty.
joergoster [Sun, 24 Jun 2018 15:07:38 +0000]
Simplify KingProtector penalty.

Recent tuning results implied this penalty is more important for knights
and bishops, and almost negligible for rooks and queen.

Passed as simplification both
STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 20873 W: 4592 L: 4469 D: 11812
http://tests.stockfishchess.org/tests/view/5b2fb4d00ebc5902b2e57e84

and LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 46069 W: 7949 L: 7870 D: 30250
http://tests.stockfishchess.org/tests/view/5b2fcc4b0ebc5902b2e580c5

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

Bench: 5487679

7 years agoSimplify HinderPassedPawn bonus
Alain SAVARD [Sun, 24 Jun 2018 22:06:13 +0000]
Simplify HinderPassedPawn bonus

Make sure each piece is not scored more than once as a passed pawn "hinderer",
by scoring only the blockers along the passed pawn path. Inspired by TCEC Game 29.

Passed STC as a simplification
http://tests.stockfishchess.org/tests/view/5b3016d00ebc5902b2e58552
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 75388 W: 16656 L: 16641 D: 42091

Passed LTC as a simplification
http://tests.stockfishchess.org/tests/view/5b302ed90ebc5902b2e587fc
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 49157 W: 8460 L: 8386 D: 32311

Current master was also counting the number of attacks along a passed pawn path,
which might be misleading:

a) a defender might be counted many times for the same pawn path. For example a
   White rook on a1 attacking a black pawn on a7 would score the bonus * 6 but
   would be probably better placed on a8

b) a defender might be counted on different pawn paths and might be overloaded. For
   example a Ke4 or Qe4 against pawns on d6  and f6 would score the bonus * 6.

Counting each blocker or attacker only once is more complicated, and does not help
either: http://tests.stockfishchess.org/tests/view/5b2ff1cb0ebc5902b2e582b2

After this small simplification, there might be ways to increase the HinderPassedPawn
penalty.

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

Bench: 4520519

7 years agoAdd variants to readme
Fabian Fichter [Mon, 25 Jun 2018 22:22:27 +0000]
Add variants to readme

7 years agoSupport crazyhouse and loop chess
ianfab [Mon, 25 Jun 2018 21:26:05 +0000]
Support crazyhouse and loop chess

7 years agoAdd brief description to readme
Fabian Fichter [Mon, 25 Jun 2018 15:43:13 +0000]
Add brief description to readme

7 years agoSupport 3check/5check/nCheck ; initial development for crazyhouse
ianfab [Sun, 24 Jun 2018 19:18:39 +0000]
Support 3check/5check/nCheck ; initial development for crazyhouse

7 years agoSupport king of the hill, racing kings, and losers chess
ianfab [Sun, 24 Jun 2018 15:06:49 +0000]
Support king of the hill, racing kings, and losers chess

Add options for bare king rule, checkmate/stalemate value,
king target squares, mandatory captures, and prohibited checks to
support king of the hill, racing kings, and losers, and to complete the
implementation of shatranj.

7 years agoReduce limit to 32 piece types
ianfab [Sat, 23 Jun 2018 23:22:12 +0000]
Reduce limit to 32 piece types

7 years agoAnother set of tuned values after one million games
candirufish [Sat, 23 Jun 2018 06:57:05 +0000]
Another set of tuned values after one million games

Another set of tuned values, obtained by a long session of one million games.

STC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 15810 W: 3687 L: 3458 D: 8665
http://tests.stockfishchess.org/tests/view/5b2d32f60ebc5902b2e55d9e

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 102118 W: 18146 L: 17651 D: 66321
http://tests.stockfishchess.org/tests/view/5b2d372c0ebc5902b2e55e0a

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

Bench: 4557946

7 years agoInitial development for fairy chess variants
ianfab [Fri, 22 Jun 2018 19:16:16 +0000]
Initial development for fairy chess variants

Generalize code to be able to easily configure new variants
with different pieces and rules. Add a few initial variants:
- Chess
- Makruk
- ASEAN
- Ai-Wok
- Shatranj
- Amazon
- Hoppel-Poppel

7 years agoIncrease outflanking weight to 12
Stéphane Nicolet [Thu, 21 Jun 2018 23:28:02 +0000]
Increase outflanking weight to 12

Give more incentive to king activity in the endgame by increasing the weight
of the "outflanking" variable from 8 to 12 in the function evaluate_initiative().

Finished yellow after 133102 games at STC:

LLR: -3.07 (-2.94,2.94) [0.00,4.00]
Total: 133102 W: 29535 L: 29179 D: 74388
http://tests.stockfishchess.org/tests/view/5b2b63fe0ebc5902b2e54475

Passed LTC:

LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 28027 W: 4918 L: 4672 D: 18437
http://tests.stockfishchess.org/tests/view/5b2ba39e0ebc5902b2e54a64

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

Bench: 4721753

7 years agoTuned values after 505k games
candirufish [Thu, 21 Jun 2018 08:20:31 +0000]
Tuned values after 505k games

Various king and pawn tuned eval values after 505k 60 sec 600 nodes time
SPSA games. Adjusted passed rank and file values to be symmetrical.

Passed LTC (after passed rank/file adjustment):
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 37906 W: 6953 L: 6668 D: 24285
http://tests.stockfishchess.org/tests/view/5b2790960ebc5902b8d17ba1

A previous, very similar version with raw tuned values passed STC and LTC:

STC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 39515 W: 9227 L: 8900 D: 21388
http://tests.stockfishchess.org/tests/view/5b277e3e0ebc5902b8d17ac9

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 14618 W: 2743 L: 2537 D: 9338
http://tests.stockfishchess.org/tests/view/5b2785020ebc5902b8d17b98

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

bench: 4777396

7 years agoFix GCC 8 cast warnings
Michael An [Thu, 21 Jun 2018 01:05:27 +0000]
Fix GCC 8 cast warnings

Silences the following warnings when compiling with GCC 8.
The fix is to use an intermediate pointer to anonymous function:

```
misc.cpp: In function 'int WinProcGroup::get_group(size_t)':
misc.cpp:241:77: warning: cast between incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to 'fun1_t' {aka 'bool (*)(_LOGICAL_PROCESSOR_RELATIONSHIP, _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX*, long unsigned int*)'} [-Wcast-function-type]
   auto fun1 = (fun1_t)GetProcAddress(k32, "GetLogicalProcessorInformationEx");
                                                                             ^
misc.cpp: In function 'void WinProcGroup::bindThisThread(size_t)':
misc.cpp:309:71: warning: cast between incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to 'fun2_t' {aka 'bool (*)(short unsigned int, _GROUP_AFFINITY*)'} [-Wcast-function-type]
   auto fun2 = (fun2_t)GetProcAddress(k32, "GetNumaNodeProcessorMaskEx");
                                                                       ^
misc.cpp:310:67: warning: cast between incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to 'fun3_t' {aka 'bool (*)(void*, const _GROUP_AFFINITY*, _GROUP_AFFINITY*)'} [-Wcast-function-type]
   auto fun3 = (fun3_t)GetProcAddress(k32, "SetThreadGroupAffinity");
                                                                   ^
```

No functional change.

7 years agoFix MSVC error
mstembera [Tue, 12 Jun 2018 22:20:38 +0000]
Fix MSVC error

Compiling the current master with MSVC gives the following error:

```
search.cpp(956): error C2660: 'operator *': function does not take 1 arguments
types.h(303): note: see declaration of 'operator *'
```

This was introduced in commit:
https://github.com/official-stockfish/Stockfish/commit/88de112b84a5285c2afb3e075a05c2ab8ad3fd33

We use a suggestion by @vondele to fix the error, thanks!

No functional change.

7 years agoSlight simplification in scale factor computation
Stefano80 [Wed, 20 Jun 2018 03:24:24 +0000]
Slight simplification in scale factor computation

[STC](http://tests.stockfishchess.org/tests/view/5b2614000ebc5902b8d17193)
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 17733 W: 3996 L: 3866 D: 9871

[LTC](http://tests.stockfishchess.org/tests/view/5b264d0f0ebc5902b8d17206)
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 55524 W: 9535 L: 9471 D: 36518

Use pawn count scaling also for opposite bishops endings with additional material, with a slope of 2 instead of 7. This simplifies slightly the code.

This PR is a functionally equivalent refactoring of the version which was submitted.

Four versions tried, 2 passed both STC and LTC. I picked the one which seemed more promising at LTC.

Slope 4 passed STC (-0.54 Elo), LTC not attempted
Slope 3 passed STC (+2.51 Elo), LTC (-0.44 Elo)
Slope 2 passed STC (+2.09 Elo), LTC (+0.04 Elo)
Slope 1 passed STC (+0.90 Elo), failed LTC (-3.40 Elo)

Bench: 4761613

7 years agoRemove lmrDepth restriction on quiet see pruning
DU-jdto [Wed, 13 Jun 2018 05:22:52 +0000]
Remove lmrDepth restriction on quiet see pruning

And tweak the threshold value. With this threshold and the current piece
values, this permits see pruning on quiets to be done up to an lmrDepth
of 9 (beyond that the threshold is below -QueenValueMg and see_ge will
pass unconditionally).

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 110316 W: 24612 L: 24667 D: 61037
http://tests.stockfishchess.org/tests/view/5b20aa760ebc5902ab9c9c1d

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 17352 W: 2968 L: 2842 D: 11542
http://tests.stockfishchess.org/tests/view/5b20cf1e0ebc5902ab9c9fb6

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

Bench: 5069074

7 years agoRemove depth condition for pruning captures.
Joost VandeVondele [Tue, 12 Jun 2018 05:32:21 +0000]
Remove depth condition for pruning captures.

The SEE condition alone is sufficient.

passed STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 109863 W: 24339 L: 24392 D: 61132
http://tests.stockfishchess.org/tests/view/5b1f5b000ebc5902ab9c8668

passed LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 23390 W: 4020 L: 3903 D: 15467
http://tests.stockfishchess.org/tests/view/5b1f94b40ebc5902ab9c8b5e

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

Bench: 4834747

7 years agoOptimize an expression in endgame.cpp
protonspring [Mon, 11 Jun 2018 08:17:03 +0000]
Optimize an expression in endgame.cpp

I believe using foward_file_bb() here is fewer instructions.

a) Fewer instructions and probably more clear (debatable).
b) Possible that a lookup is slower than a few local operations, but the
   forward_file_bb table is probably used often enough that it is always
   cached.

Passed
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 21004 W: 4263 L: 4141 D: 12600
http://tests.stockfishchess.org/tests/view/5b1cad830ebc5902ab9c6239

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

No functional change.

7 years agoSimplify capture pruning margin formula
candirufish [Sun, 10 Jun 2018 08:53:05 +0000]
Simplify capture pruning margin formula

Using just `PawnValueEg * depth` as Capture Prune Margin. There was a bunch
of patches that passed recently regarding captures, maybe this part of the
master code redundant? The patch was tested as a simplification:

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 20833 W: 4218 L: 4096 D: 12519
http://tests.stockfishchess.org/tests/view/5b1cf2100ebc5902ab9c6651

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 27050 W: 3975 L: 3864 D: 19211
http://tests.stockfishchess.org/tests/view/5b1cfdc80ebc5902ab9c6776

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

Bench: 4980482