Answers.Body: <p>I took a peek at the code given in a comment. It seems to have a small semi-random factor added to the evaluation, probably so it can more easily just pick a move from all the ties that are going to come up. However, the size of the score difference appears to be greater than what could be explained by just this. Also, at move 65 it evaluates the position as -M3 but there is clearly not a mate in 3 from that position.</p>
  <p>The false mate clearly shows that there is a bug somewhere.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-05-02T02:40:43.693Z
Answers.LastActivityDate: 2021-05-02T02:40:43.693Z
Answers.UserDisplayName: D M
Answers.Body: <p>There are other anomalies too, like around move 14 or so (though these may be rounding errors?). Do you have SimpleEval's code to be sure that it is only counting material.</p>
  <p>One possible explanation (though not relevant in this case) is that sometimes a bishop pair is valued at 6.25 rather than perhaps the naive 6 you would suggest).</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-04-30T06:07:36.357Z
Answers.Text: SimpleEval code - https://github.com/Fanael/Stockfish/blob/dried-cod/src/evaluate.cpp#L49
Answers.UserDisplayName: Allure
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-04-30T06:04:06.027Z
Answers.LastActivityDate: 2021-04-30T06:04:06.027Z
Answers.UserDisplayName: sjb
Body: <p><a href="https://lichess.org/@/simpleEval" rel="nofollow noreferrer">SimpleEval</a> is Stockfish with simple eval - it only counts the material in the position and ignores all other evaluation factors like king safety or mobility. It is currently playing at <a href="https://tcec-chess.com/#" rel="nofollow noreferrer">TCEC</a>.</p>
  <p>If SimpleEval only counts material, how is it possible that it occasionally shows fractional eval? As I understand chess engines, they search the game tree and return the eval function on the final position of the search tree. Since SimpleEval only counts material, its eval ought to change in steps of 1. Yet on move 42 of <a href="https://tcec-chess.com/#div=q43t&amp;game=101&amp;season=21" rel="nofollow noreferrer">this game</a>, it shows an eval of -4.25. There's no material combination that could possibly yield that eval. What's going on?</p>
  
Tags: <engines><stockfish>
Title: Why doesn't SimpleEval's eval change in multiples of 1?
ThreadText: # Why doesn't SimpleEval's eval change in multiples of 1?
  
  (Asked by: username_0 on 2021-04-30)
  
  [SimpleEval](https://lichess.org/@/simpleEval) is Stockfish with simple eval - it only counts the material in the position and ignores all other evaluation factors like king safety or mobility. It is currently playing at [TCEC](https://tcec-chess.com/#).
  
  If SimpleEval only counts material, how is it possible that it occasionally shows fractional eval? As I understand chess engines, they search the game tree and return the eval function on the final position of the search tree. Since SimpleEval only counts material, its eval ought to change in steps of 1. Yet on move 42 of [this game](https://tcec-chess.com/#div=q43t&game=101&season=21), it shows an eval of -4.25. There's no material combination that could possibly yield that eval. What's going on?
  
  **Tags:** engines, stockfish
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2021-05-02. Score: 2 | Accepted answer
  
  I took a peek at the code given in a comment. It seems to have a small semi-random factor added to the evaluation, probably so it can more easily just pick a move from all the ties that are going to come up. However, the size of the score difference appears to be greater than what could be explained by just this. Also, at move 65 it evaluates the position as -M3 but there is clearly not a mate in 3 from that position.
  
  The false mate clearly shows that there is a bug somewhere.
  
  
  ---
  
  ### Answer by username_2 on 2021-04-30. Score: 1
  
  There are other anomalies too, like around move 14 or so (though these may be rounding errors?). Do you have SimpleEval's code to be sure that it is only counting material.
  
  One possible explanation (though not relevant in this case) is that sometimes a bishop pair is valued at 6.25 rather than perhaps the naive 6 you would suggest).
  
  > **Comments:**
  > **username_0**: SimpleEval code - https://github.com/Fanael/Stockfish/blob/dried-cod/src/evaluate.cpp#L49  
  
  ---
  
  