Author: Steven Edwards
Date: 02:28:17 08/22/03
The C++ chess programming toolkit CT has classes for working with time and frequency (i.e., inverse time). It also has a class for handling English names for integers. Plus, there are routines that know about SI (metric) magnitude prefixes. These can be combined with a move path enumeration class aided by a transposition table for testing. Consider the following rather simple position: [D]4k3/8/8/8/8/8/8/4K3 w - - Here are the move path enumerations for the depth varying from one up to twenty-three: Depth: 1 count: 5 Total: five Frequency: 29.4118 Hz Period: 34 ms Cycles per node: 2.72e+07 Clock: zero seconds Depth: 2 count: 25 Total: twenty-five Frequency: 138.889 Hz Period: 7.2 ms Cycles per node: 5.76e+06 Clock: one second Depth: 3 count: 170 Total: one hundred seventy Frequency: 1.13333 KHz Period: 882.353 us Cycles per node: 705882 Clock: zero seconds Depth: 4 count: 1156 Total: one thousand one hundred fifty-six Frequency: 7.70662 KHz Period: 129.759 us Cycles per node: 103807 Clock: zero seconds Depth: 5 count: 7922 Total: seven thousand nine hundred twenty-two Frequency: 44.0111 KHz Period: 22.7215 us Cycles per node: 18177.2 Clock: zero seconds Depth: 6 count: 53896 Total: fifty-three thousand eight hundred ninety-six Frequency: 283.663 KHz Period: 3.52531 us Cycles per node: 2820.25 Clock: one second Depth: 7 count: 375049 Total: three hundred seventy-five thousand forty-nine Frequency: 1.97394 MHz Period: 506.6 ns Cycles per node: 405.28 Clock: zero seconds Depth: 8 count: 2591703 Total: two million five hundred ninety-one thousand seven hundred three Frequency: 12.3415 MHz Period: 81.0274 ns Cycles per node: 64.8219 Clock: zero seconds Depth: 9 count: 17895172 Total: seventeen million eight hundred ninety-five thousand one hundred seventy-two Frequency: 74.5635 MHz Period: 13.4114 ns Cycles per node: 10.7291 Clock: zero seconds Depth: 10 count: 122753895 Total: one hundred twenty-two million seven hundred fifty-three thousand eight hundred ninety-five Frequency: 438.407 MHz Period: 2.28099 ns Cycles per node: 1.82479 Clock: zero seconds Depth: 11 count: 846285725 Total: eight hundred forty-six million two hundred eighty-five thousand seven hundred twenty-five Frequency: 2.56451 GHz Period: 389.938 ps Cycles per node: 0.31195 Clock: one second Depth: 12 count: 5807121096 Total: five billion eight hundred seven million one hundred twenty-one thousand ninety-six Frequency: 15.2819 GHz Period: 65.4369 ps Cycles per node: 0.0523495 Clock: zero seconds Depth: 13 count: 39881239565 Total: thirty-nine billion eight hundred eighty-one million two hundred thirty-nine thousand five hundred sixty-five Frequency: 92.7471 GHz Period: 10.782 ps Cycles per node: 0.00862561 Clock: one second Depth: 14 count: 272980168768 Total: two hundred seventy-two billion nine hundred eighty million one hundred sixty-eight thousand seven hundred sixty-eight Frequency: 557.105 GHz Period: 1.79499 ps Cycles per node: 0.001436 Clock: zero seconds Depth: 15 count: 1871752175983 Total: one trillion eight hundred seventy-one billion seven hundred fifty-two million one hundred seventy-five thousand nine hundred eighty-three Frequency: 3.34242 THz Period: 299.184 fs Cycles per node: 0.000239347 Clock: one second Depth: 16 count: 12804538065718 Total: twelve trillion eight hundred four billion five hundred thirty-eight million sixty-five thousand seven hundred eighteen Frequency: 20.3247 THz Period: 49.2013 fs Cycles per node: 3.9361e-05 Clock: one second Depth: 17 count: 87658645339246 Total: eighty-seven trillion six hundred fifty-eight billion six hundred forty-five million three hundred thirty-nine thousand two hundred forty-six Frequency: 125.227 THz Period: 7.98551 fs Cycles per node: 6.38841e-06 Clock: one second Depth: 18 count: 599160694162071 Total: five hundred ninety-nine trillion one hundred sixty billion six hundred ninety-four million one hundred sixty-two thousand seventy-one Frequency: 778.131 THz Period: 1.28513 fs Cycles per node: 1.0281e-06 Clock: one second Depth: 19 count: 4098371103275924 Total: four quadrillion ninety-eight trillion three hundred seventy-one billion one hundred three million two hundred seventy-five thousand nine hundred twenty-four Frequency: 4.87901 PHz Period: 204.959 as Cycles per node: 1.63968e-07 Clock: one second Depth: 20 count: 28003379451441501 Total: twenty-eight quadrillion three trillion three hundred seventy-nine billion four hundred fifty-one million four hundred forty-one thousand five hundred one Frequency: 31.1149 PHz Period: 32.139 as Cycles per node: 2.57112e-08 Clock: one second Depth: 21 count: 191422801600109729 Total: one hundred ninety-one quadrillion four hundred twenty-two trillion eight hundred one billion six hundred million one hundred nine thousand seven hundred twenty-nine Frequency: 195.33 PHz Period: 5.11955 as Cycles per node: 4.09564e-09 Clock: one second Depth: 22 count: 1307549415628455609 Total: one quintillion three hundred seven quadrillion five hundred forty-nine trillion four hundred fifteen billion six hundred twenty-eight million four hundred fifty-five thousand six hundred nine Frequency: 1.24529 EHz Period: 803.027 zs Cycles per node: 6.42422e-10 Clock: one second Depth: 23 count: 8934501555889985874 Total: eight quintillion nine hundred thirty-four quadrillion five hundred one trillion five hundred fifty-five billion eight hundred eighty-nine million nine hundred eighty-five thousand eight hundred seventy-four Frequency: 7.97725 EHz Period: 125.357 zs Cycles per node: 1.00285e-10 Clock: one second After a depth of twenty-three, the count for the above position spills a sixty-four bit integer. I suppose I'll have to include a bignums class :)
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.