X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fposition.cpp;h=8099764c07f758ae3b13d1d3d3b4f190053a4516;hb=2a461b4b745b2542f6e13bab8c60abdb366bc128;hp=1179f6f98a8aa61733cb81df7cdecae906c4a042;hpb=bbb24625764619e5886ce0250739a4c9bfdb4d33;p=stockfish diff --git a/src/position.cpp b/src/position.cpp index 1179f6f9..8099764c 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -1474,6 +1474,22 @@ int Position::see(Move m) const { return see(move_from(m), move_to(m)); } +int Position::see_sign(Move m) const { + + assert(move_is_ok(m)); + + Square from = move_from(m); + Square to = move_to(m); + + // Early return if SEE cannot be negative because capturing piece value + // is not bigger then captured one. + if ( midgame_value_of_piece_on(from) <= midgame_value_of_piece_on(to) + && type_of_piece_on(from) != KING) + return 1; + + return see(from, to); +} + int Position::see(Square from, Square to) const { // Material values