stockfish
12 years agoSmall optimization in generate_evasions()
Marco Costalba [Sat, 7 Feb 2009 12:11:52 +0000 (13:11 +0100)]
Small optimization in generate_evasions()

Find squares attacked by slider checkers, we will
remove them from king evasions set so to avoid a couple
of cycles in the slow king evasions legality check loop.

Not a biggie, but now generate_evasions() is faster then
generate_non_captures(), before was slower.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoSimplify newly introduced castling_is_check()
Marco Costalba [Fri, 6 Feb 2009 15:40:30 +0000 (16:40 +0100)]
Simplify newly introduced castling_is_check()

Use bit_is_set() instead of open coding.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoSmall code style tidy up
Marco Costalba [Fri, 6 Feb 2009 15:21:00 +0000 (16:21 +0100)]
Small code style tidy up

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix casting warnings under Intel Compiler
Marco Costalba [Sat, 7 Feb 2009 11:31:53 +0000 (12:31 +0100)]
Fix casting warnings under Intel Compiler

Int to Char warning fixed changing the function
signature to int.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix Makefile
Marco Costalba [Sat, 7 Feb 2009 11:25:37 +0000 (12:25 +0100)]
Fix Makefile

Was broken after we removed color.cpp and square.cpp

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoTempletize generate_castle_moves()
Marco Costalba [Thu, 5 Feb 2009 15:08:00 +0000 (16:08 +0100)]
Templetize generate_castle_moves()

Cleanup the code and remove lines.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoAdd generation of castling checks
Marco Costalba [Thu, 5 Feb 2009 14:06:41 +0000 (15:06 +0100)]
Add generation of castling checks

When we generate checks one case is missing: generation
of castling moves that give check to the opponent king.

This is a very rare case but anyway it is a case
and we can do this without slowing down the common
case of no castling checks.

So this is the patch.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRemove square.cpp
Marco Costalba [Wed, 4 Feb 2009 16:51:23 +0000 (17:51 +0100)]
Remove square.cpp

Move the few stuff in square.h

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMove constants from piece.cpp to piece.h
Marco Costalba [Wed, 4 Feb 2009 16:42:28 +0000 (17:42 +0100)]
Move constants from piece.cpp to piece.h

Leave in piece.cpp only a couple of functions that
need #include <cstring>

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoPawnInfo::clear() retire memset() and fix Ubuntu compile
Marco Costalba [Wed, 4 Feb 2009 16:18:12 +0000 (17:18 +0100)]
PawnInfo::clear() retire memset() and fix Ubuntu compile

Go back to original direct assignment, this allows to
add an include in pawns.h to teach about memset()

This fix a compile error under Ubuntu.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRemove the useless color.cpp
Marco Costalba [Wed, 4 Feb 2009 16:12:21 +0000 (17:12 +0100)]
Remove the useless color.cpp

Integrate the only (inline) function in color.h

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFinal endgame.cpp space inflate
Marco Costalba [Tue, 3 Feb 2009 15:08:41 +0000 (16:08 +0100)]
Final endgame.cpp space inflate

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRevert previous commit.
Marco Costalba [Tue, 3 Feb 2009 14:41:04 +0000 (15:41 +0100)]
Revert previous commit.
Optimization is correct but slightly slower
so it is a pessimization :-)

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoYet another count_1s() optimization
Marco Costalba [Sun, 25 Jan 2009 18:29:15 +0000 (19:29 +0100)]
Yet another count_1s() optimization

No functional change

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRever count_1s() optimizations
Marco Costalba [Sun, 25 Jan 2009 17:00:57 +0000 (18:00 +0100)]
Rever count_1s() optimizations

They are wrong for all ones case.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMovePicker, remove a variable
Marco Costalba [Sun, 25 Jan 2009 12:52:35 +0000 (13:52 +0100)]
MovePicker, remove a variable

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMovePicker::find_best_index() never returns -1
Marco Costalba [Sun, 25 Jan 2009 12:36:59 +0000 (13:36 +0100)]
MovePicker::find_best_index() never returns -1

