pub struct Tablebase<S: Position + Clone + Syzygy> { /* private fields */ }
Expand description

A collection of tables.

Implementations

Create an empty collection of tables.

Returns the maximum number of pieces of any added table.

Add all relevant tables from a directory.

Tables are selected by filename, e.g. KQvKP.rtbz. The files are not actually opened. This happens lazily when probing.

Note that probing generally requires tables for the specific material composition, as well as material compositions that are transitively reachable by captures and promotions. These are sometimes distributed separately, so make sure to add tables from all relevant directories.

Returns the number of added table files.

Errors

Returns an error result when:

  • The path does not exist.
  • path is not a directory.
  • The process lacks permissions to list the directory.

Add a table file.

The file is not actually opened. This happens lazily when probing.

Errors

Returns an error when no file exists at the given path or the filename does not indicate that it is a valid table file (e.g. KQvKP.rtbz).

Probe tables for the Wdl value of a position, assuming pos is reached directly after a capture or pawn move.

Errors

See SyzygyError for possible error conditions.

Probe tables for the WDL value of a position, considering also the halfmove counter of pos. The result may be ambiguous due to DTZ rounding.

Requires both WDL and DTZ tables.

Errors

See SyzygyError for possible error conditions.

Probe tables for the Dtz value of a position.

Requires both WDL and DTZ tables.

Errors

See SyzygyError for possible error conditions.

Get the recommended tablebase move.

Following the tablebase mainline starting from a capture or pawn move guarantees achieving the optimal outcome under the 50-move rule.

Otherwise (i.e. when not immediately following the tablebase mainline after the capture that crosses into tablebase territory), some care needs to be taken due to DTZ rounding.

Requires both WDL and DTZ tables.

Errors

See SyzygyError for possible error conditions.

Trait Implementations

Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.