Instead of using rotated bitboards with packed 15 diagonals and 15 anti-diagonals each, Alessandro applies an array of 16 + 30 rotated indices for all 16 orthogonal and 30 diagonal lines on the board. Those indices are incrementally updated during make/unmake, which takes a tad more effort - but once updated, the rotated indices pay off, the more often they are used inside a node of the search. No further computation is required to look up attacks, pure indexed memory accesses.
The possible disadvantage - rotated indices, similar or slightly worse than rotated bitboards, are not as versatile as techniques relying on one occupancy bitboard only - if it is about a temporary change of the occupancy on the fly for x-rays and pinned pieces etc..
a deconcentrated version of rotated bitboards, proposed by Alessandro Damiani [1] as used in his engine Fortress.
Instead of using rotated bitboards with packed 15 diagonals and 15 anti-diagonals each, Alessandro applies an array of 16 + 30 rotated indices for all 16 orthogonal and 30 diagonal lines on the board. Those indices are incrementally updated during make/unmake, which takes a tad more effort - but once updated, the rotated indices pay off, the more often they are used inside a node of the search. No further computation is required to look up attacks, pure indexed memory accesses.
The possible disadvantage - rotated indices, similar or slightly worse than rotated bitboards, are not as versatile as techniques relying on one occupancy bitboard only - if it is about a temporary change of the occupancy on the fly for x-rays and pinned pieces etc..
Table of Contents
See also
Forum Posts
References
What links here?
Up one Level