I thought before I move on to the next step I try an early exit idea in the KBNKN recognizer. As the position is more likely a DRAW if defender king and knight have good mobility I added 2 rules (1 for black and 1 for white) that classify a position as DRAW if King and Knight have 4 or more safe squares to move to.
Those rules are on top of all the other rules, so if their conditions are met I get an early exit. Measurement shows that about 16% of recognizable draws are already recognized by the early exit rule. An additional benefit is that I get a slight improvement in the number of recognized draws as a small number of positions is now correctly announced as draw that would otherwise be announced as unknown because they are covered by one of the "not draw" patterns.
Incorrect Draws : 0 0
Spotted Draws : 64.403.306 65.560.677
Missed Draws : 117.746.021 116.588.650
Spotted Wins : 37.532.061 37.532.061
So this is enough now for KBNKN and I move on.
When I started with 5 man endgames I implemented a simple recognizer for KRPKR because I read this is the most common endgame of all and I wanted iCE to recognize the Philidor and Lucena positions. As I had no 5 man tablebase I was not able to verify whether the recognizer works correctly I just had some sample positions where it did.
I now checked it against the table base and its performance is terrible. It misses most of the DRAWs and has a 5% error rate where it announces a DRAW which is in fact not a DRAW. This requires definitely some immediate fixing. I hope it is not as difficult as the the previous one, having no knights certainly helps but then again having a pawn now on the board makes it more difficult.