So avoid checking for it.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRewrite count_1s() to be similar to 64bit counterpart
Marco Costalba [Sun, 11 Jan 2009 16:15:18 +0000 (17:15 +0100)]
Rewrite count_1s() to be similar to 64bit counterpart

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMicro optimize count_1s_max_15() for 32 bit system
Marco Costalba [Sun, 11 Jan 2009 16:05:29 +0000 (17:05 +0100)]
Micro optimize count_1s_max_15() for 32 bit system

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix a very old bug in queen mobility
Marco Costalba [Sat, 10 Jan 2009 15:11:33 +0000 (16:11 +0100)]
Fix a very old bug in queen mobility

For queen mobility could be bigger then 15, so
we need count_1s() not count_1s_max_15().

This bug was introduced by patch:
"Group common evaluate code" of 24/9/2008

So it's almost 4 months and two release old!

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoStart to space inflate endgame.cpp
Marco Costalba [Thu, 8 Jan 2009 14:46:57 +0000 (15:46 +0100)]
Start to space inflate endgame.cpp

Still a lot to do, it's a big file!

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRewrite evaluate_common() as a template
Marco Costalba [Wed, 7 Jan 2009 14:37:28 +0000 (15:37 +0100)]
Rewrite evaluate_common() as a template

Seems to speed up this very hot path and code is
cleaner too.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoBig trailing whitespace cleanup part 2
Marco Costalba [Wed, 7 Jan 2009 13:28:04 +0000 (14:28 +0100)]
Big trailing whitespace cleanup part 2

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoBig trailing whitespace cleanup part 1
Marco Costalba [Wed, 7 Jan 2009 13:26:58 +0000 (14:26 +0100)]
Big trailing whitespace cleanup part 1

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoAnother micro-optmization in valuate_passed_pawns()
Marco Costalba [Wed, 7 Jan 2009 13:17:50 +0000 (14:17 +0100)]
Another micro-optmization in valuate_passed_pawns()

very small gain, but still a gain at the cost of
an extra indentation level.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix a small bug in rook pawn evaluation
Marco Costalba [Tue, 6 Jan 2009 15:10:22 +0000 (16:10 +0100)]
Fix a small bug in rook pawn evaluation

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoevaluate_passed_pawns() micro-optmization
Marco Costalba [Tue, 6 Jan 2009 15:06:08 +0000 (16:06 +0100)]
evaluate_passed_pawns() micro-optmization

No functional change, only a bit faster.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFinal space inflate of evaluatio.cpp
Marco Costalba [Tue, 6 Jan 2009 14:59:08 +0000 (15:59 +0100)]
Final space inflate of evaluatio.cpp

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoSpace inflate evaluate_passed_pawns()
Marco Costalba [Tue, 6 Jan 2009 14:49:33 +0000 (15:49 +0100)]
Space inflate evaluate_passed_pawns()

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoPiece mobility: filter out squares protected by pawns
Marco Costalba [Mon, 5 Jan 2009 14:14:16 +0000 (15:14 +0100)]
Piece mobility: filter out squares protected by pawns

Do not consider squares protected by enemy pawns
in mobility evaluation.

This reduces the mobility value by about 15%

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoTake in account odd depths in razoring formula
Marco Costalba [Mon, 5 Jan 2009 11:41:27 +0000 (12:41 +0100)]
Take in account odd depths in razoring formula

This is somewhat taken from Stockfish 1.2 Default,
only the razoring thresold are updated, not the
razoring depth.

At the end razoring is a bit more aggressive. Results
seems slightly positive.

After 999 games +239 =536 -224 Elo +5

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix dbg_mean_of() to enable statistics when called
Marco Costalba [Tue, 30 Dec 2008 11:54:21 +0000 (12:54 +0100)]
Fix dbg_mean_of() to enable statistics when called

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRestore development versioning and LSN filtering
Marco Costalba [Tue, 30 Dec 2008 11:42:23 +0000 (12:42 +0100)]
Restore development versioning and LSN filtering

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoStockfish 1.2 optimistic
Marco Costalba [Mon, 29 Dec 2008 11:24:34 +0000 (12:24 +0100)]
Stockfish 1.2 optimistic

Optimistic razoring settings. It is stronger with
most engines but weaker with someones.

The default is instead more solid and uniform with all
the opponents.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoStockfish 1.2
Marco Costalba [Mon, 29 Dec 2008 11:06:21 +0000 (12:06 +0100)]
Stockfish 1.2

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMicro optimization in extension()
Marco Costalba [Mon, 29 Dec 2008 10:57:07 +0000 (11:57 +0100)]
Micro optimization in extension()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRemove a gcc warning on an unused variable
Marco Costalba [Mon, 29 Dec 2008 10:36:11 +0000 (11:36 +0100)]
Remove a gcc warning on an unused variable

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoProperly handle odd depths in razor formula
Marco Costalba [Sun, 28 Dec 2008 18:38:44 +0000 (19:38 +0100)]
Properly handle odd depths in razor formula

