Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Optimum transposition table element size

Author: Dieter Buerssner

Date: 12:29:31 09/13/03

Go up one level in this thread


On September 13, 2003 at 13:39:22, Anthony Cozzie wrote:

>UL: 16 bits, LL: 16 bits, Move: 24 bits, Depth: 7 bits, 1Rep: 1 bit, Mate

I use 2 slightly different move formats. For storing (for example in PVs and in
the HT) I use only the lower 15 bits (from, to, promotion piece). Other parts of
the move can rather easily be reconstructed from this. Even less bits would
easily be possible, by using one helper table to enumerate the possible moves.
For example, a move like a1-b4 is never possible. So one could have a table
movenumber[move&0x7fff] and move = actual_move[move_number] to get it back. I
forgot how many bits would be saved by this.

But perhaps, it is not really worth it. For example, when you add fractional
plies, 7 bits for depth will probably be not enough anymore, and you are back to
the old problem.

As suggested already, you can leave off some bits from the key. When you use
modulo to calculate the index, you get (on x86) the result for the division for
free. If you assume, that you have at least 2^16 entries, the result of the
division will never be >= 2^16 (assuming you took the modulo of a 32 bit part of
the key), and it will be enough to store 48 bits always. Even if you had used
less than 2^16 entries, it would most probably be no problem at all, when you
throw aways few bits.

Regards,
Dieter



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.