25,161
edits
Changes
Cinnamon
,no edit summary
Four pre-calculated attack arrays containing attack bitboards on [[Ranks|ranks]], [[Files|files]], [[Diagonals|diagonals]] and [[Anti-Diagonals|anti-diagonals]]
were indexed by the square of the sliding piece, and the associated [[Occupancy|occupancy]] index of that line, determining the blockers affecting the attack set.
Rather than to get the occupancy index from [[Incremental Updates|incremental updated ]] [[Rotated Bitboards|rotated bitboards]] for each of the four line kinds,
Cinnamon extracts line occupancies into a dense index range using [[Occupancy of any Line#Using Multiplication|multiplication]] and shift right,
as mentioned in [[Flipping Mirroring and Rotating#DiagonalstoRanks|diagonals to rank]] or [[Flipping Mirroring and Rotating#FlipAbouttheDiagonal|flip about the diagonal]].