A little bit more aggressive, but should be more
in line with the depths logic.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoSafer razoring formula
Marco Costalba [Sun, 28 Dec 2008 11:55:33 +0000 (12:55 +0100)]
Safer razoring formula

Add also the possibility to razor at ply one.
It is disable dby default but it seems stronger
against Stockfish itself. It is still not clear if
is stronger against other engines. By now leave
disabled.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoDon't silently accept an option name mismatch
Marco Costalba [Sun, 28 Dec 2008 11:37:13 +0000 (12:37 +0100)]
Don't silently accept an option name mismatch

With this we could have found earlier the futility
name option bug!

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoTweak again futility margings
Marco Costalba [Thu, 25 Dec 2008 19:08:45 +0000 (20:08 +0100)]
Tweak again futility margings

Lower margins near the leafs, higher at high depth.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoExpose new futility margin interface to UCI
Marco Costalba [Thu, 25 Dec 2008 18:41:24 +0000 (19:41 +0100)]
Expose new futility margin interface to UCI

Now futility margin it's actually a scale factor
to apply to the base ones.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoTweak futility margins
Marco Costalba [Thu, 25 Dec 2008 11:05:45 +0000 (12:05 +0100)]
Tweak futility margins

Less prune at the bottom and at the middle, a bit more
at the top.

After 747 games: +215 =345 -187 +13 elo

Also introduced a vector of margins, now that start to be a lot
it is a more flexible solution.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoTry razoring only for depth > OnePly
Marco Costalba [Wed, 24 Dec 2008 10:27:07 +0000 (11:27 +0100)]
Try razoring only for depth > OnePly

Because razoring verification after qsearch() cuts more
then 40% of candidates, do not waste a costly qsearch for
nodes at depth one that will be probably discarded anyway
by futility.

Also tight razoring conditions to keep dangerous false
negatives below 0,05%. Still not clear if it is enough.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFutility pruning till ply 6 included
Marco Costalba [Wed, 24 Dec 2008 08:34:09 +0000 (09:34 +0100)]
Futility pruning till ply 6 included

Seems good:

After 796 games: +211 = 393 -192 +8 elo

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix a comment
Marco Costalba [Mon, 22 Dec 2008 09:18:36 +0000 (10:18 +0100)]
Fix a comment

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMerge futility pruning from Glaurung 2.2
Marco Costalba [Tue, 23 Dec 2008 11:01:48 +0000 (12:01 +0100)]
Merge futility pruning from Glaurung 2.2

It seems much more powerful then previous one.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoPassed pawns: consider enemy rooks or queens from behind
Marco Costalba [Mon, 22 Dec 2008 11:10:15 +0000 (12:10 +0100)]
Passed pawns: consider enemy rooks or queens from behind

Merged from Glaurung 2.2

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoKing safety: retire rook contact check
Marco Costalba [Mon, 22 Dec 2008 11:07:00 +0000 (12:07 +0100)]
King safety: retire rook contact check

Merged from Glaurung 2.2

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoSet the 'Problem' variable only at ply == 1
Marco Costalba [Mon, 22 Dec 2008 10:44:00 +0000 (11:44 +0100)]
Set the 'Problem' variable only at ply == 1

Bug fix merged from Glaurung 2.2 for search_pv()

Added the same fix also to sp_search_pv() where
was missing.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRetire EvaluatePawnStorms and UseEasyMove constants
Marco Costalba [Sun, 21 Dec 2008 19:10:20 +0000 (20:10 +0100)]
Retire EvaluatePawnStorms and UseEasyMove constants

Merged from Glaurung 2.2

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMerge cosmetics from Glaurung 2.2
Marco Costalba [Sun, 21 Dec 2008 16:02:34 +0000 (17:02 +0100)]
Merge cosmetics from Glaurung 2.2

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMerge space weigth evaluation fromGlaurung 2.2
Marco Costalba [Sun, 21 Dec 2008 15:26:36 +0000 (16:26 +0100)]
Merge space weigth evaluation fromGlaurung 2.2

