Author: Dann Corbit
Date: 16:22:55 02/27/06
Go up one level in this thread
On February 27, 2006 at 18:57:09, Gerd Isenberg wrote: >On February 27, 2006 at 17:45:10, Dann Corbit wrote: > >>On February 27, 2006 at 15:13:59, Gerd Isenberg wrote: >> >>>On February 27, 2006 at 14:16:38, Dann Corbit wrote: >>> >>>>You have a special genius for bitboards and I always enjoy reading your posts. >>> >>>Thanks Dann, >>> >>>i appreciate that - but i have not special genius but morbus knuth ;-) >>>I like interactive brainstorming and to formulate ideas so that they become more >>>clear. I had some difficulties to understand your switch approach first. >>> >>>What do you think about masking off outer occupied bits? >>>As well inside your switch cases as well as a 64-bit factor of a De Bruijn >>>multiplication? >>> >>>They are redundant for attacks and also for possible xrays. >>>It reduces the number of occupied cases to max 2**(raylenght-2) if source square >>>is an outer square - or most often to 2**(raylenght-3), if source is some inner >>>square, for instance bishop on e5 on the a1-h8 diagonal: >>> >>>0 0 0 0 0 0 0 x >>>0 0 0 0 0 0 1 0 >>>0 0 0 0 0 1 0 0 >>>0 0 0 0 b 0 0 0 >>>0 0 0 1 0 0 0 0 >>>0 0 1 0 0 0 0 0 >>>0 1 0 0 0 0 0 0 >>>x 0 0 0 0 0 0 0 >>> >>>Thus some 64-states and most 32-bit or less states fits perfectly to a 2**6 >>>range by "De Bruijn folding" with empirical determined individual magics for >>>each source square and direction. >>> >>>Obviously each single bit-subset of the five or six bits leaves unique upper six >>>bits after a multiplication with a DeBruijn constant, because the DeBruijn is >>>per definition a sequence of 64 unique 6-bit strings - and mutiplication with >>>power of two is like shifting left by log2. That is the original idea of using >>>De Bruijn multiplication as log2 or bitscan. >>> >>>Having more bits set produces modulo 64 sums of appropriate unique subsequences. >>>So we have "only" to choose a De Bruijn or "modified" De Bruijn where all sums >>>modulo 64 are unique. >> >>I am not really sure that I understand your suggestion about ignoring outer >>occupied bits. >> >>I need to x-ray for some depth for battery calculations. >> >>If I have a queen and two rooks on a file (likely and desirable) or if I have a >>bishop and two queens on a diagonal (rare in practice but desirable), then I >>need to know about it. I also want to know what is behind my ram for as deep as >>I can batter. E.g. does this queen sacrifice make sense? >>[D]7k/3n2q1/5p2/8/6N1/2Q5/1B6/Q1K5 w - - > >Now i'm also not sure whether i completely understand our switch approach ;-) > >I mean from h8 to a1 there is no square "behind" a1. >So whether a1 is attacked or not is not affected by it's occupied state. Same is >true for the black king considering a1-h8 direction. > >The pure occupied state on that ray is not appropriate for batteries, pins and >discovered checkers, but subsets of occupied - all other own/opposite pieces >with same attack directions and own/opposite king... We can know that Qxp is winning only by eval (no search needed). Not fully accurate without search, of course, but sort of like a free SEE. But without knowing the king is in the corner, then we will not consider Qxp very seriously, because the half-pin information is vital for the move. Maybe what you are referring to is that for some rays, I do not need all 127 states? For instance on a1 we have one null ray (0 states) and one ray with all 127 states for the diagonals. I do not see how I can do away with the chessmen that sit in the corners in the example that I posted.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.