Difference between revisions of "Spartan"

From Chessprogramming wiki
Jump to: navigation, search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
'''[[Main Page|Home]] * [[Engines]] * Spartan'''
 
'''[[Main Page|Home]] * [[Engines]] * Spartan'''
  
[[FILE:Spartandia.jpg|border|right|thumb| SPARTAN-101 Diagram  <ref>[https://de.wikipedia.org/wiki/SPARTAN#SPARTAN_101 SPARTAN-101] carrier module of [https://en.wikipedia.org/wiki/STS-51-G STS-51-G], the 18th flight of [https://en.wikipedia.org/wiki/NASA NASA's] [https://en.wikipedia.org/wiki/Space_Shuttle Space Shuttle] program, and the fifth flight of [https://en.wikipedia.org/wiki/Space_Shuttle_Discovery Space Shuttle Discovery], June 17-24, 1985, [https://en.wikipedia.org/wiki/NASA NASA] image, [https://de.wikipedia.org/wiki/SPARTAN SPARTAN – Wikipedia.de] (German), [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]
+
[[FILE:Spartandia.jpg|border|right|thumb| SPARTAN-101 Diagram  <ref>[https://de.wikipedia.org/wiki/SPARTAN#SPARTAN_101 SPARTAN-101] (Shuttle Pointed Autonomous Research Tool for Astronomy) carrier module of [https://en.wikipedia.org/wiki/STS-51-G STS-51-G], the 18th flight of [https://en.wikipedia.org/wiki/NASA NASA's] [https://en.wikipedia.org/wiki/Space_Shuttle Space Shuttle] [https://en.wikipedia.org/wiki/Space_Shuttle_program program], and the fifth flight of [https://en.wikipedia.org/wiki/Space_Shuttle_Discovery Space Shuttle Discovery], June 17-24, 1985, [https://en.wikipedia.org/wiki/NASA NASA] image, [https://de.wikipedia.org/wiki/SPARTAN SPARTAN – Wikipedia.de] (German), [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]
  
 
'''Spartan''',<br/>
 
'''Spartan''',<br/>
Line 7: Line 7:
 
written in [[C]] and distributed under the [[Free Software Foundation#GPL|GNU General Public License]], first released in April 2016
 
written in [[C]] and distributed under the [[Free Software Foundation#GPL|GNU General Public License]], first released in April 2016
 
as successor of [[JFresh]] <ref>[http://www.open-chess.org/viewtopic.php?f=7&t=2973 New UCI engine: Spartan] by [[Christian Daley|CDaley11]], [[Computer Chess Forums|OpenChess Forum]], April 23, 2016</ref>.
 
as successor of [[JFresh]] <ref>[http://www.open-chess.org/viewtopic.php?f=7&t=2973 New UCI engine: Spartan] by [[Christian Daley|CDaley11]], [[Computer Chess Forums|OpenChess Forum]], April 23, 2016</ref>.
 
+
As a pure [[Bitboards|bitboard]] engine, Spartan applies [[Matt Taylor|Matt Taylor's]] [[BitScan#MattTaylorsFoldingtrick|folding trick]] to [[BitScan|scan bits]] <ref>[https://github.com/christiandaley/Spartan/blob/master/src/bitscan.h Spartan/bitscan.h at master · christiandaley/Spartan · GitHub]</ref>, and [[Population Count#BrianKernighansway|Brian Kernighan's way]] to [[Population Count|count bits]] <ref>[https://github.com/christiandaley/Spartan/blob/master/src/bitscan.c Spartan/bitscan.c at master · christiandaley/Spartan · GitHub]</ref>.
 +
In calculating [[King Pawn Tropism|king passer tropism]] in [[Evaluation|evaluation]],
 +
Spartan uses the [https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance] between king and passer squares with [[Double|double]] arithmetic due to [https://en.wikipedia.org/wiki/C_standard_library C standard library] [https://en.wikipedia.org/wiki/Square_root square root] (double sqrt(double)) <ref>[https://github.com/christiandaley/Spartan/blob/master/src/eval.h partan/eval.h at master · christiandaley/Spartan · GitHub], #define DIST(sq1, sq2) ((int)sqrt(((...</ref>
 +
<ref>[https://www.programiz.com/c-programming/library-function/math.h/sqrt C sqrt() - C Standard Library]</ref> of the [https://en.wikipedia.org/wiki/Sum_of_squares sum of squares] of [[Ranks#RankDistance|rank difference]] and [[Files#FileDistance|file difference]], which is quite expensive. Recommended is [[Distance#Lookup|looking up]] the [[Distance|Chebyshev distance]] or [[Manhattan-Distance|Manhattan distance]] for that purpose.
 +
 
=Features=
 
=Features=
 
<ref>[https://github.com/christiandaley/Spartan/blob/master/Readme.md Spartan/Readme.md at master · christiandaley/Spartan · GitHub]</ref>
 
<ref>[https://github.com/christiandaley/Spartan/blob/master/Readme.md Spartan/Readme.md at master · christiandaley/Spartan · GitHub]</ref>
 
==[[Board Representation]]==
 
==[[Board Representation]]==
* [[Bitboards]]
+
* [[Bitboard Board-Definition]]
 
* [[Magic Bitboards]]
 
* [[Magic Bitboards]]
 
==[[Search]]==
 
==[[Search]]==
Line 33: Line 37:
 
** [[Killer Heuristic]]
 
** [[Killer Heuristic]]
 
** [[History Heuristic]]
 
** [[History Heuristic]]
 +
==[[Evaluation]]==
 +
* [[Material]]
 +
* [[Tapered Eval]]
 +
* [[Piece-Square Tables]]
 +
* [[Mobility]]
 +
* [[Rook on Open File|Rooks on (Semi) Open Files]]
 +
* [[Connectivity]]
 +
* [[Pawn Structure]]
 +
** [[Pawn Hash Table]]
 +
** [[Backward Pawn]]
 +
** [[Doubled Pawn]]
 +
** [[Isolated Pawn]]
 +
* [[Passed Pawn]]
 +
** [[Unstoppable Passer]]
 +
** [[King Pawn Tropism|King Passer Tropism]]
 +
* [[King Safety]]
 +
** [[King Safety#Attacking|Attacking King Zone]]
 +
** [[King Safety#PawnShield|Pawn Shelter]]
 +
** [[King Safety#PawnStorm|Pawn Storm]]
 
==Misc==
 
==Misc==
 
* [[Bratko-Kopec Test]]
 
* [[Bratko-Kopec Test]]
Line 56: Line 79:
 
* [https://en.wikipedia.org/wiki/Sparta Sparta from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Sparta Sparta from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Sparta_(disambiguation) Sparta (disambiguation) from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Sparta_(disambiguation) Sparta (disambiguation) from Wikipedia]
 +
* [[:Category:Broken Brass Ensemble|Broken Brass Ensemble]] - Spartan, [https://en.wikipedia.org/wiki/North_Sea_Jazz_Festival North Sea Jazz] 2019, [https://en.wikipedia.org/wiki/NPO_Radio_2_Soul_%26_Jazz NPO Radio 2 Soul & Jazz], [https://en.wikipedia.org/wiki/YouTube YouTube] Video
 +
: {{#evu:https://www.youtube.com/watch?v=j4ziR0UDKWA|alignment=left|valignment=top}}
  
 
=References=  
 
=References=  
Line 68: Line 93:
 
[[Category:Linux]]
 
[[Category:Linux]]
 
[[Category:Windows]]
 
[[Category:Windows]]
 +
[[Category:Broken Brass Ensemble]]

Latest revision as of 21:41, 17 September 2020

Home * Engines * Spartan

SPARTAN-101 Diagram [1]

Spartan,
an UCI compliant open source chess engine by Christian Daley, written in C and distributed under the GNU General Public License, first released in April 2016 as successor of JFresh [2]. As a pure bitboard engine, Spartan applies Matt Taylor's folding trick to scan bits [3], and Brian Kernighan's way to count bits [4]. In calculating king passer tropism in evaluation, Spartan uses the Euclidean distance between king and passer squares with double arithmetic due to C standard library square root (double sqrt(double)) [5] [6] of the sum of squares of rank difference and file difference, which is quite expensive. Recommended is looking up the Chebyshev distance or Manhattan distance for that purpose.

Features

See also

Forum Posts

External Links

References