]>
git.sesse.net Git - stockfish/log
Marco Costalba [Thu, 22 Aug 2013 11:02:20 +0000 (13:02 +0200)]
Retire redundant endgames
The case of two lone kings on the board is already considered
by the "No pawns" scaling factor rules in material.cpp as is
KBK and KNK.
Moreover we had a small leak in endgames map because for
KK endgame it happens white and black material keys are the
same (both equal to zero), so when adding the black endgame in
Endgames::add() we were overwriting the already exsisting
white one, leading to a memory leak found by Valgrind.
So remove the endgames althogheter and rely on scaling
to correctly set the endgames value to a draw.
No functional change.
Joona Kiiski [Tue, 20 Aug 2013 22:26:16 +0000 (23:26 +0100)]
Use null move when depth >= 2 plies
Passed both short TC:
LLR: 2.96 (-2.94,2.94)
Total: 23725 W: 5031 L: 4855 D: 13839
And long TC:
LLR: 2.96 (-2.94,2.94)
Total: 15730 W: 2939 L: 2754 D: 10037
bench:
4729333
Marco Costalba [Wed, 21 Aug 2013 06:40:49 +0000 (08:40 +0200)]
Restore development version
No functional change.
Marco Costalba [Tue, 20 Aug 2013 07:01:25 +0000 (09:01 +0200)]
Stockfish 4
Stockfish bench signature is:
4132374
Tom Vijlbrief [Mon, 19 Aug 2013 14:53:06 +0000 (16:53 +0200)]
Fix crash when reaching max ply
Bug introduced in
1b7223a53c419212efbd that
updated the ss base stack without increasing
the dimension.
No functional change.
Tom Vijlbrief [Mon, 19 Aug 2013 06:54:10 +0000 (08:54 +0200)]
Remove useless condition in KXK endgame
Because eval is never called when in check.
No functional change.
Leonid Pechenik [Sun, 18 Aug 2013 07:11:44 +0000 (09:11 +0200)]
Further tweak movecount pruning
Passed both short TC
LLR: 2.95 (-2.94,2.94)
Total: 15140 W: 3125 L: 2976 D: 9039
And long TC
LLR: 2.95 (-2.94,2.94)
Total: 17118 W: 3165 L: 2974 D: 10979
bench:
4132374
Marco Costalba [Sat, 17 Aug 2013 09:05:55 +0000 (11:05 +0200)]
Normalize "pawn in front of minor" patch
No functional change.
homoSapiensSapiens [Fri, 16 Aug 2013 07:57:16 +0000 (09:57 +0200)]
Use constants arguments where possible
No functional changes.
Marco Costalba [Thu, 15 Aug 2013 07:36:26 +0000 (09:36 +0200)]
Revert using exceptions
Due to crashes. It will be reapplied once
we understand what's happening.
No functional change.
homoSapiensSapiens [Wed, 14 Aug 2013 08:17:22 +0000 (11:17 +0300)]
Simplify DistanceRingsBB init
Verified by same benchmark and picking some random values.
No functional change.
homoSapiensSapiens [Wed, 14 Aug 2013 05:33:33 +0000 (08:33 +0300)]
Some renaming in TT store()
No functional change.
Marco Costalba [Wed, 14 Aug 2013 06:29:57 +0000 (08:29 +0200)]
Use exceptions to stop the search
Instead of classical flags, throw an
exception when we want to immediately halt
the search. Currently only one type
is used for both UCI stop and threads
cut off.
No functional change.
Tom Vijlbrief [Tue, 13 Aug 2013 12:19:42 +0000 (14:19 +0200)]
Bonus for a pawn in front of knight/bishop
Idea originated from a post of Don Dailey
on talkchess and reported by Eelco.
This is the last succesful attempt of a long
series of trials (as usually happens, the
'idea' alone is not enough).
Passed both short 15secs TC
LLR: 2.97 (-2.94,2.94)
Total: 7629 W: 1645 L: 1515 D: 4469
And long 60secs TC
LLR: 2.96 (-2.94,2.94)
Total: 10218 W: 1932 L: 1775 D: 6511
bench:
4944581
Ryan Takker [Tue, 13 Aug 2013 05:36:01 +0000 (07:36 +0200)]
Remove Now Unneeded Help Text
With the new automatic setting of split depth
instead of a default, the user no longer needs
guidance on setting the split point.
Also threads now defaults to one.
No functional change.
Marco Costalba [Sun, 11 Aug 2013 05:02:50 +0000 (07:02 +0200)]
Don't set Search::RootColor in Eval::trace
Search::RootColor is a global parameter set
before to start a search, it is not something
trace() should change.
This patch allows to add trace() calls, for
debugging, inside search itself without altering
the bench, and also ensures that the values
returned by trace() and evaluate() are fully
equivalent.
No functional change.
Marco Costalba [Sat, 10 Aug 2013 15:11:13 +0000 (17:11 +0200)]
Fix GrainSize rounding error
The rounding formula is different between
positive and negative scores due to the
GrainSize/2 term that is asymmetric.
So use truncation instead of rounding. This
guarantees that evaluation is rounded to zero
in the same way for both positive and negative
scores.
Found with position's flip
bench:
4634244
Marco Costalba [Fri, 9 Aug 2013 06:21:55 +0000 (08:21 +0200)]
Fix 'improving' condition
Because VALUE_NONE is 30002, it happens that
after a check the next move is never an improving
one.
After this patch bench signature is independent from
VALUE_NONE actual value.
bench:
4303194
Marco Costalba [Thu, 8 Aug 2013 08:28:48 +0000 (10:28 +0200)]
Increase LMR when not improving
Apply to LMR the same Eelco's idea
applied to move count pruning.
This is the result of a series of
attempts started by Thomas Kolarik.
Passed both short TC
LLR: 2.95 (-2.94, 2.94)
Total: 5675 W: 1241 L: 1117 D: 3317
And long TC:
LLR: 2.95 (-2.94, 2.94)
Total: 8748 W: 1689 L: 1539 D: 5520
bench:
4356801
Marco Costalba [Mon, 5 Aug 2013 11:25:21 +0000 (13:25 +0200)]
Further tweak Position::flip
No functional change.
Marco Costalba [Mon, 5 Aug 2013 09:06:23 +0000 (11:06 +0200)]
Rewrite flip() to use FEN string manipulation
Instead of dealing directly with internal parameters
just "flip" the FEN string and set the position from
that.
No functional change.
Marco Costalba [Sat, 3 Aug 2013 16:30:43 +0000 (18:30 +0200)]
Streamline time computation
No functional change.
Marco Costalba [Sat, 3 Aug 2013 14:41:18 +0000 (16:41 +0200)]
Update polyglot.ini with new "Min Split Depth" default
No functional change.
Dan Schmidt [Sat, 3 Aug 2013 12:42:58 +0000 (08:42 -0400)]
Refactor do_castle()
Not a real functional change, but bench changed due to different piecelist
reordering. To verify it a temporary my canonicalize_rooks function was
written as follows. It just ensures that the rook on the "smaller" square
is listed first.
void Position::canonicalize_rooks(Color c)
{
if (pieceCount[c][ROOK] == 2)
{
Square s0 = pieceList[c][ROOK][0];
Square s1 = pieceList[c][ROOK][1];
if (s0 > s1)
{
pieceList[c][ROOK][0] = s1;
pieceList[c][ROOK][1] = s0;
index[s0] = 1;
index[s1] = 0;
}
}
}
With this both bench and the test on Chess960 positions
./stockfish bench 128 1 8 Chess960.epd file > /dev/null
Gives same result.
bench:
4424151
Joona Kiiski [Thu, 1 Aug 2013 21:12:58 +0000 (22:12 +0100)]
Retire cpu_count()
Set threads number always to 1 at startup and let the
user explicitly to chose the number of threads.
Also preserve the useful behavior of automatically set
"Min Split Depth" according to the requested threads,
indeed this parameter is too technical for a casual user,
so, when left to zero, we set it on a sensible value.
No functional change
Marco Costalba [Thu, 1 Aug 2013 13:58:38 +0000 (15:58 +0200)]
Further factor out position update code
Along the lines of previous patch.
No functional change
Dan Schmidt [Mon, 29 Jul 2013 15:44:58 +0000 (11:44 -0400)]
Factor out pieceList updating code
The new Position methods add_piece, move_piece, and remove_piece
now manage the member variables pieceList, pieceCount, and index,
and 9 blocks of code in Position that used to manipulate those
data structures by hand now call the new methods.
There is a slightly slowdown (< 1%) on Clang and on perft,
but the cleanup compensates the little speed loss.
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Wed, 31 Jul 2013 07:33:26 +0000 (09:33 +0200)]
Rework Thread hierarchy
Introduce ThreadBase struct that is search
agnostic and just handles low level stuff,
and derive all the other specialized classes
form here.
In particular TimerThread does not hinerits
anymore all the search related stuff from Thread.
Also some renaming while there.
Suggested by Steven Edwards
No functional change.
Marco Costalba [Wed, 31 Jul 2013 04:59:24 +0000 (06:59 +0200)]
Fix a race at thread creation
At thread creation start_routine() is called
and from there the virtual function idle_loop()
because we do this inside Thread c'tor, where the
virtual mechanism is disabled, it could happen that
the base class idle_loop() is called instead.
The issue happens with TimerThread and MainThread
where, at launch, start_routine calls
Thread::idle_loop instead of the derived ones.
Normally this bug is hidden because c'tor finishes
before start_routine() is actually called in the
just created execution thread, but on some platforms
and in some cases this is not guaranteed and the
engine hangs.
Reported by Ted Wong on talkchess
No functional change.
Marco Costalba [Mon, 29 Jul 2013 17:33:30 +0000 (19:33 +0200)]
Tidy up Position::pretty
No functional change.
Marco Costalba [Mon, 29 Jul 2013 17:32:59 +0000 (19:32 +0200)]
Small renaming
No functional change.
Marco Costalba [Mon, 29 Jul 2013 17:01:50 +0000 (19:01 +0200)]
Speed up move generation
Pass the color as template parameter
to generate_all()
Speedup of 1,3% in perft and 2,5% in bench !
No functional change.
Eelco de Groot [Sun, 28 Jul 2013 23:16:25 +0000 (01:16 +0200)]
Increase pruning if evaluation is not improving
Add an additional set of margins to movecount pruning
to be used when static evaluation is getting worse
than previous move.
Here are the margins table with changing
depth (fm0 not improving, fm1 improving):
d: 0, fm0: 3, fm1: 3
d: 1, fm0: 4, fm1: 4
d: 2, fm0: 6, fm1: 6
d: 3, fm0: 7, fm1: 10
d: 4, fm0: 11, fm1: 15
d: 5, fm0: 15, fm1: 21
d: 6, fm0: 21, fm1: 29
d: 7, fm0: 27, fm1: 37
d: 8, fm0: 35, fm1: 47
d: 9, fm0: 42, fm1: 57
d: 10, fm0: 51, fm1: 68
d: 11, fm0: 60, fm1: 81
d: 12, fm0: 70, fm1: 94
d: 13, fm0: 81, fm1: 108
d: 14, fm0: 92, fm1: 123
d: 15, fm0: 104, fm1: 139
Good at both short TC
LLR: 2.97 (-2.94,2.94)
Total: 11502 W: 2503 L: 2361 D: 6638
And long TC
LLR: 2.98 (-2.94,2.94)
Total: 7189 W: 1421 L: 1277 D: 4491
bench:
4364793
Marco Costalba [Sat, 27 Jul 2013 09:34:15 +0000 (11:34 +0200)]
Annotate an unlikely condition
No functional change.
Marco Costalba [Sat, 27 Jul 2013 06:22:12 +0000 (08:22 +0200)]
Fix an assert in KBK endgame
The endgame king + minor vs king is erroneusly
detected as king + minor vs king + minor
Here the fix is to detect king + minor earlier,
in particular to add these trivial cases to
endgame evaluation functions.
Spotted by Reuven Peleg
bench:
4727133
Tom Vijlbrief [Thu, 25 Jul 2013 20:23:15 +0000 (22:23 +0200)]
Rewrite pawn shield and storm code
Passes quickly both short TC:
LLR: 2.95 (-2.94,2.94)
Total: 5755 W: 1349 L: 1222 D: 3184
And long TC:
LLR: 2.95 (-2.94,2.94)
Total: 2744 W: 628 L: 505 D: 1611
bench:
4727133
Marco Costalba [Thu, 25 Jul 2013 05:44:27 +0000 (07:44 +0200)]
Fix a typo in bitboard.h
Introduced by previous patch.
Spotted by Joerg Oster
No functional change.
homoSapiensSapiens [Tue, 23 Jul 2013 13:31:57 +0000 (16:31 +0300)]
Use #ifndef instead of #if !defined
And #ifdef instead of #if defined
This is more standard form (see for example iostream file).
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 20 Jul 2013 23:45:47 +0000 (01:45 +0200)]
Simplify captures ordering
A big simplification and removing of useless code.
Finished at 50% both at short TC (with SPRT) than
at long TC at fixed number of games:
ELO: -0.14 +-3.4 (95%) LOS: 46.8%
Total: 15206 W: 2836 L: 2842 D: 9528
bench:
5059948
Marco Costalba [Wed, 24 Jul 2013 05:43:40 +0000 (07:43 +0200)]
Revert "Halve king eval margin"
This reverts commit
4b3a0fdab03a7529ede42891963d3036712a0bd5 .
As Gary says: " It failed when I tried it at long TC previously, and only
barely passed this time. Some anecdotal evidence is that it hurts vs other
engines as well (the Lightspeed rating list showed a 16 elo drop from previous
best version - still +- 5 error bars on both, but that's still significant)"
I also agree that if we have some doubts (like in this case) it is better to
be safe than sorry.
bench:
4615572
Ryan Schmitt [Fri, 19 Jul 2013 17:15:42 +0000 (10:15 -0700)]
Tune pawn PSQT values
Reduces the influence of PSQT for entries such as
the extended center and the h-file.
Passed both short TC test:
LLR: 2.95 (-2.94,2.94)
Total: 23919 W: 5207 L: 5029 D: 13683
And long TC one:
LLR: 2.96 (-2.94,2.94)
Total: 5762 W: 1108 L: 974 D: 3680
Bench:
4617880
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Reuven Peleg [Mon, 22 Jul 2013 18:05:03 +0000 (21:05 +0300)]
Use arrow operator instead of * and .
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Reuven Peleg [Mon, 22 Jul 2013 10:47:59 +0000 (13:47 +0300)]
Better condition in is_pseudo_legal()
Simplify occupied destination condition.
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 21 Jul 2013 09:01:24 +0000 (11:01 +0200)]
Small touches in move generation
No functional change.
Marco Costalba [Sun, 21 Jul 2013 07:54:56 +0000 (09:54 +0200)]
Some renaming in MovePicker
No functional change.
Marco Costalba [Sat, 20 Jul 2013 17:11:03 +0000 (19:11 +0200)]
Rewrite and simplify SEE
This very speed critical code was full of clever (!)
tricks and subtle details.
So I have rewritten it in a more straithforward way
and, as very often happens, result is even faster
than original.
No functional change.
Marco Costalba [Sat, 20 Jul 2013 13:26:52 +0000 (15:26 +0200)]
Revert "Fix critical SEE bug (take 2)"
This reverts commit
3e95800814d
For some reason it fails the short TC test:
LLR: -2.96 (-2.94,2.94)
Total: 20033 W: 4214 L: 4265 D: 11554
bench:
4769737
Marco Costalba [Sat, 20 Jul 2013 13:15:03 +0000 (15:15 +0200)]
Revert "Yet another attempt at signature-build"
Still broken on OS X
No functional change.
Marco Costalba [Sat, 20 Jul 2013 12:24:23 +0000 (14:24 +0200)]
Fix critical SEE bug (take 2)
It is somewhat unbilievable but our SEE is broken !
If the first SEE move is a king capture and square is
defended then SEE continues instead of breaking.
The bug shows only on normal SEE, not see_sign() so
probing with a:
dbg_hit_on_c(slIndex==1, captured == KING);
reports just a tiny:
Total
3465656 Hits 6646 hit rate (%) 0
Bug was there since Retire seeValues[] and move PieceValue[] out of Position of 26/6/2011 (!)
although for some reason didn't show immediately, indeed the
bougous patch was a "No functional change" (!!)
bench:
4699504
Marco Costalba [Sat, 20 Jul 2013 12:20:17 +0000 (14:20 +0200)]
Revert all the SEE stuff
The speed up seems to introduce some
functionality change.
Revert to original master for now.
bench:
4769737
Marco Costalba [Sat, 20 Jul 2013 12:05:04 +0000 (14:05 +0200)]
Yet another attempt at signature-build
This one should work on all flavours of sed
Suggested by by Louis Zulli
No functional change.
Marco Costalba [Sat, 20 Jul 2013 11:03:45 +0000 (13:03 +0200)]
Fix critical SEE bug
It is somewhat unbilievable but our SEE is broken !
If the first SEE move is a king capture and square is
defended then SEE continues instead of breaking.
The bug shows only on normal SEE, not see_sign() so
probing with a:
dbg_hit_on_c(slIndex==1, captured == KING);
reports just a tiny:
Total
3465656 Hits 6646 hit rate (%) 0
Bug was there since
351ef5c85b6d4b9c71e9da of 26/6/2011 (!)
although for some reason didn't show immediately, indeed the
bougous patch was a "No functional change" (!!)
bench:
4793754
Marco Costalba [Sat, 20 Jul 2013 09:44:55 +0000 (11:44 +0200)]
Speedup see()
And rename next_attacker() SEE helper
This very simple patch is able to speed up
bench run of almost 2% !
No functional change.
Marco Costalba [Fri, 19 Jul 2013 15:20:26 +0000 (17:20 +0200)]
Fix signature-build under OSX
On OS X when you use -i an extension for the in-place
substitution a backup files is required.
http://stackoverflow.com/questions/
4247068 /sed-command-failing-on-mac-but-works-on-linux
So rewrite to make sed flushing sign.txt in one go and avoid
using -i option.
Reported by Louis Zulli
No functional change.
Reuven Peleg [Fri, 19 Jul 2013 15:01:07 +0000 (17:01 +0200)]
Microptimize gives_check() for castling case
Without patch we have 333198 nps, with patch 334249.
A very small +0.3%, not a lot manily becuase this is a
side path that is taken very few times.
Anyhow idea is correct becuase first 'quick' condition
has an hit rate of about 95%.
No functional change.
Marco Costalba [Fri, 19 Jul 2013 09:00:31 +0000 (11:00 +0200)]
Small simplification in space eval scoring
No functional change.
Marco Costalba [Fri, 19 Jul 2013 08:27:15 +0000 (10:27 +0200)]
Rename MoveStack to ExtMove
Stack has no meaning here, while ExtMove (extended move),
better clarifies that we have a move + a score.
No functional change.
Marco Costalba [Fri, 19 Jul 2013 07:37:31 +0000 (09:37 +0200)]
Better document what we skip when in check
No functional change.
homoSapiensSapiens [Tue, 16 Jul 2013 15:52:55 +0000 (18:52 +0300)]
Halve king eval margin
But still keep the same original
margin for score.
Passed both short TC test
LR: 2.95 (-2.94,2.94)
Total: 3710 W: 845 L: 726 D: 2139
And long TC
LLR: 2.95 (-2.94,2.94)
Total: 57859 W: 10939 L: 10532 D: 36388
bench:
4769737
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 15 Jul 2013 19:39:06 +0000 (21:39 +0200)]
Drop grep and tr dependency in Makefile
Use only sed to get the bench signature.
No functional change.
Marco Costalba [Mon, 15 Jul 2013 19:09:06 +0000 (21:09 +0200)]
Don't use __builtin_expect
Partially revert previous patch and use
unlikey() just as code annotation.
Actually it is better to rely on a profiler for branch prediction:
http://blog.man7.org/2012/10/how-much-do-builtinexpect-likely-and.html
"In fact, even when only one in ten thousand values is nonzero,
we're still at only roughly the break-even point"
No functional change,
Marco Costalba [Mon, 15 Jul 2013 18:50:24 +0000 (20:50 +0200)]
Better annotate unlikely conditions
And in case of gcc we win also a small
speed optimization due to better branch
prediction.
No functional change.
Reuven Peleg [Mon, 15 Jul 2013 13:14:30 +0000 (16:14 +0300)]
Simplify a condition in refutes()
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 14 Jul 2013 10:23:28 +0000 (12:23 +0200)]
Update 'make help'
No functional change.
Marco Costalba [Sun, 14 Jul 2013 09:57:06 +0000 (11:57 +0200)]
Add signature-profile-build make target
Extend patch
3f64a2af6a7dac4 to profile builds.
here the make command is:
make signature-profile-build ARCH=xxx COMP=xxx
No functional change.
Marco Costalba [Sun, 14 Jul 2013 09:07:24 +0000 (11:07 +0200)]
Retire engine Tag
It is somewhat redundant and could make SF
name too long, so use just Version, in case
of a signature build Version will be set to
'sig-xxx' otherwise, if left empty, we fall
back on usual date stamp.
No functional change.
Marco Costalba [Sun, 14 Jul 2013 07:00:19 +0000 (09:00 +0200)]
Add signature-build make target
When compiling with:
make signature-build ARCH=xxx COMP=xxx
After binary has been roduced, it will be run to
get the signature 'stockfish bench' and this
number will be used as Version, so that it
will be easy to track the original sources
from a binary.
No functinal change.
Marco Costalba [Sat, 13 Jul 2013 21:07:24 +0000 (23:07 +0200)]
Fix build on Intel compiler
Due to a strange issue (bug?) the ternary
operator does not return a BitCountType for
icc, so revert to the expression used
before
bcbc9bfd1f5efeaa3
No functional change.
Marco Costalba [Sat, 13 Jul 2013 15:21:24 +0000 (17:21 +0200)]
Fully qualify memset and memcpy
And other trivial touches.
Ispired by Lucas's DiscoCheck
No functional change.
Tom Vijlbrief [Sat, 13 Jul 2013 09:46:59 +0000 (11:46 +0200)]
Retire enoughMaterial + lower trapped rook threshold
Here speed up is the name of the game.
Speed up is gained:
- Removing the useless enoughMaterial code
- Limiting trapped rook evaluation to where it counts
Tested at long TC:
LLR: 2.97 (-2.94,2.94)
Total: 10061 W: 1948 L: 1790 D: 6323
bench:
4558173
Marco Costalba [Sat, 13 Jul 2013 11:27:22 +0000 (13:27 +0200)]
A useless assignment found by Clang’s static analyzer
Warning is: "Value stored to 'xxx' is never read" and
it is raised in SpNode case.
No functional change.
Marco Costalba [Sat, 13 Jul 2013 11:02:40 +0000 (13:02 +0200)]
Fix build with MSVC 2013
Also add an assert hinted by MSVC code analysis tool.
No functional change.
Marco Costalba [Sat, 13 Jul 2013 05:43:50 +0000 (07:43 +0200)]
Fix printing of PV info: take 2
Now last PV line is printed twice, fix that.
No functional change.
Marco Costalba [Fri, 12 Jul 2013 21:42:42 +0000 (23:42 +0200)]
Fix printing of PV info
It was erroneusly skipped after the
aspiration window rework.
Reported by Eelco.
No functional change.
Marco Costalba [Thu, 11 Jul 2013 14:01:33 +0000 (16:01 +0200)]
Rename some UCI options
Thanks to Don, Miguel, Louis and the other people
of talkchess forum for the suggestion:
http://www.talkchess.com/forum/viewtopic.php?t=48612
Also sync polyglot.ini with current UCI options
No functional change.
Marco Costalba [Thu, 11 Jul 2013 05:22:26 +0000 (07:22 +0200)]
Fix a crash with depth 1 perft
Bug recently introduced in
e215a88cddd16e09
No functional change.
Marco Costalba [Sun, 7 Jul 2013 11:45:46 +0000 (13:45 +0200)]
Don't IID when in check also in PvNodes
This tiny functional change allows to
nicely simplify things.
Performed at 50% in short TC:
LLR: -0.43 (-2.94,2.94)
Total: 46406 W: 9681 L: 9565 D: 27160
And succesfully passed long TC reverse test:
LLR: -2.95 (-2.94,2.94)
Total: 4945 W: 858 L: 937 D: 3150
bench:
4507230
Marco Costalba [Tue, 9 Jul 2013 06:01:51 +0000 (08:01 +0200)]
Revert previous patch
Unfortunatly a reverse test at long TC failed:
master^ vs master
LLR: 1.37 (-2.94,2.94)
Total: 33682 W: 6294 L: 6071 D: 21317
So becuase short TC score is 50% there is a good
possibility patch is not scalable.
So revert it.
bench:
4507288
Marco Costalba [Mon, 8 Jul 2013 05:23:30 +0000 (07:23 +0200)]
Simplify "fail high upon reduction" in null search
Do not use threat move to detect the condition. This
let us to retire the big allows() function.
Test at short TC was within 50% score:
LLR: -2.95 (-2.94,2.94)
Total: 38272 W: 7941 L: 7940 D: 22391
To be verified with reverse long TC
bench:
4191565
Marco Costalba [Sun, 7 Jul 2013 11:27:31 +0000 (13:27 +0200)]
Skip node-level cut-off tests when in check
No functional change.
Marco Costalba [Wed, 3 Jul 2013 16:58:49 +0000 (18:58 +0200)]
Simplify aspiration window code
Here the main difference is that now we center
aspiration window on last returned score. This allows
to simplify handling of mate scores.
We have done a reversed SPRT tests, where we wanted to
verify if master is stronger than this patch.
Long TC: master vs this patch (reverse test)
LLR: -2.95 (-2.94,2.94)
Total: 37992 W: 7012 L: 6920 D: 24060
bench:
4507288
Marco Costalba [Wed, 3 Jul 2013 16:58:23 +0000 (18:58 +0200)]
Workaround github issue
Temporary revert aspiration window patch
so to be visible to everybody: it will be
re-applied with next patch
No functional change (together with next one)
Marco Costalba [Wed, 3 Jul 2013 06:54:44 +0000 (08:54 +0200)]
Simplify aspiration window code
Here the main difference is that now we center
aspiration window on last returned score. This allows
to simplify handling of mate scores.
We have done a reversed SPRT tests, where we wanted to
verify if master is stronger than this patch.
Long TC: master vs this patch (reverse test)
LLR: -2.95 (-2.94,2.94)
Total: 37992 W: 7012 L: 6920 D: 24060
bench:
4507288
Marco Costalba [Wed, 3 Jul 2013 06:21:21 +0000 (08:21 +0200)]
Disable flto when debugging
Link-time optimization does not work well with
generation of debugging information:
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
Reported by Louis Zulli
No functional change.
Marco Costalba [Tue, 2 Jul 2013 18:06:24 +0000 (20:06 +0200)]
Revert "Remove confusing optimization"
This reverts commit
e05c80a08859f6c4f0f599ca0b262ced00ad66fe .
we gain a speed up of 1.5% under gcc !
No functional change.
Marco Costalba [Tue, 2 Jul 2013 05:25:47 +0000 (07:25 +0200)]
Merge branch 'master' into aspiration
bench:
4507288
Marco Costalba [Tue, 2 Jul 2013 05:25:39 +0000 (07:25 +0200)]
Revert "Increase earlier aspiration window size"
This reverts commit
b88bc7b7667fc6ddbfc7412fb2c0bfc13e3bf11c .
Marco Costalba [Tue, 2 Jul 2013 05:24:17 +0000 (07:24 +0200)]
Entering a pawn endgame is no more dangerous
A simplification of the 'dangerous' definition.
Seems neutral at reverse test at long TC
master vs patch
LLR: -2.96 (-2.94,2.94)
Total: 16974 W: 3122 L: 3139 D: 10713
bench:
4689029
Marco Costalba [Mon, 1 Jul 2013 17:29:23 +0000 (19:29 +0200)]
Increase earlier aspiration window size
bench:
4377851
Marco Costalba [Mon, 1 Jul 2013 17:25:23 +0000 (19:25 +0200)]
Merge branch 'master' into aspiration
Marco Costalba [Sun, 30 Jun 2013 11:12:04 +0000 (13:12 +0200)]
Fix a stale comment
No functional change.
Marco Costalba [Sun, 30 Jun 2013 10:30:57 +0000 (12:30 +0200)]
Simplify search results update
Also some rename while there.
No functional change.
Marco Costalba [Sun, 30 Jun 2013 09:35:03 +0000 (11:35 +0200)]
Reorder conditions according to their frequency
This should minimize useless tests.
No functional change.
Marco Costalba [Sun, 30 Jun 2013 09:00:19 +0000 (11:00 +0200)]
Center aspiration window on last returned score
bench:
4428212
Marco Costalba [Sun, 30 Jun 2013 08:32:09 +0000 (10:32 +0200)]
Simplify aspiration window loop
Don't open the window in case we find a mate score: this
will be takes care with next patch.
No functional change.
Marco Costalba [Sat, 29 Jun 2013 08:23:43 +0000 (10:23 +0200)]
Use calloc() in TranspositionTable::set_size()
Function calloc() already initializes memory to
zero, so avoid calling clear() afterwards.
Also some renaming while there (inspired by DiscoCheck).
No functional change.
Marco Costalba [Sun, 23 Jun 2013 11:19:03 +0000 (13:19 +0200)]
Fix some stale comments
No functional change.
Marco Costalba [Sun, 23 Jun 2013 11:08:10 +0000 (13:08 +0200)]
Move SquareDistance[] to bitboard.cpp
No functional change.
Marco Costalba [Sun, 23 Jun 2013 09:15:58 +0000 (11:15 +0200)]
Don't explicitize enum values when not needed
Compiler will chose the correct values in sequential
order for you.
Also move file and rank bitboards definitions to
bitboard.h
No functional change.
Marco Costalba [Sun, 23 Jun 2013 08:16:43 +0000 (10:16 +0200)]
Retire in_front_bb(Color c, Square s) overload
Explciitly call rank_of() in the few places where
it is used.
No functional change.