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.