Difference between revisions of "Spartan"

From Chessprogramming wiki
Jump to: navigation, search
 
(4 intermediate revisions by the same user not shown)
Line 8: Line 8:
 
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>.  
 
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>.  
Spartan's way using the [https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance] 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>  
+
In calculating [[King Pawn Tropism|king passer tropism]] in [[Evaluation|evaluation]],
<ref>[https://www.programiz.com/c-programming/library-function/math.h/sqrt C sqrt() - C Standard Library]</ref>, as used in calculating [[King Pawn Tropism|king passer tropism]],  
+
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>  
is expensive and rarely seen in chess programs. Recommended is [[Distance#Lookup|looking up]] the [[Distance|Chebyshev distance]] for that purpose.
+
<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=
Line 79: 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 91: 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