stockfish
13 years agoRevert "Last minute surprise" for now
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>
13 years agoFinish material.cpp cleanup
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>
13 years agoStart to simplify material.cpp
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>
13 years agoFactor out Position::do_capture_move()
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>
13 years agoFix a bug in generate_evasions()
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>
13 years agoRefine "few moves" in "last minute surprise"
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>
13 years agoManual merge
Marco Costalba [Sun, 26 Oct 2008 20:44:58 +0000 (21:44 +0100)]
Manual merge

13 years agoSpace inflate extension() code
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>
13 years agoTEST: extend when few moves available
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>
13 years agoRevert see shortcut when only one attacker
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>
13 years agoPrefer out of loop variables in MovePicker::score_captures()
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>
13 years agoEffectively use MVV/LVA in MovePicker::score_captures()
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>
13 years agoReintroduce piece/square tables to score non-captures
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>
13 years agoPosition: fix a couple of Intel compiler warnings
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>
13 years agoTest with SEE shortcut
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>
13 years agoBetter naming of pseudo-legality and legality testing
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>
13 years agoTry to cleanup movepick
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>
13 years agoRestore original movepick modulo space inflation
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>
13 years agoSpace inflate position: complete!
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>
13 years agoSpace inflate position until do_promotion_move()
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>
13 years agoStart to space inflate position.cpp
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>
13 years agoFix a performance bug in generate_move_if_legal
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>
13 years agoUnify pinned and discovery checks code
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>
13 years agoRefactor Position::pinned_pieces() to use templates
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>
13 years agomovegen: add SERIALIZE_MOVES and hides a bunch of loops
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>
13 years agoAnother generate_piece_moves() micro optimization
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>
13 years agoFix another template conversion bug in movegen
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>
13 years agomovegen: prefer (*mlist++) to mlist[n++]
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>
13 years agoFix a bug in generate_pawn_captures()
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>
13 years agoFully templetize pawn move generators
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>
13 years agoMicro optimize generate_piece_moves()
Marco Costalba [Mon, 20 Oct 2008 22:10:27 +0000 (00:10 +0200)]
Micro optimize generate_piece_moves()

It is a time critical path. The biggest in move generation.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoAnother Intel warning sqeezed
Marco Costalba [Mon, 20 Oct 2008 19:57:13 +0000 (21:57 +0200)]
Another Intel warning sqeezed

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoQuiet a warning on Intel compiler
Marco Costalba [Mon, 20 Oct 2008 19:55:43 +0000 (21:55 +0200)]
Quiet a warning on Intel compiler

Plus usual trailing whitespace noise.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoShrink arguments in move generation functions
Marco Costalba [Mon, 20 Oct 2008 08:46:31 +0000 (10:46 +0200)]
Shrink arguments in move generation functions

Perhaps no speedup, but it is more readable.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoFix a bug in king discoveries checks
Marco Costalba [Mon, 20 Oct 2008 08:22:29 +0000 (10:22 +0200)]
Fix a bug in king discoveries checks

Introduced in "Add a generate_piece_checks() specialization for the king"

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoUpdate copyright info
Marco Costalba [Sun, 19 Oct 2008 16:56:28 +0000 (18:56 +0200)]
Update copyright info

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoLast little touches to movegen
Marco Costalba [Sun, 19 Oct 2008 16:19:16 +0000 (18:19 +0200)]
Last little touches to movegen

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRename PawnOffsets in PawnParams
Marco Costalba [Sun, 19 Oct 2008 16:01:01 +0000 (18:01 +0200)]
Rename PawnOffsets in PawnParams

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoPawn move generator: dispatch at compile time
Marco Costalba [Sun, 19 Oct 2008 15:54:18 +0000 (17:54 +0200)]
Pawn move generator: dispatch at compile time

Instead of function pointers use templates to
dispatch shift operations.

It is more clear and possibly also faster because
branches are removed at compile time.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoStart to templetize pawn move generators
Marco Costalba [Sun, 19 Oct 2008 15:20:21 +0000 (16:20 +0100)]
Start to templetize pawn move generators

