Pull out some stuff into compile-time const generics, remove the number of times we're looping over all the pieces by sharing an EvalContext between the mobility and king safety calculations.
Seems like a 10% speedup. Not sure if that's measurable, but I'm sure as hell gonna check
2 hours later:
Score of Simbelmyne vs Simbelmyne main: 758 - 614 - 1128 [0.529]
... Simbelmyne playing White: 389 - 313 - 548 [0.530] 1250
... Simbelmyne playing Black: 369 - 301 - 580 [0.527] 1250
... White vs Black: 690 - 682 - 1128 [0.502] 2500
Elo difference: 20.0 +/- 10.1, LOS: 100.0 %, DrawRatio: 45.1 %
Pull out some stuff into compile-time const generics, remove the number of times we're looping over all the pieces by sharing an
EvalContext
between the mobility and king safety calculations.Seems like a 10% speedup. Not sure if that's measurable, but I'm sure as hell gonna check
2 hours later:
🥳