These are the relevant code snippets and data declarations of the attack and x-ray attack getter in the C source, initialization omitted [10]. Using addition instead of bitwise-or might take advantage of the x86 lea instruction, specially for the line-offsets:
In Java, the code looks quite similar, embedded inside the class OliThink [11], using the unsigned right shift operator (>>>) instead the arithmetical one (>>) inside the keyxxx routines would safe the post-masking with 0x7f:
an open source chess engine supporting the Chess Engine Communication Protocol written by Oliver Brausch with C and Java versions available, and binaries running under Windows, Linux and Mac OS [1]. The completely rewritten OliThink 5.x has a very fast move generator based on the framework of the Perft program OliPerft with a plain bitboard board representation without any piece-lists or board arrays [2]. OliThink's evaluation consists almost of material balance and mobility, plus a very simple pawn structure evaluation, rewarding passed pawns. OliThink 4.13 played the CCT6 in 2004, with four points out of nine games [3].
Table of Contents
Description
Search
OliThink's search relies on PVS without aspiration windows in its iterative deepening loop [5], along with a fixed sized transposition table. It further applies flexible null move pruning, late move reductions [6], IID, singular reply-, check- and passed pawn extensions [7]. Move ordering considers PV-moves stored in a triangular PV-Table, SEE, killer- and history heuristic.Sliding Piece Attacks
OliThink pre 5 versions used rotated bitboards to determine sliding piece attacks. Since version 5, only the usual occupancy is used to map the masked line to an index, for files and diagonals by a north-fill multiplication and right shift as also applied in kindergarten bitboards [8], with the addition not only to lookup attack bitboards, but also X-ray attacks through the first blocking pieces (if any) of both ray-directions [9] . A pre-initialized array of 8 times 8K bitboards (512 Kbyte in total) is used for attacks on ranks, files, diagonals and anti-diagonals in its lower half, while the upper half holds appropriate x-ray attacks. Per line, a 13-bit index is composed of the 6-bit square index and a 7-bit occupancy key.C Source
These are the relevant code snippets and data declarations of the attack and x-ray attack getter in the C source, initialization omitted [10]. Using addition instead of bitwise-or might take advantage of the x86 lea instruction, specially for the line-offsets:Java Source
In Java, the code looks quite similar, embedded inside the class OliThink [11], using the unsigned right shift operator (>>>) instead the arithmetical one (>>) inside the keyxxx routines would safe the post-masking with 0x7f:Selected Games
SEE
CCT6, SEE - OliThink 4.13 [12]Bodo
CCT6, Bodo - OliThink 4.13 [13]See also
Forum Posts
1998 ...
2000 ...
2008
2009
2010
2011
2012
External Links
OliThink Screenshots
References
What links here?
Up one level