Difference between revisions of "Cheng"

From Chessprogramming wiki
Jump to: navigation, search
Line 34: Line 34:
 
* [http://www.talkchess.com/forum/viewtopic.php?t=57046 Cheng 4.39 release] by [[Martin Sedlak]], [[CCC]], July 20, 2015
 
* [http://www.talkchess.com/forum/viewtopic.php?t=57046 Cheng 4.39 release] by [[Martin Sedlak]], [[CCC]], July 20, 2015
 
* [http://www.talkchess.com/forum/viewtopic.php?t=58238 Cheng 4.39 Android version bugfix] by [[Martin Sedlak]], [[CCC]], November 13, 2015
 
* [http://www.talkchess.com/forum/viewtopic.php?t=58238 Cheng 4.39 Android version bugfix] by [[Martin Sedlak]], [[CCC]], November 13, 2015
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=58866&p=655767 Cheng 4.39 Re-release for the Mac] by [[Michael Byrne|MikeB]], [[CCC]], January 09, 2016
+
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=58866 Cheng 4.39 Re-release for the Mac] by [[Michael Byrne|MikeB]], [[CCC]], January 09, 2016
 +
==2020 ...==
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=76215 Cheng 4.40] by [[Martin Sedlak]], [[CCC]], January 02, 2021
  
 
=External Links=
 
=External Links=

Revision as of 18:50, 5 January 2021

Home * Engines * Cheng

Cheng,
an UCI compliant open source chess engine by Martin Sedlak, written in C++ as exercise in generic programming, first released as Cheng3 in April 2011. Cheng is able to play Chess960, target platforms are Windows, Linux, Mac OS and Android systems [1]. Cheng4 0.38, released in January 2015, is available at GitHub under the permissive zlib license [2].

Description

Cheng [3] is a bitboard engine using fancy magic bitboards to determine sliding piece attacks. It applies staged move generation.

Search

The parallel multi-threaded search performs PVS alpha-beta with a shared transposition table inside a fractional ply iterative deepening framework with aspiration windows, featuring Lazy SMP [4]. Search routines are instantiated at compile time from a generic routine with three boolean template parameters, PV-node, in check, and null move pruning on-off, similar quiescence search has four instances for on-off combinations of PV-node and check. Further selectivity is applied by mate distance pruning, razoring, IID, futility pruning, check extensions and late move reductions. Move ordering is improved by the killer- and history heuristic.

Evaluation

Evaluation employs three further hash tables - evaluation hash table, material hash table and pawn hash table. The evaluation function determines hardware population count support at compile time, passed as template parameter to internal eval functions, finally adding a tempo bonus. Pawn and piece specific evaluators are further implemented with a color template, considering pawn structure, mobility, king safety and various piece pattern. Most of the gain in Cheng4 0.38, released in January 2015, is due to eval tuning using the Texel's Tuning Method by Peter Österlund [5].

Forum Posts

2010 ...

2015 ...

2020 ...

External Links

Chess Engine

Misc

References

Up one level