Author: Tony Werten
Date: 16:13:39 06/25/02
Go up one level in this thread
On June 25, 2002 at 18:17:05, Sune Fischer 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. >> >>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. >> >>Tony > >What if you want to check for connected rooks, or connected bishop and queen? >This is easy with bitboards, you just have to produce the attackboard of one of >the pieces and mask it with the location the other piece. In your evaluation ( unless you're using piece square ) you will bump into those pieces. >Attacks in general seem fast with bitboards, once you have generated the attack >board you know what it is attacking using 1 load, one AND and one compare (did I >get that right?:). > >I don't know how this is done in 0x88, there must be some attack info >constructed in a way, or else there will be loops everywhere. Sort of. You can ask "can a piece of this type attack that square from this square" If so, and the piece is a slider only then you have to loop. >How else do you generate king moves, such as regular king moves and castle >moves? Regular king moves in bitboards will need your and's and stuff and then a loop over all the bits that are set in your bitboard. Not much different from other ways. > >The question becomes "how quickly can you generate the attack table"? >To generate the whole attack table it seems you must generate all the moves, >even when you only need the best capture move? If I only need a capture I don't think I need to generate an attack table. Tony > > >-S.
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.