Still very soft, we will see if compiler is
enough or we need more aggressive templetization.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRemove Positions::xxx_count() functions
Marco Costalba [Sun, 19 Oct 2008 13:39:29 +0000 (14:39 +0100)]
Remove Positions::xxx_count() functions

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRemove white/black_pawn_attacks_square()
Marco Costalba [Sun, 19 Oct 2008 13:06:06 +0000 (14:06 +0100)]
Remove white/black_pawn_attacks_square()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoTempletize Position::xxx_attacks_square()
Marco Costalba [Sun, 19 Oct 2008 12:56:57 +0000 (13:56 +0100)]
Templetize Position::xxx_attacks_square()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRemove Position::xxx_list() functions
Marco Costalba [Sun, 19 Oct 2008 12:44:25 +0000 (13:44 +0100)]
Remove Position::xxx_list() functions

No useful, only obfuscating.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoAdd a generate_piece_checks() specialization for the king
Marco Costalba [Sun, 19 Oct 2008 12:22:03 +0000 (13:22 +0100)]
Add a generate_piece_checks() specialization for the king

Also reshuffle the code a bit.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRemove white/black_pawn_attacks()
Marco Costalba [Sun, 19 Oct 2008 11:53:51 +0000 (12:53 +0100)]
Remove white/black_pawn_attacks()

Unuseful syntactic sugar, obfuscates the
real code.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoPrefer template to name decoration
Marco Costalba [Sun, 19 Oct 2008 11:43:09 +0000 (12:43 +0100)]
Prefer template to name decoration

This also allows faster code although bigger.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoFix a missing comma in BenchmarkPositions[]
Marco Costalba [Sun, 19 Oct 2008 10:55:53 +0000 (11:55 +0100)]
Fix a missing comma in BenchmarkPositions[]

An old bug introduced in 3e0dc9ee8477 almost
one month ago.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoPosition::is_ok()give more info on failed test
Marco Costalba [Sun, 19 Oct 2008 09:41:24 +0000 (10:41 +0100)]
Position::is_ok()give more info on failed test

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoFix an assert due to a missing parentesis
Marco Costalba [Sun, 19 Oct 2008 09:17:17 +0000 (10:17 +0100)]
Fix an assert due to a missing parentesis

Bitwise operators precedence issue here, was
causing an assert.

This is a fallout from recent patches.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoFinal semplification of generate_evasions()
Marco Costalba [Sun, 19 Oct 2008 08:33:33 +0000 (09:33 +0100)]
Final semplification of generate_evasions()

Now it's readable!

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoIntroduce generate_piece_blocking_evasions()
Marco Costalba [Sun, 19 Oct 2008 07:49:26 +0000 (08:49 +0100)]
Introduce generate_piece_blocking_evasions()

Start to simplify generate_evasions

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoSpace inflate generate_evasions()
Marco Costalba [Sun, 19 Oct 2008 07:27:24 +0000 (08:27 +0100)]
Space inflate generate_evasions()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoUpdate copyright info
Marco Costalba [Sun, 19 Oct 2008 16:56:28 +0000 (18:56 +0200)]
Update copyright info

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoLast little touches to movegen
Marco Costalba [Sun, 19 Oct 2008 16:19:16 +0000 (18:19 +0200)]
Last little touches to movegen

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRename PawnOffsets in PawnParams
Marco Costalba [Sun, 19 Oct 2008 16:01:01 +0000 (18:01 +0200)]
Rename PawnOffsets in PawnParams

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoPawn move generator: dispatch at compile time
Marco Costalba [Sun, 19 Oct 2008 15:54:18 +0000 (17:54 +0200)]
Pawn move generator: dispatch at compile time

Instead of function pointers use templates to
dispatch shift operations.

It is more clear and possibly also faster because
branches are removed at compile time.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoStart to templetize pawn move generators
Marco Costalba [Sun, 19 Oct 2008 15:20:21 +0000 (16:20 +0100)]
Start to templetize pawn move generators

Still very soft, we will see if compiler is
enough or we need more aggressive templetization.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRemove Positions::xxx_count() functions
Marco Costalba [Sun, 19 Oct 2008 13:39:29 +0000 (14:39 +0100)]
Remove Positions::xxx_count() functions

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRemove white/black_pawn_attacks_square()
Marco Costalba [Sun, 19 Oct 2008 13:06:06 +0000 (14:06 +0100)]
Remove white/black_pawn_attacks_square()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoTempletize Position::xxx_attacks_square()
Marco Costalba [Sun, 19 Oct 2008 12:56:57 +0000 (13:56 +0100)]
Templetize Position::xxx_attacks_square()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRemove Position::xxx_list() functions
Marco Costalba [Sun, 19 Oct 2008 12:44:25 +0000 (13:44 +0100)]
Remove Position::xxx_list() functions

