It was written pos.black_pawn_attacks(ksq) instead of
pos.white_pawn_attacks(ksq)
Updated to the undrlying pos.pawn_attacks(WHITE, ksq)
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Teoretically a little slowdown. If after testing we
verify the slowdown has impact on ELO we revert the
change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This fix a couple of dubious bugs in MVV/LVA
ordering.
Tests seems to confirm now is slightly better.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This seems to increase strenght (about 15 ELO),
still to test some variations on this theme that
could increase ELO even more.
Idea from Rebel (http://members.home.nl/matador/chess840.htm)
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
When an engine is in deep trouble at few
seconds from time limit then giveup without
fighting anymore.
This is used to reduce "lucky draws" and time pressure
blunders noises that can obfuscate results during tests
blitz games (typical one minute games).
Goal of this technique is to reduce number of matches
needed to reliably prove then an engine A is stronger
then an opponent B.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Razor on ply one if the advantage is more then a pawn,
the only way to gap the advantage is to capture, so
go directly in quiesce.
This seems to have a positive effect.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Without this patch MSVC crashes when compiled
in release mode. It survives and works as
expected in debug mode and with gcc and Intel
compilers.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Always for 32 bit but withot relying on MSVC intrinsics.
It is very similar to previous ones, but this does not
segfaults due to -fno-strict-aliasing compiler option.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Other two debug utilities to compute filter rate.
Usage is:
dbg_before(); // counts passages from this point
if(..) // complex code stuff you want to audit
return/continue
if(...)
.....
dbg_after(); // counts passages from this point
Then somewhere in the code, normally in poll() add
dbg_print_hit_rate() and you will see the filter rate
of your code under auditing.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Like dbg_hit_on(x) but first filter out events and
only when condition 'c' is true the hit counter
is tested with 'x'.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
There are subtle differences in the king evaluation
that should be clear to avoid misunderstandings.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Instead of manually adjust defines in bitboard.h
now proper ones are automatically set.
It is anyhow possible to still set them manually
in case of problems.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>