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.