Cinnamon

From Chessprogramming wiki
Jump to:navigation,search

Home *Engines * Cinnamon

Cinnamon[1]

Cinnamon,
anUCI compliantopen source chess engine byGiuseppe Cannella, written inC++11, published underGPL Version 3. Cinnamon was first released in February 2013[2] under that name, while former versions of the engine were calledButterfly. It targets multiple hardware platforms andoperating systems such asWindows,Linux,Mac OS andAndroid, also available for theRaspberry Pi, and further provides aJavaScript library to play withchessboard.js or any jsGUI.

Contents

Sliding Piece Attacks

Cinnamon1.2 applied a kind ofclassical approach to generate ray-wisesliding piece attacks,captures andquiet moves.Cinnamon2.0 already used line-wiseoccupancy lookups.Four pre-calculated attack arrays containing attack bitboards onranks,files,diagonals andanti-diagonalswere indexed by the square of the sliding piece, and the associatedoccupancy index of that line, determining the blockers affecting the attack set. Rather than to get the occupancy index fromincremental updatedrotated bitboards for each of the four line kinds, Cinnamon extracts line occupancies into a dense index range usingmultiplication and shift right,as mentioned indiagonals to rank orflip about the diagonal.The resulting 8-bit occupancy requires 512 KiB for all lookup tables, so considering theinner six bits would quarter the table sizes. In Cinnamon2.3 the occupancy index may be computed by thePEXT instruction, if the executable is compiled withBMI2 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

  1. Cinnamon: sticks (ceylon cinnamon fromSri Lanka), powder, and flowers. Created from 31 images stacked withCombineZP, bySimon A. Eugster,CC BY-SA 3.0,Wikimedia Commons,Cinnamomum from Wikipedia
  2. Cinnamon « G 6
  3. GitHub - gekomad/Cinnamon: C++ UCI chess engine

Up one Level

Retrieved from "https://www.chessprogramming.org/index.php?title=Cinnamon&oldid=23585"
Categories: