]>
git.sesse.net Git - stockfish/log
Marco Costalba [Fri, 20 Feb 2015 09:49:51 +0000 (10:49 +0100)]
Use range-based-for in late join
No functional change.
Marco Costalba [Fri, 20 Feb 2015 09:36:45 +0000 (10:36 +0100)]
Sync with master
bench:
7911944
Marco Costalba [Thu, 19 Feb 2015 22:12:59 +0000 (23:12 +0100)]
Clarify we don't late join with only 2 threads
Thanks to Gary for pointing this out.
No functional change.
Marco Costalba [Thu, 19 Feb 2015 09:43:28 +0000 (10:43 +0100)]
Use size_t consistently across thread code
No functional change.
Marco Costalba [Thu, 19 Feb 2015 09:27:24 +0000 (10:27 +0100)]
Retire redundant sp->slavesCount field
It should be used slavesMask.count() instead.
Verified 100% equivalent when sp->allSlavesSearching:
dbg_hit_on(sp->allSlavesSearching, sp->slavesCount != sp->slavesMask.count());
No functional change.
Marco Costalba [Thu, 19 Feb 2015 09:18:24 +0000 (10:18 +0100)]
Fix a warning under MSVC
Assignment of size_t to int.
No functional change.
Marco Costalba [Thu, 19 Feb 2015 09:08:29 +0000 (10:08 +0100)]
Add a couple of asserts to late join
Document and clarify that we cannot rejoin on ourselves
and that we never late join if we are master and all
slaves have finished, inded in this case we exit idle_loop.
No functional change.
Marco Costalba [Thu, 19 Feb 2015 08:51:17 +0000 (09:51 +0100)]
Remove useless condition in late join
In case of Threads.size() == 2 we have that sp->allSlavesSearching
is always false (because we have finished our search), bestSp is
always NULL and we never late join, so there is no need to special
case here.
Tested with dbg_hit_on(sp && sp->allSlavesSearching) and
verified it never fires.
No functional change.
Marco Costalba [Tue, 17 Feb 2015 09:10:58 +0000 (10:10 +0100)]
Compute SplitPoint::spLevel on the fly
And retire a redundant field. This is important also
from a concept point of view becuase we want to keep
SMP structures as simple as possible with the only
strictly necessary data.
Verified with
dbg_hit_on(sp->spLevel != level)
that the values are 100% the same out of more 50K samples.
No functional change.
Marco Costalba [Tue, 17 Feb 2015 07:23:35 +0000 (08:23 +0100)]
Simplify attackUnits formula
Use '/ 8' instead of '* 31 / 256'
Passed STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 55077 W: 10999 L: 10940 D: 33138
And LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 14751 W: 2530 L: 2400 D: 9821
bench:
7911944
Joona Kiiski [Sat, 14 Feb 2015 20:46:00 +0000 (20:46 +0000)]
Improve smp performance for high number of threads
Balance threads between split points.
There are huge differences between different machines and autopurging makes it very difficult to measure the improvement in fishtest, but the following was recorded for 16 threads at 15+0.05:
For Bravone (1000 games): 0 ELO
For Glinscott (1000 games): +20 ELO
For bKingUs (1000 games): +50 ELO
For fastGM (1500 games): +50 ELO
The change was regression for no one, and a big improvement for some, so it should be fine to commit it.
Also for 8 threads at 15+0.05 we measured a statistically significant improvement:
ELO: 6.19 +-3.9 (95%) LOS: 99.9%
Total: 10325 W: 1824 L: 1640 D: 6861
Finally it was verified that there was no (significant) regression for
4 threads:
ELO: 0.09 +-2.8 (95%) LOS: 52.4%
Total: 19908 W: 3422 L: 3417 D: 13069
2 threads:
ELO: 0.38 +-3.0 (95%) LOS: 60.0%
Total: 19044 W: 3480 L: 3459 D: 12105
1 thread:
ELO: -1.27 +-2.1 (95%) LOS: 12.3%
Total: 40000 W: 7829 L: 7975 D: 24196
Resolves #258
lucasart [Mon, 16 Feb 2015 01:34:26 +0000 (09:34 +0800)]
Compute checkers from scratch
This micro-optimization only complicates the code and provides no benefit.
Removing it is even a speedup on my machine (i7-3770k, linux, gcc 4.9.1):
stat test master diff
mean 2,403,118 2,390,904 12,214
stdev 12,043 10,620 3,677
speedup 0.51%
P(speedup>0) 100.0%
No functional change.
Marco Costalba [Sun, 15 Feb 2015 11:20:47 +0000 (12:20 +0100)]
Retire one do_move() overload
After Lucas patch it is almost useless.
No functional change.
lucasart [Sun, 15 Feb 2015 07:49:20 +0000 (15:49 +0800)]
Compute checkers from scratch
This micro-optimization only complicates the code and provides no benefit.
Removing it is even a speedup on my machine (i7-3770k, linux, gcc 4.9.1):
stat test master diff
mean 2,403,118 2,390,904 12,214
stdev 12,043 10,620 3,677
speedup 0.51%
P(speedup>0) 100.0%
No functional change.
Marco Costalba [Sun, 15 Feb 2015 10:24:34 +0000 (11:24 +0100)]
Revert "Delayed killers checking"
It seems a slowdown when run with fishbench.
No functional change.
Marco Costalba [Sat, 14 Feb 2015 14:55:11 +0000 (15:55 +0100)]
Further simplify KingDanger init
And remove a tale whitespace while there.
No functional change.
Marco Costalba [Sat, 14 Feb 2015 14:55:11 +0000 (15:55 +0100)]
Further simplify KingDanger init
And remove a tale whitespace while there.
No functional change.
Marco Costalba [Sat, 14 Feb 2015 14:29:21 +0000 (15:29 +0100)]
Sync with master
Bench:
7369224
snicolet [Fri, 13 Feb 2015 21:33:00 +0000 (21:33 +0000)]
Small bonus for all safe pawn pushes
Pawn flexibility: add a small bonus for all safe pawn pushes
STC:
LLR: 2.70 (-2.94,2.94) [-1.50,4.50]
Total: 18233 W: 3705 L: 3557 D: 10971
LTC:
LLR: 2.97 (-2.94,2.94) [0.00,6.00]
Total: 17684 W: 3042 L: 2854 D: 11788
Bench:
7369224
Resolves #253
Marco Costalba [Fri, 13 Feb 2015 10:54:46 +0000 (11:54 +0100)]
Reformat tracing functions
No functional change.
hxim [Mon, 9 Feb 2015 18:12:04 +0000 (19:12 +0100)]
Fix KingDanger[] array initialization
Use integer arithmetic instead of floating point arithmetic.
Floating point arithmetic was causing different results for some 32-bit compiles
No functional change
Resolves #249
Resolves #250
Marco Costalba [Sun, 8 Feb 2015 20:31:25 +0000 (21:31 +0100)]
Sync with master
bench:
7699138
Joona Kiiski [Sun, 8 Feb 2015 19:20:39 +0000 (19:20 +0000)]
Pawn Center Bind Bonus
Bonus for two pawns controlling the same central square
STC:
LLR: 3.14 (-2.94,2.94) [-1.50,4.50]
Total: 15974 W: 3291 L: 3133 D: 9550
LTC:
LLR: 3.24 (-2.94,2.94) [0.00,6.00]
Total: 10449 W: 1837 L: 1674 D: 6938
Idea from Lyudmil Tsvetkov.
Bench:
7699138
Resolves #248
Marco Costalba [Sun, 8 Feb 2015 12:21:50 +0000 (13:21 +0100)]
Shuffle put_piece() and friends signatures
It is more consistent with the others member functions.
No functional change.
Marco Costalba [Sat, 7 Feb 2015 18:34:24 +0000 (19:34 +0100)]
Small tweaks in do_move and friends
Also remove useless StateCopySize64 optimization:
compiler uses SSE movups instruction anyhow and
does not need this trick (verified with fishbench).
No functional change.
Marco Costalba [Sat, 7 Feb 2015 18:13:41 +0000 (19:13 +0100)]
Avoid casting to char* in prefetch()
Funny enough, gcc __builtin_prefetch() expects
already a void*, instead Windows's _mm_prefetch()
requires a char*.
The patch allows to remove ugly casts from caller
sites.
No functional change.
Marco Costalba [Sat, 7 Feb 2015 13:34:35 +0000 (14:34 +0100)]
Rewrite pos_is_ok()
No functional change.
Marco Costalba [Sat, 7 Feb 2015 11:07:43 +0000 (12:07 +0100)]
Micro-optimize SEE
Results for 10 tests for each version (gcc 4.8.3 on mingw):
Base Test Diff
Mean
1502447 1507917 -5470
StDev 3119 1364 4153
p-value: 0,906
speedup: 0,004
Results for 10 tests for each version (MSVC 2013):
Base Test Diff
Mean
1400899 1403713 -2814
StDev 1273 2804 2700
p-value: 0,851
speedup: 0,002
No functional change.
Marco Costalba [Sat, 7 Feb 2015 10:15:38 +0000 (11:15 +0100)]
Rename dbg_hit_on_c() to dbg_hit_on()
Use an overload instead of a new named function.
I have found this handier and easier when adding
some quick debug code.
No functional change.
Marco Costalba [Sat, 7 Feb 2015 10:15:38 +0000 (11:15 +0100)]
Rename dbg_hit_on_c() to dbg_hit_on()
Use an overload instead of a new named function.
I have found this handier and easier when adding
some quick debug code.
No functional change.
Marco Costalba [Sat, 7 Feb 2015 09:31:47 +0000 (10:31 +0100)]
Sync with master
bench:
7696257
lucasart [Sat, 7 Feb 2015 09:09:56 +0000 (09:09 +0000)]
Removes useless templates, some of which lead to code duplication: is_K*() functions.
No functional change
Resolves #245
Stefan Geschwentner [Tue, 3 Feb 2015 03:16:50 +0000 (11:16 +0800)]
Add bonus for pawn attack threats
Latent pawn attacks: Add a bonus to safe pawn pushes which attacks an
enemy piece. Based on an idea of Lyudmil Tsvetkov.
STC:
LLR: 2.95 (-2.94,2.94) [-1.50,4.50]
Total: 7925 W: 1666 L: 1537 D: 4722
LTC:
LLR: 2.95 (-2.94,2.94) [0.00,6.00]
Total: 40109 W: 6841 L: 6546 D: 26722
Bench:
7696257
Resolves #240
mstembera [Tue, 3 Feb 2015 03:09:37 +0000 (11:09 +0800)]
Profile build options
I went through all the individual compile options that differ between
-fprofile-generate/-fprofile-use and -fprofile-arcs/-fbranch-probabilities
and distilled the speed difference down to only turning off
-fno-peel-loops and -fno-tracer. Using this we still get the full speedup
(maybe a bit more because other optimizations stay on) and it's also much cleaner
because we can get rid of the "@rm -f ucioption.gc*" hack for all versions of gcc.
No functional change.
Resolves #237
NicklasPersson [Mon, 2 Feb 2015 20:00:52 +0000 (04:00 +0800)]
Improved King Safety values
From an SPSA-session on king safety.
STC:
ELO: 3.21 +-2.1 (95%) LOS: 99.8%
Total: 40000 W: 8181 L: 7812 D: 24007
LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 47765 W: 8091 L: 7785 D: 31889
Bench:
8589262
Resolves #241
Marco Costalba [Sun, 1 Feb 2015 15:32:21 +0000 (16:32 +0100)]
Use move assignment in movegen.h
No functional change and same speed (tested with perft)
Marco Costalba [Sun, 1 Feb 2015 12:29:27 +0000 (13:29 +0100)]
Allow to assign a Move to an ExtMove
After defining ExtMove::operator Move(), this is a
natural extension.
No fnctional change.
Marco Costalba [Sun, 1 Feb 2015 12:08:14 +0000 (13:08 +0100)]
Delay checking for duplicated killer moves
Follow the usual approach to delay computation
as far as possible, in case an earlier killer
cut-offs we avoid to do useless work.
This also greatly simplifies the code.
No functional change.
Marco Costalba [Sun, 1 Feb 2015 09:59:01 +0000 (10:59 +0100)]
Small tweaks in movepick.cpp
No functional change.
Marco Costalba [Sun, 1 Feb 2015 09:40:22 +0000 (10:40 +0100)]
Silence a warning under MSVC
warning C4100: 'ci' : unreferenced formal parameter
It is a silly and wrong one, but just silent it.
No functional change.
Marco Costalba [Sat, 31 Jan 2015 19:13:38 +0000 (20:13 +0100)]
More readable score<CAPTURES>()
No functional change.
Marco Costalba [Sat, 31 Jan 2015 18:53:19 +0000 (19:53 +0100)]
Use C++11 loops in MovePicker
No functional change.
Marco Costalba [Sat, 31 Jan 2015 17:39:51 +0000 (18:39 +0100)]
Implicit conversion from ExtMove to Move
Verified with perft there is no speed regression,
and code is simpler. It is also conceptually correct
becuase an extended move is just a move that happens
to have also a score.
No functional change.
Marco Costalba [Sat, 31 Jan 2015 12:22:06 +0000 (13:22 +0100)]
Another small tweak to skills
No functional change.
Marco Costalba [Sat, 31 Jan 2015 12:04:15 +0000 (13:04 +0100)]
Sync with master
bench:
7374604
Marco Costalba [Sat, 31 Jan 2015 11:31:00 +0000 (12:31 +0100)]
Use C++ loops in insert_pv_in_tt
Also small tweak to extract_ponder_from_tt
No functional change.
Marco Costalba [Sat, 31 Jan 2015 10:54:25 +0000 (11:54 +0100)]
Move uci_pv under UCI namespace
That's the correct place.
No functional change.
Marco Costalba [Sat, 31 Jan 2015 09:43:47 +0000 (10:43 +0100)]
Convert Reductions[] from int8_t to Depth
This is the type anyhow. Assorted cleanup while there.
No functional change.
Marco Costalba [Sat, 31 Jan 2015 09:19:00 +0000 (10:19 +0100)]
Fix a MSVC warning
warning C4805: '|' : unsafe mix of type 'Bitboard' and type 'bool' in operation
No functional change.
Jean-Francois Romang [Sun, 25 Jan 2015 07:57:51 +0000 (08:57 +0100)]
Ressurrect hashfull patch
This is an old patch from Jean-Francois Romang to send
UCI hashfull info to the GUI:
https://github.com/mcostalba/Stockfish/pull/60/files
It was wrongly judged as a slowdown, but it takes much
less than 1 ms to run, indeed on my core i5 2.6Ghz it
takes about 2 microsecs to run!
Regression test is good:
STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 7352 W: 1548 L: 1401 D: 4403
LTC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 61432 W: 10307 L: 10251 D: 40874
I have set the name of the author to the original
one.
No functional change.
Marco Costalba [Fri, 30 Jan 2015 16:58:18 +0000 (17:58 +0100)]
Sync with master
bench:
7374604
Marco Costalba [Sun, 25 Jan 2015 18:22:43 +0000 (19:22 +0100)]
Simplify skill level and reduce ELO
This patch has two positive effects:
- Retire a hackish formula and leave
just a natural, simple and plain one.
- Reduce strenght at very low level, but
don't impact medium/high levels.
Actually even at level 0, SF is still too
strong for many beginners (this was reported
many times for instance on Droidfish user
comments on Google Play).
Test on fishtest shows that ELO drop is around
170 ELO at level 0 (good!), 130 ELO at level 1
and smoothly reduces (as expected) until level
10 where the drop is just of 8 ELO.
No functional change.
Alain SAVARD [Mon, 26 Jan 2015 16:05:53 +0000 (11:05 -0500)]
Simplify backward pawn definition
Make use of 'lever' attribute
No functional change
Resolves #234
NicklasPersson [Wed, 28 Jan 2015 21:00:09 +0000 (21:00 +0000)]
King safety tuning with values obtained by SPSA.
Part I:
LTC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 11529 W: 2075 L: 1882 D: 7572
Part II:
LTC:
ELO: 2.07 +-2.1 (95%) LOS: 97.3%
Total: 34859 W: 5967 L: 5759 D: 23133
Bench:
7374604
Resolves #228
Joona Kiiski [Wed, 28 Jan 2015 20:53:50 +0000 (20:53 +0000)]
Restore development version
No functional change
Joona Kiiski [Tue, 27 Jan 2015 20:27:38 +0000 (20:27 +0000)]
Stockfish 6
Stockfish bench signature is:
8918745
Joona Kiiski [Sun, 25 Jan 2015 22:03:57 +0000 (22:03 +0000)]
Stockfish 6 Release Candidate 3
- Fix a skill level problem: Don't allow move pruning at root node
- Revert "Fix profile build for gcc on Mac OSX". Results for a faster binary in x86-64.
- Fix a MSVC warning
Bench:
8918745
Stefan Geschwentner [Sat, 24 Jan 2015 21:05:06 +0000 (22:05 +0100)]
Fix a skill level problem: Don't allow move pruning at root node
Bench:
8918745
Resolves #231
Joona Kiiski [Sun, 25 Jan 2015 21:46:02 +0000 (21:46 +0000)]
Revert "Fix profile build for gcc on Mac OSX"
Seems to be a performance regression for standard build.
For SF6 people compiling on Mac OSX using profile-build option
just need to make necessary adjustments manually...
No functional change
Resolves #223
Marco Costalba [Sun, 25 Jan 2015 10:07:43 +0000 (11:07 +0100)]
Re-arrange Skill struct
Instead of swapping sub-optimal move in Skill
d'tor, make it explicitly at the end of the search.
Also streamline and clarify relation with multiPV
and pass it directly instead of relying on the hacky
'candidates' member.
No functional change.
Marco Costalba [Mon, 19 Jan 2015 07:11:43 +0000 (08:11 +0100)]
Fix a MSVC warning at W4
Warning is C4512 (assignment operator could not be generated)
Now, apart the foreign syzygy code, everything compiles
without warnings at warning level 4.
Backported from C++11 branch.
No functional change.
Joona Kiiski [Sat, 24 Jan 2015 19:38:59 +0000 (19:38 +0000)]
Stockfish 6 Release Candidate 2
- Fix a compilation issue related to BMI2 PEXT instruction
- Retrieve a ponder move from TT if PV is only one move long
Bench:
8080602
No functional change
Marco Costalba [Tue, 20 Jan 2015 21:17:22 +0000 (22:17 +0100)]
Don't use _pext_u64() directly
This intrinsic to call BMI2 PEXT instruction is
defined in immintrin.h. This header should be
included only when USE_PEXT is defined, otherwise
we define _pext_u64 as 0 forcing a nop.
But under some mingw platforms, even if we don't
include the header, immintrin.h gets included
anyhow through an include chain that starts with
STL <algorithm> header. So we end up both defining
_pext_u64 function and at the same time defining
_pext_u64 as 0 leading to a compile error.
The correct solution is of not using _pext_u64 directly.
This patch fixes a compile error with some mingw64
package when compiling with x86-64.
No functional change.
Resolves #222
Marco Costalba [Tue, 20 Jan 2015 08:13:30 +0000 (09:13 +0100)]
Try hard to retrieve a ponder move
In case we stop the search during a fail-high
it is possible we return to GUI without a ponder
move. This patch try harder to find a ponder move
retrieving it from TT. This is important in games
played with 'ponder on'.
bench:
8080602
Resolves #221
Marco Costalba [Sat, 24 Jan 2015 07:51:53 +0000 (08:51 +0100)]
Additional work in bitbases
Verified the generated bitbases are unchanged.
No functional change.
Marco Costalba [Thu, 22 Jan 2015 10:05:31 +0000 (11:05 +0100)]
Rearrange bitbases C++11 way
No functional change.
Marco Costalba [Wed, 21 Jan 2015 18:53:26 +0000 (19:53 +0100)]
Document how to enable PEXT with MSVC
When not using Makefile, e.g. with MSVC, if hardware
supports BMI2 instructions, then USE_PEXT should be
added in project configuration to enable pext support.
No functional change.
Marco Costalba [Wed, 21 Jan 2015 16:35:53 +0000 (17:35 +0100)]
Rearrange Endgames
Remove references to EndgameBase and use instead
Value and ScaleFactor as template parameters of
the endgames maps.
No functional change.
Marco Costalba [Wed, 21 Jan 2015 12:18:19 +0000 (13:18 +0100)]
Explicitly defaulted and deleted members
Better than a bit obscure implicit ones.
No functional change.
Marco Costalba [Wed, 21 Jan 2015 10:33:53 +0000 (11:33 +0100)]
Fun with lambdas
Use lambda functions instead of has_positive_value()
and toggle_case()
No functional change.
Marco Costalba [Tue, 20 Jan 2015 21:17:22 +0000 (22:17 +0100)]
Don't use _pext_u64() directly
This intrinsic to call BMI2 PEXT instruction is
defined in immintrin.h. This header should be
included only when USE_PEXT is defined, otherwise
we define _pext_u64 as 0 forcing a nop.
But under some mingw platforms, even if we don't
include the header, immintrin.h gets included
anyhow through an include chain that starts with
STL <algorithm> header. So we end up both defining
_pext_u64 function and at the same time defining
_pext_u64 as 0 leading to a compile error.
The correct solution is of not using _pext_u64 directly.
This patch fixes a compile error with some mingw64
package when compiling with x86-64.
No functional change.
Marco Costalba [Mon, 19 Jan 2015 07:11:43 +0000 (08:11 +0100)]
Fix a MSVC warning at W4
Warning is C4512 (assignment operator could not be generated)
Now, apart the foreign syzygy code, everything compiles
without warnings at warning level 4.
No functional change.
Joona Kiiski [Sat, 17 Jan 2015 23:19:18 +0000 (23:19 +0000)]
Stockfish 6 Release Candidate 1
Bench:
8080602
No functional change
Resolves #218
Joona Kiiski [Sun, 18 Jan 2015 09:04:49 +0000 (09:04 +0000)]
Fix profile build for gcc on Mac OSX
Switch back to using -fprofile-generate and
-fprofile-use flags
No functional change
Resolves #219
Resolves #210
Joona Kiiski [Sat, 17 Jan 2015 23:01:10 +0000 (23:01 +0000)]
Don't print fail-high or fail-lows in MultiPV mode
Supposed to give a better user experience when using MultiPV mode
No functional change
Resolves #217
Marco Costalba [Sun, 18 Jan 2015 14:14:05 +0000 (15:14 +0100)]
Fix compile error with MSVC 2013
Without this std::min chokes with windows 'min' macro.
No functional change.
Marco Costalba [Sun, 18 Jan 2015 10:04:51 +0000 (11:04 +0100)]
Fun with initializer lists in UCI::square
No functional change.
Marco Costalba [Sun, 18 Jan 2015 09:41:56 +0000 (10:41 +0100)]
Fix a coverity scan warning
Coverity scan warns about uninitialized 'sf' argument when
calling probe(). Actually it is a false positive because
argument is passed by reference and assigned inside
probe(). Nevertheless it is a hint that fucntion signature
is a bit tricky, so rewrite it in a more conventional way,
assigning 'sf' from probe() return value.
No functional change.
Marco Costalba [Sun, 18 Jan 2015 07:05:05 +0000 (08:05 +0100)]
Add syzygy support
bench:
8080602
Marco Costalba [Sun, 18 Jan 2015 07:00:50 +0000 (08:00 +0100)]
Import C++11 branch
Import C++11 branch from:
https://github.com/mcostalba/Stockfish/tree/c++11
The version imported is teh last one as of today:
https://github.com/mcostalba/Stockfish/commit/
6670e93e50a7a4e739ac2ac8b6026ffa3a12150a
Branch is fully equivalent with master but syzygy
tablebases that are missing (but will be added with
next commit).
bench:
8080602
Marco Costalba [Sat, 17 Jan 2015 09:12:02 +0000 (10:12 +0100)]
Fix syzygy warnings with Intel compiler
Quick hack, a better job would require to
first move all syzygy code up to SF standard.
No functional change.
Marco Costalba [Sat, 17 Jan 2015 21:15:15 +0000 (22:15 +0100)]
Fix some missing rename from previous patch
No functional change.
Marco Costalba [Sat, 17 Jan 2015 08:04:25 +0000 (09:04 +0100)]
Fix a possible overflow in TT resize
On platforms where size_t is 32 bit, we
can have an overflow in this expression:
(mbSize * 1024 * 1024)
Fix it setting max hash size of 2GB on platforms
where size_t is 32 bit.
A small rename while there: now struct Cluster
is definied inside class TranspositionTable so
we should drop the redundant TT prefix.
No functional change.
mstembera [Fri, 16 Jan 2015 19:03:49 +0000 (19:03 +0000)]
Simplify and optimize value extractors
Speed up results by Joona:
gcc-4.7 (1.5%)
gcc-4.8 (0.5%)
gcc-4.9 (1.0%)
Speed up results by mstembera:
gcc 474
p-value: 0.719
gcc 482
p-value: 1
gcc 492
p-value: 0.859
No functional change
Resolves #211
lucasart [Wed, 14 Jan 2015 20:18:41 +0000 (20:18 +0000)]
Enable futility pruning for PV nodes in qsearch
STC:
LLR: 4.20 (-2.94,2.94) [-3.00,1.00]
Total: 85573 W: 17195 L: 17125 D: 51253
LTC:
LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 43385 W: 7298 L: 7214 D: 28873
Bench:
8080602
Resolves #206
Stefan Geschwentner [Wed, 14 Jan 2015 20:11:33 +0000 (20:11 +0000)]
Enable Futility pruning in PV nodes
STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 21553 W: 4342 L: 4221 D: 12990
LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 7675 W: 1351 L: 1209 D: 5115
Bench:
8668014
Resolves #205
hxim [Tue, 13 Jan 2015 21:07:18 +0000 (21:07 +0000)]
Use VALUE_ZERO instead of 0 when comparing with Value
This is the correct practice.
No functional change
Resolves #208
Marco Costalba [Fri, 9 Jan 2015 11:35:44 +0000 (12:35 +0100)]
Assorted headers cleanup
Mostly comments fixing and other small things.
No functional change.
Marco Costalba [Sun, 11 Jan 2015 07:31:21 +0000 (08:31 +0100)]
Fix a crash of syzygy on Android
On Android-ARM current TB code crashes at
random times even in single thread mode.
Reported, debugged, fixed and verified
by Peter Osterlund.
No functional change.
Resolves #201
Stefano80 [Sun, 11 Jan 2015 20:02:41 +0000 (20:02 +0000)]
Higher movetime resolution for benchmarks
Use a millisecond movetime precision for benchmarks
No functional change
Resolves #198
Marco Costalba [Sat, 10 Jan 2015 15:14:37 +0000 (16:14 +0100)]
Fix compile for Android 5
Android 5 can only run position independent executables.
Note that this breaks Android 4.0 and earlier.
See here for more info:
http://stackoverflow.com/questions/
24818902 /running-a-native-library-on-android-l-error-only-position-independent-executab
Thanks to Peter Osterlund for the support.
No functional change
Marco Costalba [Sat, 10 Jan 2015 10:43:28 +0000 (11:43 +0100)]
Update copyright year
No functional change.
Marco Costalba [Wed, 7 Jan 2015 08:09:41 +0000 (09:09 +0100)]
Assorted formatting and comment tweaks in position.h
No functional change.
lucasart [Mon, 5 Jan 2015 22:09:12 +0000 (22:09 +0000)]
Tune null search reduction
STC
LLR: 2.96 (-2.94,2.94) [-0.50,4.50]
Total: 107289 W: 21851 L: 21325 D: 64113
LTC
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 83837 W: 14378 L: 13916 D: 55543
Bench:
7604776
Resolves #194
Marco Costalba [Sat, 3 Jan 2015 15:39:17 +0000 (16:39 +0100)]
Retire one implementation of pop_lsb()
We have two implementations that are equivalent,
so retire one.
Plus usual tidy up of comments and code reshuffle.
No functional change.
lucasart [Sat, 3 Jan 2015 11:29:00 +0000 (19:29 +0800)]
Remove a useless optimization
This optimization is aimed at old hardware only (withouth popcount), and even on
non popcount compile (ARCH=x86-64), it provides no mesurable speedup:
stat test master diff
mean 2,341,779 2,354,699 -12,920
stdev 12,910 14,770 18,150
speedup -0.55%
P(speedup>0) 23.8%
No functional change.
Resolves #187
Joona Kiiski [Sat, 3 Jan 2015 20:34:20 +0000 (20:34 +0000)]
Smoother king safety
STC:
LLR: 4.03 (-2.94,2.94) [-1.50,4.50]
Total: 35707 W: 7352 L: 7106 D: 21249
LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 24563 W: 4330 L: 4095 D: 16138
Bench:
8411409
Resolves #190
Marco Costalba [Sat, 3 Jan 2015 09:51:38 +0000 (10:51 +0100)]
Assorted work in uci.cpp
- Change UCI::value() signature
This function should only return the value,
lowerbound and upperbound info is up to the
caller because it requires external knowledge,
out of the scope of this little helper.
- Retire 'key' command
It is not an UCI command and is absolutely
useless: never used.
- Comments fixing and other trivia
No functional change.
Marco Costalba [Sat, 3 Jan 2015 09:16:10 +0000 (10:16 +0100)]
Fix a silly warning with Intel compiler
Intel compiler cries for an explicit cast
warning #2259: non-pointer conversion from "double" to "int"
may lose significant bits
No functional change.
Marco Costalba [Thu, 1 Jan 2015 09:46:31 +0000 (10:46 +0100)]
Fix comments in thread.cpp
And reshuffle a bit the functions to place
them in a consistent order.
To be on the safe side, patch has been
validated for no regression/crashes with
a small 8K games test with 3 threads:
ELO: 3.98 +-4.4 (95%) LOS: 96.3%
Total: 8388 W: 1500 L: 1404 D: 5484
No functional change.