Cinnamon

From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Cinnamon

Cinnamon [1]

Cinnamon,
an UCI compliant open source chess engine by Giuseppe Cannella, written in C++11, published under GPL Version 3. Cinnamon was first released in February 2013 [2] under that name, while former versions of the engine were called Butterfly. It targets multiple hardware platforms and operating systems such as Windows, Linux, Mac OS and Android, also available for the Raspberry Pi, and further provides a JavaScript library to play with chessboard.js or any js GUI.

Sliding Piece Attacks

Cinnamon 1.2 applied a kind of classical approach to generate ray-wise sliding piece attacks, captures and quiet moves. Cinnamon 2.0 already used line-wise occupancy lookups. Four pre-calculated attack arrays containing attack bitboards on ranks, files, diagonals and anti-diagonals were indexed by the square of the sliding piece, and the associated occupancy index of that line, determining the blockers affecting the attack set. Rather than to get the occupancy index from incremental updated rotated bitboards for each of the four line kinds, Cinnamon extracts line occupancies into a dense index range using multiplication and shift right, as mentioned in diagonals to rank or flip about the diagonal. The resulting 8-bit occupancy requires 512 KiB for all lookup tables, so considering the inner six bits would quarter the table sizes. In Cinnamon 2.3 the occupancy index may be computed by the PEXT instruction, if the executable is compiled with BMI2 enabled.

Features

[3]

Board Representation

Search

Evaluation

Misc

See also

Forum Posts

External Links

Chess Engine

Misc

Cinnamomum burmannii from Wikipedia
Cinnamomum cassia from Wikipedia
Cinnamomum verum from Wikipedia

References

Up one Level