Marco Costalba
af5743837d
Another generate_piece_moves() micro optimization
...
This time on the for loop.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-24 21:10:04 +02:00
Marco Costalba
5e768e4b0a
Fix another template conversion bug in movegen
...
Hopefully the last one.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-24 21:09:51 +02:00
Marco Costalba
2d867109d9
movegen: prefer (*mlist++) to mlist[n++]
...
Teoretically faster, practically it helps to
removes some more lines.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-23 07:17:04 +02:00
Marco Costalba
b145e99559
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>
2008-10-23 07:17:04 +02:00
Marco Costalba
8f2c1c59eb
Fully templetize pawn move generators
...
A little bit more syntax heavuer but surely faster.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-23 07:17:04 +02:00
Marco Costalba
c40249e9d2
Micro optimize generate_piece_moves()
...
It is a time critical path. The biggest in move generation.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-21 00:10:27 +02:00
Marco Costalba
ce93a202b5
Another Intel warning sqeezed
...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:57:13 +02:00
Marco Costalba
af6571856e
Shrink arguments in move generation functions
...
Perhaps no speedup, but it is more readable.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:47:21 +02:00
Marco Costalba
0c8659721f
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>
2008-10-20 21:47:20 +02:00
Marco Costalba
5dc2312121
Update copyright info
...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:47:20 +02:00
Marco Costalba
aa94f2f4c2
Last little touches to movegen
...
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:47:19 +02:00
Marco Costalba
d7161c1ce6
Rename PawnOffsets in PawnParams
...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:47:19 +02:00
Marco Costalba
e2af0e775b
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>
2008-10-20 21:47:19 +02:00
Marco Costalba
ad1bb084dd
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>
2008-10-20 21:47:18 +02:00
Marco Costalba
7eb290a509
Add a generate_piece_checks() specialization for the king
...
Also reshuffle the code a bit.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:47:17 +02:00
Marco Costalba
d9e54ceaa1
Prefer template to name decoration
...
This also allows faster code although bigger.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:47:16 +02:00
Marco Costalba
6b8a07eccc
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>
2008-10-20 21:47:15 +02:00
Marco Costalba
8e85aa3a65
Final semplification of generate_evasions()
...
Now it's readable!
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:47:15 +02:00
Marco Costalba
4f18528a1c
Introduce generate_piece_blocking_evasions()
...
Start to simplify generate_evasions
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:47:15 +02:00
Marco Costalba
4a4d62da13
Space inflate generate_evasions()
...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-20 21:47:15 +02:00
Marco Costalba
72289fcfab
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>
2008-10-18 21:35:35 +02:00
Marco Costalba
73d0d2c0b2
movegen: Introduce generate_pawn_captures()
...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-18 21:35:35 +02:00
Marco Costalba
c1257d45b2
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>
2008-10-18 21:35:35 +02:00
Marco Costalba
34a515f20b
movegen: Introduce generate_pawn_checks()
...
This greatly simplify redundant code.
Perhaps slihtly slower. Test needed.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-18 21:35:35 +02:00
Marco Costalba
5abe8a0816
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>
2008-10-18 21:35:34 +02:00
Marco Costalba
35fd5ce5bc
Space inflate generate_castle_moves()
...
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-18 21:35:34 +02:00
Marco Costalba
146bb2dfa7
Unify pieces check generation with generate_piece_checks()
...
Could be slower: test needed!
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-18 21:35:34 +02:00
Marco Costalba
ea16985ea5
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>
2008-10-18 21:35:34 +02:00
Marco Costalba
3b857d1625
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>
2008-10-18 21:35:34 +02:00
Marco Costalba
aa7121297d
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>
2008-10-18 21:35:34 +02:00
Marco Costalba
c852a94009
Movegen: further simplify generate_move_if_legal
...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-18 21:35:33 +02:00
Marco Costalba
8be2c483a1
Unify black and white code in generate_move_if_legal()
...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-18 21:35:33 +02:00
Marco Costalba
158911425b
Space inflate movegen.cpp
...
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-10-18 21:35:33 +02:00
Marco Costalba
f56af8e84d
Rename pawn_rank() in relative_rank()
...
It is more clear, at last for me.
Also cleanup evaluate_rook() and evaluate_queen()
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2008-09-24 21:02:15 +02:00
Marco Costalba
bb751d6c89
Initial import of Glaurung 2.1
2008-09-01 07:59:13 +02:00