Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Mixing 0x88 and bitboards

Author: Robert Hyatt

Date: 21:10:49 06/26/02

Go up one level in this thread


On June 26, 2002 at 02:57:02, Tony Werten wrote:

>On June 25, 2002 at 20:07:42, Robert Hyatt wrote:
>
>>On June 25, 2002 at 17:17:04, Tony Werten wrote:
>>
>>>On June 25, 2002 at 17:04:43, Robert Hyatt wrote:
>>>
>>>>On June 25, 2002 at 16:35:26, Gian-Carlo Pascutto wrote:
>>>>
>>>>>On June 25, 2002 at 14:26:37, Russell Reagan wrote:
>>>>>
>>>>>>On June 25, 2002 at 05:07:26, Gian-Carlo Pascutto wrote:
>>>>>>
>>>>>>>Hrmpf. In my experience, there are many things
>>>>>>>that are both faster and easier to evaluate via
>>>>>>>a classic approach.
>>>>>>
>>>>>>Could you give some examples of things that you have found that can be
>>>>>>calculated faster using the classic approach?
>>>>>
>>>>>'Is there a white pawn on e6?'
>>>>>
>>>>>if (board[E6] == wpawn)
>>>>>
>>>>>1 load
>>>>>1 compare
>>>>>
>>>>>if (WhitePawns & Mask[e6])
>>>>>
>>>>>2 64-bit loads
>>>>>1 64-bit and
>>>>>1 64-bit compare
>>>>>
>>>>>--
>>>>>GCP
>>>>
>>>>
>>>>What about more commonly:  Is the black pawn on e6 passed.  Now you have
>>>>to check 12 squares...  d2/e2/f2, d3/e3/f3, d4/e4/f4, d5/e5/f5.
>>>>
>>>>Bitmaps:  two loads one and.  No compare.  Just a branch not zero.
>>>>
>>>>traditional...  12 loads 12 compares.
>>>>
>>>>Asking simple questions with bitmaps is not so good on 32 bit machines.  On
>>>>a 64 bit machine, your above becomes
>>>>
>>>>1 load.  1 mask create (set 1 bit and shift, two instructions, done in the
>>>>"shadow" of the load, then one compare.
>>>>
>>>>On a 64 bit machine, they are equally fast for the simple operation.  For
>>>>the second case, the 64 bit machine is an easy winner.
>>>
>>>No, this is 1 pawnhashtable lookup. Don't care how you got the information you
>>>put in the hashtable, because of the hitrate that's not important.
>>
>>OK... "is the king in the square of the pawn?"  You can't hash that with
>>pawn hashing because the king can be on 64 different squares.
>
>Actually I do hash this, but if I didn't I think it wouldn't be a big problem. I
>just need 48 bitmaps (24 if I mirror) with bits set where the king can get the
>pawn. So bitmap approach but you don't need a bitboard program.
>
>>
>>The passed pawn was just one example.  there are hundreds of similar questions
>>you might ask about pieces.  IE "are my rooks connected?"  two loads, an AND,
>>and a branch to see if one rook is attacking the other.
>
>But you will find out anyway when you are evaluation your rooks.

How?  do you evaluate which squares your rook attack?  And then look to
see what blocks each ray of attacks to notice it is your own rook?


>
>>Bitmaps do well for
>>almost any "complex" sort of question (complex means a question that takes
>>several sub-questions to fully answer).
>
>Yes, but specially with pawns and even then there are other ways that works as
>good (or better) fe hashing the pawnstructure.
>
>>
>>
>>
>>
>>>
>>>Bitboards are best for pawns (imo) but because of the hashtable, it's not that
>>>important. (Altough "is this rook behind and not in front of a passed pawn"
>>>would save me some time with bitboards instead of what I'm doing now.
>>
>>that is another example.  No hashing helps there either.  Ditto for questions
>>like "does white have an outside passed pawn?" and so forth...
>
>This I hash too.
>
>Tony
>
>>
>>
>>>
>>>Tony



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.