Changes

Jump to: navigation, search

Cinnamon

1,585 bytes added, 18:37, 19 October 2020
no edit summary
'''Cinnamon''',<br/>
an [[UCI]] compliant [[:Category:Open Source|open source chess engine]] by [[Giuseppe Cannella]], written in [[Cpp|C++11]], published under [[Free Software Foundation#GPL|GPL Version 3]]. Cinnamon was first released in February 2013 <ref>[http://www.g-sei.org/cinnamon/ Cinnamon] « [[G 6]]</ref> under that name, while former versions of the engine were called [[Butterfly]]. It targets multiple hardware platforms and [https://en.wikipedia.org/wiki/Operating_system 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 was bundled with '''1.2''' applied a kind of [[Classical Approach|classical approach]] to generate ray-wise [[Sliding Piece Attacks|sliding piece attacks]], [[Captures|captures]] and [[Quiet Moves|quiet moves]].Cinnamon '''2.0''' already used line-wise [[Sliding Piece Attacks#By Occupancy Lookup|occupancy lookups]].Four pre-calculated attack arrays containing attack bitboards on [[Ranks|ranks]], [[Files|files]], [[Diagonals|diagonals]] and [[Anti-Diagonals|anti-diagonals]]were indexed by the square of the sliding piece, and the associated [[Occupancy|occupancy]] index of that line, determining the blockers affecting the attack set. Rather than to get the occupancy index from incremental updated [[Rotated Bitboards|rotated bitboards]] for each of the four line kinds, Cinnamon extracts line occupancies into a dense index range using [[Occupancy of any Line#Using Multiplication|multiplication]] and shift right,as mentioned in [[Flipping Mirroring and Rotating#DiagonalstoRanks|diagonals to rank]] or [[TarraschFlipping Mirroring and Rotating#FlipAbouttheDiagonal|Tarrasch GUIflip about the diagonal]] .The resulting 8-bit occupancy requires 512 KiB for Windowsall lookup tables, so considering the [[First Rank Attacks#TheOuterSquares|inner six bits]] would quarter the table sizes. In Cinnamon '''2.3''' the occupancy index may be computed by the [[BMI2#PEXT|PEXT]] instruction, if the executable is compiled with [[BMI2]] enabled.
=Features=
<ref>[http://cinnamonchess.altervista.org/ cinnamon chess engine - open source chess engine]</ref>
* ==[[Chess960Board Representation]]==
* [[Bitboards]]
* [[Sliding Piece Attacks]] by line-wise [[Sliding Piece Attacks#By Occupancy Lookup|Occupancy Lookup]] ==[[Search]]==
* [[Lazy SMP]]
* [[Iterative Deepening]]
* [[Principal Variation Search]]
* [[Transposition Table]]
* [[Selectivity]]** [[Razoring]]** [[Null Move Pruning]]** [[Late Move Reductions]]** [[Futility Pruning]]** [[Delta Pruning]]* [[Mover Ordering]]** [[MVV-LVA|MVV/LVA]]** [[Killer Heuristic]]==Evaluation==* [[Material]]
* [[Lazy Evaluation]]
* [[MVV-LVA |MVV/LVAEvaluation Hash Table]]* [[Mobility]]* [[Pawn Structure]]* [[King Safety]]==Misc==
* [[PolyGlot]] [[Opening Book]]
* [[Gaviota Tablebases]]
* [[Perft]]
* [[Pondering]]
* [[Chess960]]
=See also=

Navigation menu