H. G. Muller wrote on Sun, Mar 11, 2012 08:24 AM UTC:
With N color-bound pieces there are 2^N possible color assignments, but thy come in symmetry-equivalent pairs. (The latter is only true for boards with an even number of squares.) So with 3 color-bound pieces, you have 4 possibilities. Unfortunately I always forget which is which, but the total number of positions is a help in identifying them. (All on the same color has fewer positions.)
If two of three color-bound pieces are identical, two of the columns would be equivalent, and I combine them into one (resetting the other to zero). If columns give different results, say one a general win, the other a draw, I usually just set up a position to see if it is win or draw to identiify them. (E.g. FAD + B vs B, if you set up a position with B on same color, wit will be a draw.)
It is not so easy for this generator to expand the move generator, because it uses the same generator for forward and retro moves (just leaving out captures for the retro moves). This was a bad idea, becaus with lame leapers in general you cannot do that.(E.g. retro Mao moves are Moa moves, etc.) This generator predates Fairy-Max, otherwise I would probably have written its move generator to work in the same way as that of Fairy-Max.
Reducing the symetry would blow up the memory requirement. On modern hardware an increase from 128MB to 512MB for a 5-men is probably affordable, but it would also quadruple the generation time.