Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Mixing 0x88 and bitboards

Author: Tony Werten

Date: 23:57:02 06/25/02

Go up one level in this thread


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.

>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.