https://www.chessprogramming.org/index.php?title=Apery&feed=atom&action=history
Apery - Revision history
2024-03-29T01:22:12Z
Revision history for this page on the wiki
MediaWiki 1.30.1
https://www.chessprogramming.org/index.php?title=Apery&diff=20646&oldid=prev
GerdIsenberg at 15:35, 8 August 2020
2020-08-08T15:35:19Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 15:35, 8 August 2020</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l7" >Line 7:</td>
<td colspan="2" class="diff-lineno">Line 7:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>initially written in [[Cpp|C++]], in 2019 ported to [[Rust]] <ref>[https://github.com/HiraokaTakuya/apery_rust GitHub - HiraokaTakuya/apery_rust: USI shogi engine written in Rust]</ref>,</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>initially written in [[Cpp|C++]], in 2019 ported to [[Rust]] <ref>[https://github.com/HiraokaTakuya/apery_rust GitHub - HiraokaTakuya/apery_rust: USI shogi engine written in Rust]</ref>,</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>licensed under the [[Free Software Foundation#GPL|GPL v3.0]]. Apery's [[Search|search]] is derived from [[Stockfish]] with [[Board Representation|board representation]] and [[Move Generation|move generation]] adopted to Shogi,</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>licensed under the [[Free Software Foundation#GPL|GPL v3.0]]. Apery's [[Search|search]] is derived from [[Stockfish]] with [[Board Representation|board representation]] and [[Move Generation|move generation]] adopted to Shogi,</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>including [[Magic Bitboards|magic bitboards]] for the [[Sliding Pieces|sliding pieces]] [[Rook|rook]], [[Bishop|bishop]], as well as the [[Sliding Piece Attacks|sliding attack subsets]] of the promoted dragon and horse - of course due to the 7-bit inner piece occupancy of the 9x9 board, somewhat bigger tables.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>including [[Magic Bitboards|magic bitboards]] for the [[Sliding Pieces|sliding pieces]] [[Rook|rook]], [[Bishop|bishop]], as well as the [[Sliding Piece Attacks|sliding attack subsets]] of the promoted dragon and horse - of course due to the 7-bit <ins class="diffchange diffchange-inline">[[First Rank Attacks#TheOuterSquares|</ins>inner piece occupancy<ins class="diffchange diffchange-inline">]] </ins>of the 9x9 board, somewhat bigger tables.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>The improved search of the Rust version makes it stronger than the C++ version, despite a little bit lower [[Nodes per Second|NPS]].</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>The improved search of the Rust version makes it stronger than the C++ version, despite a little bit lower [[Nodes per Second|NPS]].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Apery's initial [[Evaluation|evaluation]] was [[Bonanza]] like, using [[Piece-Square Tables|piece-square tables]] indexed by king location and further two-piece locations, dubbed KPP or KKP.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Apery's initial [[Evaluation|evaluation]] was [[Bonanza]] like, using [[Piece-Square Tables|piece-square tables]] indexed by king location and further two-piece locations, dubbed KPP or KKP.</div></td></tr>
</table>
GerdIsenberg
https://www.chessprogramming.org/index.php?title=Apery&diff=20645&oldid=prev
GerdIsenberg at 14:17, 8 August 2020
2020-08-08T14:17:42Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 14:17, 8 August 2020</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''[[Main Page|Home]] * [[Engines]] * Apery'''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''[[Main Page|Home]] * [[Engines]] * Apery'''</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[FILE:<del class="diffchange diffchange-inline">SekienAyakashi</del>.jpg|border|right|thumb|250px| [[:Category:Toriyama Sekien|Toriyama Sekien]] - [https://en.wikipedia.org/wiki/<del class="diffchange diffchange-inline">Ayakashi_</del>(<del class="diffchange diffchange-inline">y%C5%8Dkai</del>) <del class="diffchange diffchange-inline">Ayakashi</del>] <ref>[https://en.wikipedia.org/wiki/<del class="diffchange diffchange-inline">Ayakashi_</del>(<del class="diffchange diffchange-inline">y%C5%8Dkai</del>) <del class="diffchange diffchange-inline">Ayakashi</del>] from the [https://en.wikipedia.org/wiki/Konjaku_Gazu_Zoku_Hyakki Konjaku Gazu Zoku Hyakki] (今昔画図続百鬼) by [[:Category:Toriyama Sekien|Toriyama Sekien]], circa 1779, [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[FILE:<ins class="diffchange diffchange-inline">SekienSatori</ins>.jpg|border|right|thumb|250px| [[:Category:Toriyama Sekien|Toriyama Sekien]] - [https://en.wikipedia.org/wiki/<ins class="diffchange diffchange-inline">Satori_</ins>(<ins class="diffchange diffchange-inline">folklore</ins>) <ins class="diffchange diffchange-inline">Satori</ins>] <ref> [https://en.wikipedia.org/wiki/<ins class="diffchange diffchange-inline">Satori_</ins>(<ins class="diffchange diffchange-inline">folklore</ins>) <ins class="diffchange diffchange-inline">Satori</ins>] from the [https://en.wikipedia.org/wiki/Konjaku_Gazu_Zoku_Hyakki Konjaku Gazu Zoku Hyakki] (今昔画図続百鬼) by [[:Category:Toriyama Sekien|Toriyama Sekien]], circa 1779, [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''Apery''',<br/></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''Apery''',<br/></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l55" >Line 55:</td>
<td colspan="2" class="diff-lineno">Line 55:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.apply.computer-shogi.org/wcsc30/appeal/Apery/apery_appeal_wcsc30.html WCSC30 Apery Appeal document] (Japanese)</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.apply.computer-shogi.org/wcsc30/appeal/Apery/apery_appeal_wcsc30.html WCSC30 Apery Appeal document] (Japanese)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>==Misc==</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>==Misc==</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* [https://en.wiktionary.org/wiki/apery apery - Wiktionary]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* [https://en.wikipedia.org/wiki/Satori_(folklore) Satori (folklore) from Wikipedia]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://en.wikipedia.org/wiki/Roger_Ap%C3%A9ry Roger Apéry from Wikipedia] » [[Mathematician#RApery|Roger Apéry]]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://en.wikipedia.org/wiki/Roger_Ap%C3%A9ry Roger Apéry from Wikipedia] » [[Mathematician#RApery|Roger Apéry]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://mathshistory.st-andrews.ac.uk/Biographies/Apery/ Roger Apéry (1916 - 1994) - Biography] - [https://en.wikipedia.org/wiki/MacTutor_History_of_Mathematics_archive MacTutor History of Mathematics]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [https://mathshistory.st-andrews.ac.uk/Biographies/Apery/ Roger Apéry (1916 - 1994) - Biography] - [https://en.wikipedia.org/wiki/MacTutor_History_of_Mathematics_archive MacTutor History of Mathematics]</div></td></tr>
</table>
GerdIsenberg
https://www.chessprogramming.org/index.php?title=Apery&diff=20640&oldid=prev
GerdIsenberg: Created page with "'''Home * Engines * Apery''' Toriyama Sekien - [https://en.wikipedia.org/w..."
2020-08-08T13:50:04Z
<p>Created page with "'''<a href="/Main_Page" title="Main Page">Home</a> * <a href="/Engines" title="Engines">Engines</a> * Apery''' <a href="/File:SekienAyakashi.jpg" title="File:SekienAyakashi.jpg">border|right|thumb|250px| [[:Category:Toriyama Sekien|Toriyama Sekien</a> - [https://en.wikipedia.org/w..."</p>
<p><b>New page</b></p><div>'''[[Main Page|Home]] * [[Engines]] * Apery'''<br />
<br />
[[FILE:SekienAyakashi.jpg|border|right|thumb|250px| [[:Category:Toriyama Sekien|Toriyama Sekien]] - [https://en.wikipedia.org/wiki/Ayakashi_(y%C5%8Dkai) Ayakashi] <ref>[https://en.wikipedia.org/wiki/Ayakashi_(y%C5%8Dkai) Ayakashi] from the [https://en.wikipedia.org/wiki/Konjaku_Gazu_Zoku_Hyakki Konjaku Gazu Zoku Hyakki] (今昔画図続百鬼) by [[:Category:Toriyama Sekien|Toriyama Sekien]], circa 1779, [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]] <br />
<br />
'''Apery''',<br/><br />
an [[USI]] compliant [[:Category:Open Source|open source]] [[Shogi]] engine developed by [[Takuya Hiraoka]], <br />
initially written in [[Cpp|C++]], in 2019 ported to [[Rust]] <ref>[https://github.com/HiraokaTakuya/apery_rust GitHub - HiraokaTakuya/apery_rust: USI shogi engine written in Rust]</ref>,<br />
licensed under the [[Free Software Foundation#GPL|GPL v3.0]]. Apery's [[Search|search]] is derived from [[Stockfish]] with [[Board Representation|board representation]] and [[Move Generation|move generation]] adopted to Shogi,<br />
including [[Magic Bitboards|magic bitboards]] for the [[Sliding Pieces|sliding pieces]] [[Rook|rook]], [[Bishop|bishop]], as well as the [[Sliding Piece Attacks|sliding attack subsets]] of the promoted dragon and horse - of course due to the 7-bit inner piece occupancy of the 9x9 board, somewhat bigger tables.<br />
The improved search of the Rust version makes it stronger than the C++ version, despite a little bit lower [[Nodes per Second|NPS]].<br />
Apery's initial [[Evaluation|evaluation]] was [[Bonanza]] like, using [[Piece-Square Tables|piece-square tables]] indexed by king location and further two-piece locations, dubbed KPP or KKP.<br />
More recent versions require evaluation function binaries as a sub-module as specified by the USI Eval_Dir command.<br />
Since 2012, Apery regularly participates at [[World Computer Shogi Championship|World Computer Shogi Championships]]. It won the [[WCSC24]] in 2014, and became third at the [[WCSC28]] in 2018.<br />
<br />
=Bitboards=<br />
Shogi [[Bitboards]] are defined as [[Array|array]] of two [[Quad Word|quad words]]. <br />
==[[Cpp|C++]]==<br />
The C++ Apery has a conditional compiled [https://en.wikipedia.org/wiki/Union_type union type] with 128-bit type __m128i,<br />
explicitly taking advantage of [[SSE2]] and [[SSE4]] instructions <ref>[https://github.com/HiraokaTakuya/apery/blob/master/src/bitboard.hpp apery/bitboard.hpp at master · HiraokaTakuya/apery · GitHub]</ref>.<br />
<pre><br />
class Bitboard {<br />
...<br />
private:<br />
#if defined (HAVE_SSE2) || defined (HAVE_SSE4)<br />
union {<br />
u64 p_[2];<br />
__m128i m_;<br />
};<br />
#else<br />
u64 p_[2]; // p_[0] : Seeing from the front, 1 to 79 are arranged vertically. Use 63 bits. Call it right.。<br />
// p_[1] : Seeing from the front, 8 bits from 1 to 19 are arranged vertically. Use 18 bits. Call it left.<br />
#endif<br />
};<br />
</pre><br />
==[[Rust]]==<br />
<ref>[https://github.com/HiraokaTakuya/apery_rust/blob/master/src/bitboard.rs#L6 apery_rust/bitboard.rs at master · HiraokaTakuya/apery_rust · GitHub]</ref><br />
<pre><br />
pub struct Bitboard {<br />
pub v: [u64; 2],<br />
}<br />
</pre><br />
=Publications=<br />
* [[Takenobu Takizawa]], [[Takeshi Ito]], [[Takuya Hiraoka]], [[Kunihito Hoki]] ('''2015'''). ''[https://link.springer.com/referenceworkentry/10.1007/978-3-319-08234-9_22-1 Contemporary Computer Shogi]''. [https://link.springer.com/referencework/10.1007/978-3-319-08234-9 Encyclopedia of Computer Graphics and Games]<br />
<br />
=Forum Posts=<br />
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=61407 Japanese Chess (Shogi) Engines USI - Shogidokoro-GUI 3.7.2] by [[Norbert Raimund Leisner]], [[CCC]], September 12, 2016<br />
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=61441 WinBoard 4.8.0 for Shogi - Tanuki USI Engine] by [[Norbert Raimund Leisner]], [[CCC]], September 16, 2016<br />
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72754&start=1 Re: The Stockfish of shogi] by [[Fabian Fichter]], [[CCC]], January 07, 2020<br />
<br />
=External Links=<br />
==Shogi Engine==<br />
* [https://hiraokatakuya.github.io/apery/ Apery]<br />
* [https://github.com/HiraokaTakuya/apery_rust GitHub - HiraokaTakuya/apery_rust: USI shogi engine written in Rust]<br />
* [https://github.com/HiraokaTakuya/apery GitHub - HiraokaTakuya/apery: a USI Shogi engine]<br />
* [https://www.apply.computer-shogi.org/wcsc30/appeal/Apery/apery_appeal_wcsc30.html WCSC30 Apery Appeal document] (Japanese)<br />
==Misc==<br />
* [https://en.wikipedia.org/wiki/Roger_Ap%C3%A9ry Roger Apéry from Wikipedia] » [[Mathematician#RApery|Roger Apéry]]<br />
* [https://mathshistory.st-andrews.ac.uk/Biographies/Apery/ Roger Apéry (1916 - 1994) - Biography] - [https://en.wikipedia.org/wiki/MacTutor_History_of_Mathematics_archive MacTutor History of Mathematics]<br />
* [https://en.wikipedia.org/wiki/Ap%C3%A9ry%27s_constant Apéry's constant from Wikipedia]<br />
* [https://en.wikipedia.org/wiki/Ap%C3%A9ry%27s_theorem Apéry's theorem from Wikipedia]<br />
<br />
=References= <br />
<references /><br />
'''[[Engines|Up one Level]]'''<br />
[[Category:Shogi]]<br />
[[Category:GPL]]<br />
[[Category:Open Source]]<br />
[[Category:USI]]<br />
[[Category:PC]]<br />
[[Category:X64]]<br />
[[Category:Rust]]<br />
[[Category:Windows]]<br />
[[Category:Linux]]<br />
[[Category:Demonology]]<br />
[[Category:Toriyama Sekien]]</div>
GerdIsenberg