Implementting endgame recognisors, ala DarkThought, i am currently working on adding bitbases for the 4-piece endgames to my engine Pupsi.
I have generated the "depth to mate" tables, and they appear to be working.
The next phase is to create a "won-draw" and "draw-lost" bitbases from the "depth to mate" tables.
My problem right now, is that my engine cannot force a win in the KQKB and the KQKN endgames using just the bitbases!

The heuristic used is based upon "forcing the opponent king to the corner" and "keeping the kings close together" if won (or lost, if black to move);
Please see http://supertech.lcs.mit.edu/~heinz/dt/node33.html for details about recognisors.
So if white to move:
Lower bound if won.
Exact 0 if draw.
If black to move:
Upper bound if lost.
Exact 0 if draw.
This heuristic works splendidly for KBBK and KBNK (adjusted for the right corners).
So:
What kind of heuristic is needed to force a win?
Should I look for the bug in the heuristic or in the way recognisors are used in the search?
What are your experiences with these endgame bitbases?
Thanks in advance!
Kind regards,
Jesper
P.S:
As i am writing this, I found a bug in my recognisor. If lost, the value returned was marked as a lower bound. So this entire post is a waste of time!

But i won't throw it away. Doggone it! Instead i will change the question to this:
What heuristics are you using for your bitbase handling of simple endgames?
So far, it appears that driving the opponent king to a corner and keeping the kings close works great.
More kind regards,
Jesper