No useful, only obfuscating.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoAdd a generate_piece_checks() specialization for the king
Marco Costalba [Sun, 19 Oct 2008 12:22:03 +0000 (13:22 +0100)]
Add a generate_piece_checks() specialization for the king

Also reshuffle the code a bit.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoRemove white/black_pawn_attacks()
Marco Costalba [Sun, 19 Oct 2008 11:53:51 +0000 (12:53 +0100)]
Remove white/black_pawn_attacks()

Unuseful syntactic sugar, obfuscates the
real code.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoPrefer template to name decoration
Marco Costalba [Sun, 19 Oct 2008 11:43:09 +0000 (12:43 +0100)]
Prefer template to name decoration

This also allows faster code although bigger.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoFix a missing comma in BenchmarkPositions[]
Marco Costalba [Sun, 19 Oct 2008 10:55:53 +0000 (11:55 +0100)]
Fix a missing comma in BenchmarkPositions[]

An old bug introduced in 3e0dc9ee8477 almost
one month ago.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoPosition::is_ok()give more info on failed test
Marco Costalba [Sun, 19 Oct 2008 09:41:24 +0000 (10:41 +0100)]
Position::is_ok()give more info on failed test

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoFix an assert due to a missing parentesis
Marco Costalba [Sun, 19 Oct 2008 09:17:17 +0000 (10:17 +0100)]
Fix an assert due to a missing parentesis

Bitwise operators precedence issue here, was
causing an assert.

This is a fallout from recent patches.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoFinal semplification of generate_evasions()
Marco Costalba [Sun, 19 Oct 2008 08:33:33 +0000 (09:33 +0100)]
Final semplification of generate_evasions()

Now it's readable!

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoIntroduce generate_piece_blocking_evasions()
Marco Costalba [Sun, 19 Oct 2008 07:49:26 +0000 (08:49 +0100)]
Introduce generate_piece_blocking_evasions()

Start to simplify generate_evasions

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoSpace inflate generate_evasions()
Marco Costalba [Sun, 19 Oct 2008 07:27:24 +0000 (08:27 +0100)]
Space inflate generate_evasions()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agomovegen: Introduce generate_pawn_noncaptures()
Marco Costalba [Sat, 18 Oct 2008 16:39:13 +0000 (18:39 +0200)]
movegen: Introduce generate_pawn_noncaptures()

This is the last of pawn moves generators converted
to new unified form.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agomovegen: Introduce generate_pawn_captures()
Marco Costalba [Sat, 18 Oct 2008 15:37:49 +0000 (17:37 +0200)]
movegen: Introduce generate_pawn_captures()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agomovegen: Fix just introduced move counter bug
Marco Costalba [Sat, 18 Oct 2008 14:30:00 +0000 (16:30 +0200)]
movegen: Fix just introduced move counter bug

This is what happens when you don't tests your patches !!

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agomovegen: Introduce generate_pawn_checks()
Marco Costalba [Sat, 18 Oct 2008 13:36:58 +0000 (15:36 +0200)]
movegen: Introduce generate_pawn_checks()

This greatly simplify redundant code.

Perhaps slihtly slower. Test needed.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agogenerate_checks: fix a bug in black double pawn push
Marco Costalba [Sat, 18 Oct 2008 11:58:07 +0000 (13:58 +0200)]
generate_checks: fix a bug in black double pawn push

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>
13 years agoSpace inflate generate_castle_moves()
Marco Costalba [Sat, 18 Oct 2008 09:07:27 +0000 (11:07 +0200)]
Space inflate generate_castle_moves()

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoUnify pieces check generation with generate_piece_checks()
Marco Costalba [Sat, 18 Oct 2008 08:57:27 +0000 (10:57 +0200)]
Unify pieces check generation with generate_piece_checks()

Could be slower: test needed!

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoDo not special case generate_king_moves()
Marco Costalba [Sat, 18 Oct 2008 07:49:51 +0000 (09:49 +0200)]
Do not special case generate_king_moves()

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>
13 years agoUse a const pointer-to-member array for attacks
Marco Costalba [Sat, 18 Oct 2008 06:54:18 +0000 (08:54 +0200)]
Use a const pointer-to-member array for attacks

