Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Endgame tablebase format

Author: Steven J. Edwards

Date: 07:13:55 06/13/98

Go up one level in this thread


On June 13, 1998 at 02:05:23, jonathan Baxter wrote:

>Does anyone have a short description of the format of the tablbase
>files distributed with crafty? I have looked in the code but that
>part is pretty horrendous to read.

That bad, eh?

The values stored, one per byte, in a tablebase file are documented in
the epddefs.h file and give the mate-N, loss-in-N, etc. position
valuations.

Each TB file is indexed by N subscripts where N is the number of men in
the class.  The subscripts are applied in reverse name order; the white
king subscript varies fastest (its the first piece in the class name),
with each successive piece varying less fast.

There are three flavors of subscripts: full, half, and triangle.

The full flavor runs from 0 to 63 following the squares a1 to h8 and it
is the default flavor. (a1 b1 c1 d1 e1 f1 g1 h1 a2 b2 ... g8 h8)

The second flavor runs from 0 to 31 following the squares on the
queenside.
(a1 b1 c1 d1 a2 b2 ... c8 d8).

The third flavor runs from 0 to 10 following the squares a1 b1 c1 d1 b2
c2 d2 c3 d3 d4.

The rules are:

1) In an N man class, exactly (N - 1) subscripts are full flavor.

2) If there is at least own pawn in the class, then the last pawn in the
class name uses the second (32 square) flavor subscript

3) If there are no pawns in the class, then the very last man in the
class name uses the third (triangle 10 square) flavor subscript.

A position is folded via one or more of X, Y, and x=y rotations until
the non-default flavor subscript man is in the restricted (32 or 10)
square field.
The index is comuputed and forms the file offset for the byte of
interest.

Now that you know this, then maybe the code won't seem so bad.

-- Steven (sje@mv.mv.com)



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.