Author: Robert Hyatt
Date: 05:02:29 06/14/00
Go up one level in this thread
On June 13, 2000 at 12:18:34, TEERAPONG TOVIRAT wrote:
>Hi,
>
>I have 3 questions.
>1. Does two level transpositional table have significant
>advantages over one level table ? If so,how much we
>gain in % ?
No. It is a little simpler to understand. By using 2 tables, one twice as
big as the other, it is easy to use 3/4 of memory for hashing, rather than only
using 50%. Other than that, there is no advantage. It is really better to use
only one table and group the two entries together to help with cache.
>
>2.In board representation,besides bitboard ,which is faster
>between board 12x10(or 12x12) and board 0x88 ?
>To generate the move,after obtaining piece and location,
>the former takes one array look up and one arithmetic
>operation to get a valid square.On the other hand,the
>latter takes 2 times table look up(map and unmap)
>and one arithmetic and one bitwise operation(&0x88) .
>I think the former is better. Am I right ?
>Of course,board 0x88 can make use of (sq>>3) (sq&7) in
>evaluation(). Overall result which one is better ?
I think you'll find that 0x88 has advantages _other_ than the ones you
mention, such as a unique 'difference' between squares which can be used
to determine if two squares are really on the same diag, etc.
>
>3.In C language...
>{
>int a[2];
>int x,y;
>...
>if(x&8) a[1]=y;else a[0]=y; // this line
>...
>}
>
>Is it legal if I change into...
>a[x&8]=y;
>
>I didn't get any error message from it .
>Can it be a potential bug?
that won't work. x&8 will either return 0 or 8, as it is the bitwise
and operator. you could try a[(x&8)==8]=y.
>
>Thanks,
>Teerapong
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.