Allow the compiler to optimize member
function access.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoUse pointer-to-members to remove a bunch of duplicated code
Marco Costalba [Fri, 17 Oct 2008 21:30:34 +0000 (23:30 +0200)]
Use pointer-to-members to remove a bunch of duplicated code

Remove all generate_XXX_moves() functions, use an array
of pointer to members instead.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agomovegen: revert see ordering in score_captures()
Marco Costalba [Fri, 17 Oct 2008 20:54:23 +0000 (22:54 +0200)]
movegen: revert see ordering in score_captures()

It works better with MVV ordering.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoMovegen: further simplify generate_move_if_legal
Marco Costalba [Fri, 17 Oct 2008 20:52:36 +0000 (22:52 +0200)]
Movegen: further simplify generate_move_if_legal

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoUnify black and white code in generate_move_if_legal()
Marco Costalba [Fri, 17 Oct 2008 13:38:00 +0000 (15:38 +0200)]
Unify black and white code in generate_move_if_legal()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoSpace inflate movegen.cpp
Marco Costalba [Fri, 17 Oct 2008 13:11:19 +0000 (15:11 +0200)]
Space inflate movegen.cpp

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoMovepick: add and use find_best_index() helper
Marco Costalba [Fri, 17 Oct 2008 06:25:39 +0000 (08:25 +0200)]
Movepick: add and use find_best_index() helper

This removes a bunch of redundant code.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoTest with see
Marco Costalba [Fri, 17 Oct 2008 05:58:36 +0000 (07:58 +0200)]
Test with see

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoUse MVV to score captures when see >=0
Marco Costalba [Fri, 17 Oct 2008 04:14:21 +0000 (06:14 +0200)]
Use MVV to score captures when see >=0

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>
13 years agoMovePicker: use const reference instead of pointers
Marco Costalba [Thu, 16 Oct 2008 14:21:36 +0000 (16:21 +0200)]
MovePicker: use const reference instead of pointers

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoSpace inflate movepick.cpp
Marco Costalba [Thu, 16 Oct 2008 12:25:56 +0000 (14:25 +0200)]
Space inflate movepick.cpp

Also added some FIXME to dubious points.

Still no functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoBetter comment previous patch
Marco Costalba [Thu, 16 Oct 2008 10:53:25 +0000 (12:53 +0200)]
Better comment previous patch

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoAlways add psqt scoring
Marco Costalba [Wed, 15 Oct 2008 18:45:29 +0000 (20:45 +0200)]
Always add psqt scoring

When there is also history, history is always
preferred.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoShortcut sorting when no move is in history
Marco Costalba [Wed, 15 Oct 2008 18:39:09 +0000 (20:39 +0200)]
Shortcut sorting when no move is in history

An alternative algorithm to psqt scoring.

Still unclear what is the best, more tests needed.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
13 years agoAdd psqt ordering when there is no history
Marco Costalba [Wed, 15 Oct 2008 06:18:05 +0000 (07:18 +0100)]
Add psqt ordering when there is no history

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>
13 years agoIntroduce Stockfish
unknown [Mon, 13 Oct 2008 21:45:47 +0000 (22:45 +0100)]
Introduce Stockfish

Signed-off-by: unknown <Marco@.(none)>
13 years agoImplement Last Seconds Noise (LSN) filtering
Marco Costalba [Mon, 13 Oct 2008 13:19:17 +0000 (15:19 +0200)]
Implement Last Seconds Noise (LSN) filtering

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>
13 years agoAdd a second margin to razoring
Marco Costalba [Mon, 13 Oct 2008 05:15:48 +0000 (07:15 +0200)]
Add a second margin to razoring

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>
13 years agoWorkaround a static data member bug in MSVC
Marco Costalba [Sun, 12 Oct 2008 21:16:10 +0000 (22:16 +0100)]
Workaround a static data member bug in MSVC

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>
13 years agoYet another pop_1st_bit() optimization
Marco Costalba [Sun, 12 Oct 2008 12:34:54 +0000 (14:34 +0200)]
Yet another pop_1st_bit() optimization

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>
13 years agoAdd mean calculation in debug tools
Marco Costalba [Sat, 11 Oct 2008 17:25:16 +0000 (19:25 +0200)]
Add mean calculation in debug tools

Another simple performance counter...

Signed-off-by: Marco Costalba <mcostalba@gmail.com>