Vaya...no había visto este thread...Aquí va mi versión del ajedrez (me gusta más, es más algorítmico que matemático)
http://jsfiddle.net/tvJLs/2//
No está muy testado y se le pueden sacar algunos caballos más.. Pero un benchmark rápido (sobre 10000 iteraciones, eliminando console.log y dibujados de tablero) da resultados aceptables.
En cualquier caso, sé que no es el más rápido posible.Deberia ser posible hacerlo simplemente iterando sobre las dos reinas.Pero calcular el offset sobre las posiciones en los casos de diagonales lleva un ratito.