Difference between revisions of "Spartan"

From Chessprogramming wiki
Jump to: navigation, search
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>  
+
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>  
 
<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]],  
 
<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]],  
 
is expensive and rarely seen in chess programs. Recommended is [[Distance#Lookup|looking up]] the [[Distance|Chebyshev distance]] for that purpose.
 
is expensive and rarely seen in chess programs. Recommended is [[Distance#Lookup|looking up]] the [[Distance|Chebyshev distance]] for that purpose.

Revision as of 22:06, 10 April 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]. Spartan's way using the Euclidean distance with double arithmetic due to C standard library square root (double sqrt(double)) [5] [6], as used in calculating king passer tropism, is expensive and rarely seen in chess programs. Recommended is looking up the Chebyshev distance for that purpose.

Features

[7]

Board Representation

Search

Evaluation

Misc

See also

Forum Posts

External Links

Chess Engine

Misc

References

Up one Level