assert(!pos.checkers());
Value v;
- Value psq = pos.psq_eg_stm();
int nnueComplexity;
int npm = pos.non_pawn_material() / 64;
Value nnue = NNUE::evaluate(pos, true, &nnueComplexity);
+ int material = 67 * (pos.count<PAWN>(stm) - pos.count<PAWN>(~stm))
+ + 395 * (pos.count<KNIGHT>(stm) - pos.count<KNIGHT>(~stm))
+ + 288 * (pos.count<BISHOP>(stm) - pos.count<BISHOP>(~stm))
+ + 630 * (pos.count<ROOK>(stm) - pos.count<ROOK>(~stm))
+ + 857 * (pos.count<QUEEN>(stm) - pos.count<QUEEN>(~stm));
+
// Blend optimism with nnue complexity and (semi)classical complexity
- optimism += optimism * (nnueComplexity + abs(psq - nnue)) / 512;
+ optimism += optimism * (nnueComplexity + abs(material - nnue)) / 512;
v = ( nnue * (915 + npm + 9 * pos.count<PAWN>())
+ optimism * (154 + npm + pos.count<PAWN>())) / 1024;