Is a new evaluation rule that gives bonus in midgame
to the side that has more space behind pawns for its
minor pieces.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMerged two new endgames from Glaurung 2.2
Marco Costalba [Sun, 21 Dec 2008 14:38:10 +0000 (15:38 +0100)]
Merged two new endgames from Glaurung 2.2

It is two bishop against a knight and two minor
pieces against one minor piece.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoSEE: add support for enpassant moves
Marco Costalba [Sun, 21 Dec 2008 07:29:46 +0000 (08:29 +0100)]
SEE: add support for enpassant moves

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoCall poll() before to check for stopped search
Marco Costalba [Fri, 19 Dec 2008 09:47:40 +0000 (10:47 +0100)]
Call poll() before to check for stopped search

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoLess aggressive razoring
Marco Costalba [Sun, 21 Dec 2008 09:42:39 +0000 (10:42 +0100)]
Less aggressive razoring

Use a margin to compare with beta so that positions
that after the verifying qsearch have gained a lot of points
are not discarded just becasue not above beta.

Also remove the second condition on depth <= OnePly, it
was too risky and added only a 2% more of pruned nodes.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRevert: "Do not razor when in check"
Marco Costalba [Thu, 18 Dec 2008 21:01:56 +0000 (22:01 +0100)]
Revert: "Do not razor when in check"

It is slightly weaker after 500 games. Keep the
check on mate values.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoTrigger of PawnEndgameExtension if capture is not a pawn
Marco Costalba [Wed, 17 Dec 2008 18:36:51 +0000 (19:36 +0100)]
Trigger of PawnEndgameExtension if capture is not a pawn

Instead of a rook.

This gives an unexpected graeat increase!

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agosearch_pv: an enpassant move is a capture
Marco Costalba [Tue, 16 Dec 2008 16:09:19 +0000 (17:09 +0100)]
search_pv: an enpassant move is a capture

Fix the logic in search_pv and sp_search_pv

An additional issue to consider is that a castle move
is not a capture but destination square is not empty.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoqsearch: take in account enpassant in futility formula
Marco Costalba [Tue, 16 Dec 2008 15:30:31 +0000 (16:30 +0100)]
qsearch: take in account enpassant in futility formula

Should not change anything at ELO level but it is
the correct thing to do.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoqsearch: do not call evaluate when in check
Marco Costalba [Tue, 16 Dec 2008 11:55:44 +0000 (12:55 +0100)]
qsearch: do not call evaluate when in check

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRestore development versioning and LSN filtering
Marco Costalba [Mon, 15 Dec 2008 21:23:03 +0000 (22:23 +0100)]
Restore development versioning and LSN filtering

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoDo not razor while in check or value is mate
Marco Costalba [Mon, 15 Dec 2008 15:47:30 +0000 (16:47 +0100)]
Do not razor while in check or value is mate

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoDo not null search when beta is a mate value
Marco Costalba [Mon, 15 Dec 2008 10:50:01 +0000 (11:50 +0100)]
Do not null search when beta is a mate value

Also do not return unproven mates in null search.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoBetter document null move dynamic reduction
Marco Costalba [Mon, 15 Dec 2008 09:43:18 +0000 (10:43 +0100)]
Better document null move dynamic reduction

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoIntroduce beta counters to order moves at ply one
Marco Costalba [Mon, 15 Dec 2008 21:13:42 +0000 (22:13 +0100)]
Introduce beta counters to order moves at ply one

Instead of number of searched nodes use the number of
opponent beta-cutoff occurred under the move subtree.

After 570 games 1+0 we have: +150 =288 -132 (+11 ELO)

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoDebugging: move debug function definitions in misc.cpp
Marco Costalba [Sun, 14 Dec 2008 16:26:05 +0000 (17:26 +0100)]
Debugging: move debug function definitions in misc.cpp

Also activate writing on log file.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoDebugging: print to file
Marco Costalba [Sun, 14 Dec 2008 13:57:17 +0000 (14:57 +0100)]
Debugging: print to file

Print debug info on log file, not only on std::cout

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix two bugs in ok_to_prune() (2)
Marco Costalba [Fri, 12 Dec 2008 21:27:43 +0000 (22:27 +0100)]
Fix two bugs in ok_to_prune() (2)

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoDisable "Null driven IID" by default
Marco Costalba [Thu, 11 Dec 2008 15:58:28 +0000 (16:58 +0100)]
Disable "Null driven IID" by default

