Since you’re here...

... we have a small favour to ask. More people, like you, are reading and supporting our blog: "Chess Engines Diary". And unlike many other sites and blogs, we made the choice to keep our articles open for all, regardless of where they live or what they can afford to pay.

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.

============================== My email: jotes@go2.pl



Stockfish 17011118 - new version!


Stockfish, chess engine UCI

Leader rating list JCER = 3406

🔬 Author: Stéphane Nicolet      
More:

Timestamp: 1484154677 

Check for overflow in Score * int multiplication (#969) 

Add asserts to check for overflow in Score * int multiplication. 

There is no overflow in current master, but it would be easy to create one as the scale of the current eval does not leave many spare bits. For instance, adding the following unused variables in master at the end of evaluate() (line 882 of evaluate.cpp) overflows: 

Score s1 = score * 4; // no overflow 
Score s2 = score * 5; // overflow 

Assertion failed: (eg_value(result) == (i * eg_value(s))), 
function operator*, file ./types.h, line 336. 

Same md5 checksum as current master for non debug compiles. 

No functional change.

⭐⭐⭐   Stockfish 17011118 - download


Comments