When generating attack tables for a rook, why do we consider all
2^(number of set bits on the mask) potential configurations of empty or occupied squares along the ranks and files where a rook can move?
Specifically, why are nonsensical configurations included given that they don't accurately represent legal moves a rook can make?
Take this example :
X 1 1 0 1 1 and
X 1 1 0 0 0 result in the same legal move for a rook. Allowing only legal combinations, the rook table could be reduced from 4096 to 144.