Testing is not clear. Probably we need to test
at deeper depths to have some clear results.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoNull move only for depth > OnePly
Marco Costalba [Thu, 11 Dec 2008 15:27:27 +0000 (16:27 +0100)]
Null move only for depth > OnePly

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoNull driven IID: remove IIDMargin from see() condition
Marco Costalba [Wed, 10 Dec 2008 20:43:09 +0000 (21:43 +0100)]
Null driven IID: remove IIDMargin from see() condition

This seems to cut searched nodes also more.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix inflate pawns.cpp fallout
Marco Costalba [Wed, 10 Dec 2008 17:46:12 +0000 (18:46 +0100)]
Fix inflate pawns.cpp fallout

Catched counting the nodes searched at
fixed depth. A quick and reliable cross check,
expecially in inflate only patches.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoAdd behind_bb() helper to simplify code logic
Marco Costalba [Tue, 9 Dec 2008 16:39:40 +0000 (17:39 +0100)]
Add behind_bb() helper to simplify code logic

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoSpace inflate pawns.cpp
Marco Costalba [Tue, 9 Dec 2008 15:46:10 +0000 (16:46 +0100)]
Space inflate pawns.cpp

Hopefully no functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoAdd a see() function that take only destination square
Marco Costalba [Tue, 9 Dec 2008 10:20:47 +0000 (11:20 +0100)]
Add a see() function that take only destination square

In this case firstlocates the least valuable attacker, if any,
then proceed as usual.

This will be used by next patch.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoStockfish 1.1a
Marco Costalba [Mon, 8 Dec 2008 11:03:46 +0000 (12:03 +0100)]
Stockfish 1.1a

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoAdd "Null driven IID" UCI option (default true)
Marco Costalba [Mon, 8 Dec 2008 09:57:40 +0000 (10:57 +0100)]
Add "Null driven IID" UCI option (default true)

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoNull move driven internal iterative deepening
Marco Costalba [Mon, 8 Dec 2008 09:46:52 +0000 (10:46 +0100)]
Null move driven internal iterative deepening

When a null move fails low due to a capture, try
to detect if without the capture we are above beta,
in this case there is a good possibility this is
a cut-node and the capture is just a null move
artifact due to side to move change. So if we still
don't have a TT move it's a good time to start an IID.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoStockfish 1.1
Marco Costalba [Sat, 6 Dec 2008 16:18:59 +0000 (17:18 +0100)]
Stockfish 1.1

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoRevert see() shortcut for LxH and equal captures
Marco Costalba [Sat, 6 Dec 2008 11:22:56 +0000 (12:22 +0100)]
Revert see() shortcut for LxH and equal captures

It happens that more then 70% of cases are HxL, where
we call see() anyway. The mesured saving of calling
see is about 0,5% of total time, but considering the
added burden in score_captures() the saving is only
0,35% locally and due to more difficult inlining of
the function it ends up that we have no advantage at all,
possibly a small slow down!

So revert.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix two gcc warnings in san.cpp
Marco Costalba [Sat, 6 Dec 2008 11:01:16 +0000 (12:01 +0100)]
Fix two gcc warnings in san.cpp

One good, the other silly.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoFix an Intel warning in san.cpp
Marco Costalba [Sat, 6 Dec 2008 10:56:34 +0000 (11:56 +0100)]
Fix an Intel warning in san.cpp

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
12 years agoMovePicker: avoid calling see() for LxH and equal captures
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>
12 years agoNull capture pruning
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>
12 years agoPosition::move_is_capture() does not handle MOVE_NONE
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>
12 years agoAllow to call Position::print() from MovePicker
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>
12 years agosan.cpp: rewrite broken move_from_san
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>
12 years agosan.cpp cleanup
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>
12 years agoRevert opponent time advantage logic
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>
12 years agoRevert sigmoid interpolator
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>
13 years agosan.cpp pass position as constant reference
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>
13 years agopiece_type_to_char() default argument in declaration
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>
13 years agoRevert threat move ordering
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>
13 years agoTweak allocated time per move
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>
13 years agoRewrok the extendeable patch
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>
13 years agoMovePicker: take advantage of threat move for ordering
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>
13 years agoUse extendable instead of depth extension
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>
13 years agoGenerate moves for powerful pieces first
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>