Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: EGTB Indexing

Author: Dieter Buerssner

Date: 11:28:55 04/07/03

Go up one level in this thread


On April 06, 2003 at 16:09:02, Tony Werten wrote:

>For simple EGTB:
>
>After placing the white king, there are only 63 squares left, after placing the
>white king there are only 62 squares left. So the index would be calculated
>((((SQWK*64)+SQBK)*63)+SQWR)
>
>SQBK (square black king ) would be adjusted as follows: if SQBK<SQWK then
>dec(SQBK)
>SQWR would be adjusted: if SQWR<SQWK then dec(SQWR); if SQWR<SQBK then dec(SQWR)
>
>That's the trick that saves space (well, to start with) Of course it has 1 nasty
>side effect: You can go from a position to an index, but it's quite impossible
>to get the position back from an index.

I think it is easy. With your variable names.

SQWR = index % (64*63);
index = index - index%(64*63);
SQBK = index % 63;
SQBK = index / 64*63;

And now readjust the decrements you did. if SQWR >= SQBK then inc(SQWR). etc.

I think, the problem with easy reversibibility comes into play, when you have
something like knnnk, and you don't want to use tables to calculate the index
for the 3 Ns.

Regards,
Dieter




This page took 0.01 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.