]>
git.sesse.net Git - stockfish/log
Marco Costalba [Fri, 5 Dec 2008 11:00:30 +0000 (12:00 +0100)]
MovePicker: avoid calling see() for LxH and equal captures
No functional change but should speed-up the captures scoring.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 6 Dec 2008 10:31:14 +0000 (11:31 +0100)]
Null capture pruning
Null move can fail low because of a capture artifact due
to the side to move change. Try to detect this condition
and fail high instead.
This pruning is very powerful, around 7% of nodes, but is
still experimental so is disabled by default.
Set UseNullCapturePruning to true to enable.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Fri, 5 Dec 2008 11:38:20 +0000 (12:38 +0100)]
Position::move_is_capture() does not handle MOVE_NONE
Actually square 0 can be dirty, so that move_is_capture(0)
can return any random values.
Add an assert to be sure it is caught.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Fri, 5 Dec 2008 08:50:18 +0000 (09:50 +0100)]
Allow to call Position::print() from MovePicker
Fix a recursion issue that gives a stack overflow.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 1 Dec 2008 16:46:12 +0000 (17:46 +0100)]
san.cpp: rewrite broken move_from_san
Use a state machine to parse the input. Fixed
the many broken cases.
Tested on more then 15 milions nodes.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 1 Dec 2008 13:34:31 +0000 (14:34 +0100)]
san.cpp cleanup
Hopefully no functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 27 Nov 2008 06:42:57 +0000 (07:42 +0100)]
Revert opponent time advantage logic
Strength increase was due to an hidden bug introduced
by the patch, namely the time per move to /30 instead
of /40 (see previous patch).
After testing this feature do not add any substantial
increase so is removed.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 30 Nov 2008 20:16:47 +0000 (21:16 +0100)]
Revert sigmoid interpolator
After deep test (1000 games) it seems do not improve anything,
actually seems slightly weaker.
So remove it for now.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 30 Nov 2008 00:25:16 +0000 (01:25 +0100)]
san.cpp pass position as constant reference
Make a copy of the position when needed instead
of passing as a reference. It is cleaner and
let us to simplify also Position::print()
A small space inflate while there.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 29 Nov 2008 23:38:33 +0000 (00:38 +0100)]
piece_type_to_char() default argument in declaration
Default argument should be in declaration where it
is visible through header include, not in definition.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Wed, 26 Nov 2008 10:22:30 +0000 (11:22 +0100)]
Revert threat move ordering
Does not seem to improve anything.
Anyhow idea is nice, maybe we still have to find
correct recipe.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 25 Nov 2008 14:31:55 +0000 (15:31 +0100)]
Tweak allocated time per move
It seems better to give more time in middle game then
at the end.
Also Toga uses the same limit.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 25 Nov 2008 13:49:38 +0000 (14:49 +0100)]
Rewrok the extendeable patch
Cleanup and document.
The real functional change is that not mate threat
moves are never pruned, as could happen before.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 25 Nov 2008 10:10:02 +0000 (11:10 +0100)]
MovePicker: take advantage of threat move for ordering
If the null move was refuted by a capture then give a
bonus if we move away the captured piece.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 24 Nov 2008 16:50:54 +0000 (17:50 +0100)]
Use extendable instead of depth extension
We can have depth(0) also in problematic cases
according to how extensions are tweaked by the user.
In any case we don't want to prune these moves.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 24 Nov 2008 11:13:08 +0000 (12:13 +0100)]
Generate moves for powerful pieces first
This seems to reduce searched nodes by a
surprising 2.5%
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 24 Nov 2008 19:43:11 +0000 (20:43 +0100)]
Benchmark: print nodes searched at the end of testing
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 22 Nov 2008 14:59:26 +0000 (15:59 +0100)]
Easy debug macro enabling
Now you don't need to toggle show_debug_xxxx anymore
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 22 Nov 2008 10:56:14 +0000 (11:56 +0100)]
Introduce node limited benchmarking
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 22 Nov 2008 10:02:05 +0000 (11:02 +0100)]
Introduce depth limited benchmarking
Also print some more info.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 17 Nov 2008 21:33:43 +0000 (22:33 +0100)]
Remove an include in movepick.h
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Signed-off-by: unknown <Marco@.(none)>
Marco Costalba [Mon, 17 Nov 2008 21:30:19 +0000 (22:30 +0100)]
Fix a silly bug that disabled second killer
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Signed-off-by: unknown <Marco@.(none)>
Marco Costalba [Sun, 16 Nov 2008 22:33:06 +0000 (23:33 +0100)]
qsearch: restore pruning of pv nodes with negative SEE
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Signed-off-by: unknown <Marco@.(none)>
Marco Costalba [Sun, 16 Nov 2008 11:46:12 +0000 (12:46 +0100)]
Fix Intel warnings and init_search_stack argument
Should be a reference not a copy!
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 16 Nov 2008 10:16:07 +0000 (11:16 +0100)]
Set killer slots number to 2
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 15 Nov 2008 23:47:55 +0000 (00:47 +0100)]
MovePicker: fix a nasty bug in EvalInfo optimization
EvalInfo has missing attack info when a specialized
endgame function is used.
We missed this case and were using an empty attack bitboard
instead so that no captures were generated for endgames.
After testing the EvalInfo optimization gave worst results,
so after a (long) debug session this nasty bug was found.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 15 Nov 2008 17:23:56 +0000 (18:23 +0100)]
Add and use update_killers()
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 15 Nov 2008 17:10:34 +0000 (18:10 +0100)]
Add and use move_is_killer() helper
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 15 Nov 2008 16:56:22 +0000 (17:56 +0100)]
Convert killers to a vector
Add infrastructure to threat killer moves as a vector,
this will allow us to easily parametrize the number of
killer moves, instead of hardcode this value to two as is now.
This patch just add the infrastructure, no functional
change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 11 Nov 2008 20:42:36 +0000 (21:42 +0100)]
qsearch: do not prune pv nodes with negative SEE
Also small micro-optimization, take a line out of
the moves loop.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 15 Nov 2008 22:01:32 +0000 (23:01 +0100)]
Disable per-square MVV/LVA for now
Needs more testing.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 15 Nov 2008 12:00:56 +0000 (13:00 +0100)]
MovePicker: use EvalInfo to skip generating captures
When we know already no captures are possible in a given
position.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 15 Nov 2008 07:27:52 +0000 (08:27 +0100)]
Position::to_fen(): fix a bug in side to move representation
Was introduced almost two months ago in patch:
"Space inflate Position::to_fen()"
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 15 Nov 2008 07:14:28 +0000 (08:14 +0100)]
Print the move in addition to position
Teach Position::print() to optionally print a
given move in san notation in addition to
the ASCII representation of the board.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Fri, 14 Nov 2008 21:21:35 +0000 (22:21 +0100)]
Enable per-square MVV/LVA
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Fri, 14 Nov 2008 21:06:19 +0000 (22:06 +0100)]
MovePicker:find bad captures during scoring
Instead of pospone until picking. No functional
change and probably no performance change but it is
needed for following patch.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Fri, 14 Nov 2008 20:49:46 +0000 (21:49 +0100)]
MovePicker: introduce per square MVV/LVA ordering
Just added the infrastructure, no functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 11 Nov 2008 17:26:15 +0000 (18:26 +0100)]
Fix hashfull info
Do not count has a replacement when a TT entry is
written in an empty slot.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 10 Nov 2008 18:04:15 +0000 (19:04 +0100)]
Fix in ok_to_history(): castle move is not a capture
It is erroneusly considered a capture because king
moves on the same square of the rook.
Use the correct function Position::move_is_capture()
instead of the open coded (and buggy) one.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 10 Nov 2008 14:26:57 +0000 (15:26 +0100)]
Small tidyup of TranspositionTable::store()
Hopefully without bugs this time!
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 10 Nov 2008 14:15:40 +0000 (15:15 +0100)]
Fix a logic bug in TranspositionTable::store()
Make the logic work as advertised in the function
description.
Still a fallback from TT cleanup.
This should be less serious then the one in retrieve(),
but it's still a bug.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 10 Nov 2008 12:56:49 +0000 (13:56 +0100)]
Micro optimization of update_history()
Remove an useless comparison.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 10 Nov 2008 10:06:46 +0000 (11:06 +0100)]
Use cut-off checks in qsearch as killer moves
Killers should not be captures, but checks are not
and are produced also in qsearch.
Use this information, will be useful for move ordering.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 9 Nov 2008 12:03:52 +0000 (13:03 +0100)]
Smaller null move reduction when depth is high
Lower probability to miss something important.
It seems to increase strenght. Idea form Cyclone.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 8 Nov 2008 08:29:07 +0000 (09:29 +0100)]
Introduce LastIterations variable
Is set during the last iteration.
Sometime also during the second last.
During the last iteration is set in the 95% of cases.
During the second last is set in the 40% of cases.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 4 Nov 2008 20:13:00 +0000 (21:13 +0100)]
Restore development versioning and LSN filtering
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 4 Nov 2008 19:59:11 +0000 (20:59 +0100)]
Fix a missed initialization in get_option_value()
Spotted and reported by Dann Corbit.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 3 Nov 2008 21:25:28 +0000 (22:25 +0100)]
Stockfish 1.01
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 3 Nov 2008 21:05:41 +0000 (22:05 +0100)]
Fix compile under Ubuntu 64bit
Some missing includes.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 3 Nov 2008 18:59:58 +0000 (19:59 +0100)]
Fix a serious bug in TranspositionTable::retrieve()
Reported by Tord Romstad.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 3 Nov 2008 18:55:59 +0000 (19:55 +0100)]
Restore development versioning
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 2 Nov 2008 17:32:56 +0000 (18:32 +0100)]
Restore LSN filtering
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 2 Nov 2008 14:58:10 +0000 (15:58 +0100)]
Revert movepick optimizations before to release
More testing is needed and better do not risk
just before release.
Reverted:
Disable LSN filtering as defualt for release
Use MVV/LVA in score_evasions()
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 2 Nov 2008 14:35:32 +0000 (15:35 +0100)]
Stockfish 1.0
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 2 Nov 2008 14:35:02 +0000 (15:35 +0100)]
Disable LSN filtering as defualt for release
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 2 Nov 2008 07:47:27 +0000 (08:47 +0100)]
Use MVV/LVA in score_evasions()
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 1 Nov 2008 17:28:49 +0000 (18:28 +0100)]
Delay SEE for scoring captures
Do not calculate SEE on all the moves in MovePicker::score_captures()
but delay until pick_move_from_list() when only the best ones are
double checked against their see value.
If a beta cut-off occurs then we avoid calculating SEE on all
the moves, but just the picked ones.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 1 Nov 2008 18:44:17 +0000 (19:44 +0100)]
search: micro optimization
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 1 Nov 2008 11:52:40 +0000 (12:52 +0100)]
Fix a couple of gcc warnings in position.cpp
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 1 Nov 2008 12:56:01 +0000 (13:56 +0100)]
Update README to Stockfish
Remove Glaurung references.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 1 Nov 2008 10:38:30 +0000 (11:38 +0100)]
Final touches to material.cpp
No functional changes, altough a bit of code reshuffle.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Fri, 31 Oct 2008 16:42:25 +0000 (17:42 +0100)]
Material: lockless per-thread maps
Adds a good bunch of code but should be faster
and scalable because is lockless.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 30 Oct 2008 14:28:25 +0000 (15:28 +0100)]
Revert "MovePicker::score_captures() order with SEE when pv"
Does not seem to increase the strenght.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 30 Oct 2008 14:21:53 +0000 (15:21 +0100)]
Space inflate move.cpp
Also a little cleanup.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 30 Oct 2008 10:38:06 +0000 (11:38 +0100)]
Revert "Relax time constraints"
Does not seem to give an improvment, acutually it seems
a totally neutral change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 30 Oct 2008 10:35:44 +0000 (11:35 +0100)]
Partially space inflate search.cpp
Space inflate main remaining functions in search.
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Wed, 29 Oct 2008 16:00:51 +0000 (17:00 +0100)]
Relax time constraints
Allow a seacrh to take a bit more time if needed.
This reduces the chanches of wast all the search time
for the last iteration and also allow to start the last
iteration when we have less time remaining.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Wed, 29 Oct 2008 06:52:20 +0000 (07:52 +0100)]
Material: micro optimize map reading
Do only one map walk per read instead of two.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 28 Oct 2008 18:30:57 +0000 (19:30 +0100)]
Material: protect global map access with locks
STL library is not guaranteed to be thread safe, even for
read-access.
So because these global maps are accessed by all the threads
we need to protect them.
This fixes a random crash experienced during testing.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 27 Oct 2008 21:04:47 +0000 (22:04 +0100)]
MovePicker::score_captures() order with SEE when pv
Order PV nodes by SEE instead of MVV/LVA.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 27 Oct 2008 20:59:12 +0000 (21:59 +0100)]
Revert "Last minute surprise" for now
It defenitly needs more testing. Just postponed.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 27 Oct 2008 20:54:39 +0000 (21:54 +0100)]
Finish material.cpp cleanup
Hopefully no regression this time!
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 27 Oct 2008 18:07:48 +0000 (19:07 +0100)]
Start to simplify material.cpp
It is posisble to simplify a lot here!
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 27 Oct 2008 13:19:24 +0000 (14:19 +0100)]
Factor out Position::do_capture_move()
Start to slim line count i position.cpp
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 27 Oct 2008 09:15:51 +0000 (10:15 +0100)]
Fix a bug in generate_evasions()
Introduced in the patch "movegen: prefer (*mlist++) to mlist[n++]"
This was nasty because due to a mismerge the repo in one PC had the bug,
but the testing one did not, so I had non reproducible results according
to which machine I used for testing.
This hopefully closes a more then one week regression that made me go crazy!
It was found by accident comparing, for other reasons, the sources of the
two PC's.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Mon, 27 Oct 2008 08:28:14 +0000 (09:28 +0100)]
Refine "few moves" in "last minute surprise"
It seems that "few moves" works because we extend the good
captures at the last ply of PV, so code it directly.
This version seems defenitly stronger then previous one.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 26 Oct 2008 20:44:58 +0000 (21:44 +0100)]
Manual merge
Marco Costalba [Sun, 26 Oct 2008 17:16:23 +0000 (18:16 +0100)]
Space inflate extension() code
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 26 Oct 2008 13:52:37 +0000 (14:52 +0100)]
TEST: extend when few moves available
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 26 Oct 2008 13:50:15 +0000 (14:50 +0100)]
Revert see shortcut when only one attacker
It does not seem to work after a little testing.
Perhaps it works on the long terms, but it is also
ugly because not correct, so revert for now.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 26 Oct 2008 12:51:12 +0000 (13:51 +0100)]
Prefer out of loop variables in MovePicker::score_captures()
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 26 Oct 2008 12:47:31 +0000 (13:47 +0100)]
Effectively use MVV/LVA in MovePicker::score_captures()
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 26 Oct 2008 12:44:34 +0000 (13:44 +0100)]
Reintroduce piece/square tables to score non-captures
Was removed after original movepick restore. But proved
to be useful.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sun, 26 Oct 2008 12:23:27 +0000 (13:23 +0100)]
Position: fix a couple of Intel compiler warnings
Plus usual trailing whitespace.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 25 Oct 2008 19:44:10 +0000 (20:44 +0100)]
Test with SEE shortcut
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 25 Oct 2008 15:39:24 +0000 (16:39 +0100)]
Better naming of pseudo-legality and legality testing
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 25 Oct 2008 14:57:19 +0000 (15:57 +0100)]
Try to cleanup movepick
Hopefully without regressions.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 25 Oct 2008 14:28:24 +0000 (15:28 +0100)]
Restore original movepick modulo space inflation
We have a regression somewhere here so restart from zero
and proceed one change at a time.
With this modification we have the same strenght of
"Introduce Stockfish" patch that is our strongest to date.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Sat, 25 Oct 2008 08:06:52 +0000 (09:06 +0100)]
Space inflate position: complete!
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Fri, 24 Oct 2008 07:14:20 +0000 (09:14 +0200)]
Space inflate position until do_promotion_move()
We will end some day ;-)
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 23 Oct 2008 20:51:26 +0000 (21:51 +0100)]
Start to space inflate position.cpp
It's a big file!
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 23 Oct 2008 20:02:10 +0000 (21:02 +0100)]
Fix a performance bug in generate_move_if_legal
Use the pinned argument in pos.move_is_legal()
No functional change, simply use pos.move_is_legal() as
was meant to be.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 23 Oct 2008 19:43:48 +0000 (20:43 +0100)]
Unify pinned and discovery checks code
Templates are our friends here. No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 23 Oct 2008 10:59:20 +0000 (12:59 +0200)]
Refactor Position::pinned_pieces() to use templates
Also better document this interesting function.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 23 Oct 2008 08:42:14 +0000 (10:42 +0200)]
movegen: add SERIALIZE_MOVES and hides a bunch of loops
Only syntactic sugar, perhaps we should leave as is, anyhow...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 23 Oct 2008 07:47:00 +0000 (09:47 +0200)]
Another generate_piece_moves() micro optimization
This time on the for loop.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Thu, 23 Oct 2008 07:01:36 +0000 (08:01 +0100)]
Fix another template conversion bug in movegen
Hopefully the last one.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Wed, 22 Oct 2008 22:18:11 +0000 (23:18 +0100)]
movegen: prefer (*mlist++) to mlist[n++]
Teoretically faster, practically it helps to
removes some more lines.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 21 Oct 2008 23:12:16 +0000 (00:12 +0100)]
Fix a bug in generate_pawn_captures()
Introduced in "movegen: Introduce generate_pawn_captures()"
when unifiying black and white functions.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Marco Costalba [Tue, 21 Oct 2008 23:06:12 +0000 (00:06 +0100)]
Fully templetize pawn move generators
A little bit more syntax heavuer but surely faster.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>