Older Version Newer Version

GerdIsenberg GerdIsenberg Apr 26, 2016

**[[Home]] * [[Engines]] * Hakkapeliitta**
|| [[image:Hakkapeliitta-1940.jpg link="http://commons.wikimedia.org/wiki/File:Hakkapeliitta-1940.jpg"]] ||~ || **Hakkapeliitta**,
an [[UCI]] compatible [[Open Source Engines|open source chess engine]] by [[Mikko Aarnos]], written in [[Cpp|C++11/14]] and licensed under the [[Free Software Foundation#GPL|GNU General Public License]], Version 3. Hakkapeliitta is a state of the art [[Bitboards|bitboard]] engine, and performs [[Magic Bitboards|Magic bitboards]] to determine [[Sliding Piece Attacks|sliding piece attacks]]. Despite using conditional compiled [[x86-64]] processer instructions for [[BitScan|bitscan]], Hakkapeliitta uses [[Kim Walisch|Kim Walisch's]] [[BitScan#KimWalisch|forward]] and [[BitScan#FillDeBruijn|reverse bitscans]] <ref>[[https://github.com/mAarnos/Hakkapeliitta/blob/master/src/bitboards.hpp|Hakkapeliitta/bitboard.hpp at master · mAarnos/Hakkapeliitta · GitHub]]</ref>. If the processor does not support hardware [[Population Count|popcount]], Hakkapeliitta falls back to [[Population Count#SWARPopcount|SWAR-popcount]]. The [[Search|search]] uses [[https://en.wikipedia.org/wiki/Template_%28C%2B%2B%29#Function_templates|function templates]] to distinguish between [[Node Types#PV|PV-nodes]] and none PV-nodes at compile time <ref>[[https://github.com/mAarnos/Hakkapeliitta/blob/master/src/search.cpp|Hakkapeliitta/search.cpp at master · mAarnos/Hakkapeliitta · GitHub]] - template <bool pvNode> int Search::search</ref>. Similar, hardware popcount support is boolean template parameter of [[Evaluation|evaluation]] routines <ref>[[https://github.com/mAarnos/Hakkapeliitta/blob/master/src/evaluation.cpp|Hakkapeliitta/evaluation.cpp at master · mAarnos/Hakkapeliitta · GitHub]]</ref>. ||
|| Hakkapeliitta <ref>[[https://commons.wikimedia.org/wiki/File:Hakkapeliitta-1940.jpg|Hakkapeliitta]] featured on a 1940 Finnish stamp, [[https://en.wikipedia.org/wiki/Wikimedia_Commons|Wikimedia Commons]]</ref> ||~ ||^ ||
[[toc]]
=Etymology=
The term is probably based on the  [[https://en.wikipedia.org/wiki/Finnish_language|Finnish]] [[https://en.wikipedia.org/wiki/Battle_cry|battle cry]] "Hakkaa päälle" <ref>[[https://en.wiktionary.org/wiki/Hakkapeliitta|Hakkapeliitta - Wiktionary]]</ref>, commonly translated as "Cut them down!". The Finnish [[https://en.wikipedia.org/wiki/Cavalry|cavalryman]] in the service of [[https://en.wikipedia.org/wiki/Monarchy_of_Sweden|King]] [[https://en.wikipedia.org/wiki/Gustavus_Adolphus_of_Sweden|Gustavus Adolphus]] of [[https://en.wikipedia.org/wiki/Swedish_Empire|Sweden]] during the [[https://en.wikipedia.org/wiki/Thirty_Years%27_War|Thirty Years' War]] (1618 to 1648) were called Hackapelit, Hackapelite, Hackapell, Haccapelit, or Haccapelite in the [[https://en.wikipedia.org/wiki/Holy_Roman_Empire|Holy Roman Empire]], in the [[https://en.wikipedia.org/wiki/19th_century|19th-century]] modified to Finnish **Hakkapeliitta** <ref>[[https://en.wikipedia.org/wiki/Hakkapeliitta|Hakkapeliitta from Wikipedia]]</ref> <ref>[[https://en.wikipedia.org/wiki/Military_of_the_Swedish_Empire|Military of the Swedish Empire - Wikipedia]]</ref>.  

=Features=
<ref>based on sources of [[https://github.com/mAarnos/Hakkapeliitta/tree/master/src|Hakkapeliitta 2.0]]</ref>
==[[Search]]==
* [[Iterative Deepening]]
* [[Aspiration Windows]]
* [[Principal Variation Search]]
* [[Transposition Table]]
* [[Zobrist Hashing]]
* [[Null Move Pruning]]
* [[Late Move Reductions]] 
* [[Internal Iterative Deepening]]
* [[Futility Pruning]]
* [[Futility Pruning#MoveCountBasedPruning|Move Count Based Pruning]]
* [[Reverse Futility Pruning]]
* [[Razoring]]
* [[Killer Heuristic]]
* [[Relative History Heuristic]]
* [[Static Exchange Evaluation]]
==[[Evaluation]]==
* [[Material]]
* [[Tapered Eval]]
* [[Piece-Square Tables]]
* [[Mobility]]
* [[Pawn Hash Table]]
* [[Pawn Structure]]
> [[Backward Pawn]]
> [[Doubled Pawn]]
> [[Isolated Pawn]]
> [[Passed Pawn]]
* [[King Safety]]
> [[King Safety#PawnShield|Pawn Shelter]]
==Misc==
* [[Magic Bitboards]]
* [[Perft]]
* [[Pondering]] (since 3.0)
* [[Syzygy Bases]]

=Acknowledgements=
Thanks from the author to following [[People|people]] or [[Organizations|organizations]] <ref>[[https://github.com/mAarnos/Hakkapeliitta|mAarnos/Hakkapeliitta · GitHub - Acknowledgements]]</ref>
* [[Home|Chess Programming Wiki]] (Thanks as well)
* [[CCC|Talkchess]]
* [[Tord Romstad]] of [[Glaurung]]
* [[Ronald de Man]] 
* [[Tord Romstad]], [[Marco Costalba]], and [[Joona Kiiski]] of [[Stockfish]]
* [[Robert Hyatt]] of [[Crafty]]
* [[Peter Österlund]] of [[Texel]] 
* Authors of [[Ivanhoe]] 
* [[Ed Schroder|Ed Schröder]] of [[Rebel]] and [[Pro Deo]] <ref>[[http://www.top-5000.nl/authors/rebel/chess840.htm|Inside Rebel/Prodeo]] by [[Ed Schroder|Ed Schröder]]</ref> 
* [[Stef Luijten]] of [[Winglet]] <ref>[[http://web.archive.org/web/20120621100214/http://www.sluijten.com/winglet/|Winglet, Writing a Chess Program in 99 Steps]] by [[Stef Luijten]], [[http://en.wikipedia.org/wiki/Wayback_Machine|Wayback Machine]]</ref>
* [[Steve Maughan]] of [[Maverick]]
* [[Tom Kerrigan]] of [[TSCP]]

=See also=
* [[Various Classifications#Military|Military]]

=Forum Posts=
* [[http://www.talkchess.com/forum/viewtopic.php?t=51406|Hakkapeliitta dev 63.7 by Mikko Aarnos]] by [[Jose Maria Velasco|Jose Mº Velasco]], [[CCC]], February 25, 2014
* [[http://www.talkchess.com/forum/viewtopic.php?t=52725|Hakkapeliitta 1.0 release]] by [[Mikko Aarnos]], [[CCC]], June 22, 2014
* [[http://www.talkchess.com/forum/viewtopic.php?t=54749|Hakkapeliitta 2.0 release]] by [[Mikko Aarnos]], [[CCC]], December 25, 2014
* [[http://www.talkchess.com/forum/viewtopic.php?t=56790|Hakkapeliitta 3.0 release]] by [[Mikko Aarnos]], [[CCC]], June 27, 2015
* [[http://www.talkchess.com/forum/viewtopic.php?t=57029|Hakkapeliitta the "STRONGEST" in tactic, new Nr1]] by [[Frank Quisinsky]], [[CCC]], July 19, 2015

=External Links=
==Chess Engine==
* [[https://github.com/mAarnos/Hakkapeliitta|mAarnos/Hakkapeliitta · GitHub]]
* [[http://www.computerchess.org.uk/ccrl/404/cgi/compare_engines.cgi?family=Hakkapeliitta&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|Hakkapeliitta]] in [[CCRL|CCRL 40/4]]
==Misc==
* [[https://en.wiktionary.org/wiki/Hakkapeliitta|Hakkapeliitta - Wiktionary]]
* [[https://en.wikipedia.org/wiki/Hakkapeliitta|Hakkapeliitta from Wikipedia]]
* [[https://en.wikipedia.org/wiki/Hakkapeliittain_Marssi|Hakkapeliittain Marssi from Wikipedia]]
* [[https://fi.wikipedia.org/wiki/Hakkapeliitta_%28lehti%29|Hakkapeliitta (lehti) Wikipedia]] (Finnish, Paramilitary Journal 1926 - 1944)
* [[http://www.mossyrocks.ca/|Mossy Rocks]] - Cut Em Down,  [[http://en.wikipedia.org/wiki/YouTube|YouTube]] Video
> [[media type="youtube" key="_rcgloApnUs" width="560"]]

=References= 
<references />
=What links here?= 
[[include page="Hakkapeliitta" component="backlinks" limit="40"]]
**[[Engines|Up one level]]**