Changes

Jump to: navigation, search

Cinnamon

1,483 bytes added, 11:59, 11 February 2021
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 Updates|incremental updated]] [[Rotated Bitboards|rotated bitboards]] for each of the four line kinds, Cinnamon extracts line occupancies into a dense index range using [[TarraschOccupancy of any Line#Using Multiplication|Tarrasch GUImultiplication]] and shift right,as mentioned in [[Flipping Mirroring and Rotating#DiagonalstoRanks|diagonals to rank]] or [[Flipping Mirroring and Rotating#FlipAbouttheDiagonal|flip 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>[httphttps://cinnamonchessgithub.altervista.orgcom/gekomad/ cinnamon chess engine Cinnamon GitHub - open source gekomad/Cinnamon: C++ UCI 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]]* [[Move 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=
=External Links=
==Chess Engine==
* [http://cinnamonchess.altervista.org/ cinnamon chess engine - open source chess engine]* [https://github.com/gekomad/cinnamon gekomad/cinnamon · GitHub]* [http://www.g-sei.org/cinnamongekomad/ Cinnamon] « [[G 6]: C++ UCI chess engine]* [http://ccrl.chessdom.com/ccrl/404/cgi/compare_engines.cgi?family=Cinnamon&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents Cinnamon] in [[CCRL|CCRL 40/4Blitz]]
==Misc==
* [https://en.wikipedia.org/wiki/Cinnamon Cinnamon from Wikipedia]

Navigation menu