Talk:Primorial numbers

From Rosetta Code

PARI/GP you speak about factor tree, but only primes are used, where is the advantage??? I love such solutions like in perl <lang perl>use ntheory qw(pn_primorial); say "First ten primorials: ", join ", ", map { pn_primorial($_) } 0..9;</lang> and all is done ;-) Horsth

I just added a version using the new vecprod command. It is quite a bit faster. It uses a product tree for efficient large vector products -- the old comment was misleading about using a factor tree. Danaj (talk) 16:50, 9 October 2018 (UTC)
Once I figured out what a "product tree" is, simply multiplying in pairs (technically adjacent, not that my Phix entry does that) I was positively shocked to see a better than 50-fold performance improvement (6 mins => 6 secs). --Pete Lomax (talk) 04:28, 22 March 2020 (UTC)

a faster-than-exponential growth rate in CPU time stated by dinosaur

Story

school - multiplication ist quadratic in runtime O(count of digits) ~ (count of digits)^2

Prime(100000) = 1299709, Primorial(100000) ~ 0.1909604E+563921                      121.547 seconds.
Prime(1000000) = 15485863, Primorial(1000000) ~ 0.1147175E+6722809                17756.797 seconds.

10-times Numbers -> ~100-times runtime 121*100-> 12100

the digitcount of the numbers one multiplies grew be a factor of lg10(15.45Mio)/lg10(1.299Mio) =1,17

so you get 10-> (1.17*10) ^ 2 = 136,89*121,547= 16638 thats not far from 17756

Now take into account that the number gets so big, that it doesn't fit in level3 Cache ,which slow things down.Only 3% will be enough 121,547*(1.17*1.03*10)^2 s = 17651 s Horsth

The implementation of primorial I am using, running on this laptop, took 0.002909 seconds for primorial 100000 and 0.049093 seconds for primorial 1000000. With digit counts, that became 0.004267 seconds and 0.04369 seconds. I guess that's faster than exponential growth rate if by fast you mean the execution time... but ... actually, I'm not sure where I'm going with this. I am mildly surprised that digit count could be faster than the raw primorial but that might just be random variation --Rdm (talk) 20:41, 8 April 2016 (UTC) Edit: System Info claims I'm working with an i7: 2.8GHz clock, 256KB L2, 6MB L3 - no mention of L1. --Rdm (talk) 09:26, 9 April 2016 (UTC)

According to System Info, the computer has 64KB of L1 I-cache, 16KB L1 D-cache, and 2048KB of L2 cache, with further jargon about 2 way set associative, 64 byte line size, etc. and no mention of L3. Later, I see that the GIMP calculation gives 8MB for L3 on this AMD k10. However, I have no idea how much of each resource is devoted to the various activities such as running the GIMP crunch and windows itself. This is why experimental timings are tricky to perform as well as being a load on the patience. I am however surprised by the speeds quoted by some contributors, given that towards the end the number has millions of digits.
As for the standard multiplication procedure of n digits by m digits consuming time proportional to n.m, remember that my version cheats by using a one digit multiplicand (err, the second number in a*b) even though it is much larger than the base of arithmetic. Computer crunching of integers is unaffected by whether x is multiplied by 12 or 1234567, except for overflows. Thus, its running time should be proportional to n, the number of digits in the big number. In principle, and ignoring caches. If successive primorials were attained by multiplying by a constant, then that number of digits would increase linearly, but of course the multiplicand is increasing in size itself. If that increase was the same as with factorials then the number of digits would increase according to log(x!) which is proportional to x*log(x) via Stirling's approximation, which is to say a linear growth (the x) multiplied by a factor that grows ever more slowly (the log(x))
But Primorial(x) grows even faster than x! However, I didn't look and think long about the cpu timings before making the remark about "faster than exponential". I shall twiddle the prog. to produce more reports on timing... Dinosaur (talk) 08:51, 9 April 2016 (UTC)
On reading http://rosettacode.org/mw/index.php?title=Primorial_numbers&type=revision&diff=225184&oldid=225110 I think I'm beginning to understand your point of view. I guess the issue is "in proportion to what?" For example, if we consider resource consumption (quite a lot) in proportion to the number of arguments (always just one), resource growth is infinite. If we think of resource growth in proportion to the number of digits in the argument we get "resource consumption (time to complete) growth faster than exponential". If we think of resource growth in proportion to the numerical value of the argument time consumed growth grows faster than linear.
Anyways, I guess a general issue here is that we tend to think in "shorthand" and when relating those thought to other people it often takes some extra work to make sure they understand our thinking. --Rdm (talk) 01:58, 10 April 2016 (UTC)
Our edits clashed! In the article I have rephrased the usage of "exponential" to note that it is the task that is growing exponentially (n = 10^i for i = 1, 2, 3, ...) so that even for a linear exercise, the work would grow exponentially. But here there is a further growth factor beyond the linear, because the number size is growing faster than linear, because n is growing... The supposition being that a multiply is linear in (number of digits) given that the multiplicand is one (embolismic) digit only. Except, we know that sooner or later, its digit count will grow. The unit of "sizeness" is not always obvious or convenient. To calculate Primorial(n) the task size is obviously determined by the value of n, from which is deduced log(n) for the number of digits both of n itself and Primorial(n) and one argues about the time for a multiply with those sizes of digit strings, and then perhaps the integration of those times so as to reach n from 1. All of which depends on n. But, since digit string length is so important, one might choose to talk about log(n) as being the unit of size. In the factoring of numbers, for example, I (and Prof. Knuth) speak of n and sqrt(n), but, with ever larger n, it seems now it is fashionable to use log(n) as the unit, and speak of "polynomial time in N" or similar, when N is actually log(n)
Righto, another overnight run, this time with a report every thousand for n, d, and t where t is the cpu time to attain n after reaching n - 1000. So, from 99000 to attain 100000 the digit count went from 557809 to 563921 and the cpu time was 2·625. For 999000 to 1000000 the digit count went from 6715619 to 6722809 and the cpu time was 33·969. Plotting showed almost linear growth rates across this limited span:
Correlation
 0·99990       t = d*5·636E-6  -0·41458
 0·99973       d = n*6·6983    -125797·8
 0·99943       t = n*3·7744E-5 - 1·1205
These were for data only up to n = 800,000 because there was a change in slope subsequently, probably because I stopped using the computer for other minor activity and thus didn't disrupt its various buffers. The Mersenne prime calculations continued. The points wobble above and below the fitted line across the span, and there is a bend visible at the start where the overall line is too low. That is, at the start the calculation is going a little faster and presumably, one could talk about not yet overflowing some on-chip memory buffer as another reason for non-linearity. Similarly, at the high end the points start to rise above the fitted line, and one could talk about a growth factor such as log(n) rather than a constant. This is obscured by the greater speed later on when I had walked away from the toiling computer. Nevertheless, one can see that a slight curve is being approximated by a straight line over a limited span, which means that using the start to attempt to identify the effect of a cpu buffer size will be tricky. Even so, a log(n) vs. log(t) plot shows a change of slope at the start - except that is for only the first few points. Alas, with "only" a few thousand digits to the big number, the resolution of the CPU timing function is insufficient to show finer details, and repeating the calculation a hundred times (say) will require auxiliary storage to enable the repetition and this will change the workings of the presumed buffering processes away from what was intended to be investigated. A frustrating business.
Unfortunately, there is no provision for posting images, and anyway I've had a lot of trouble with Octave producing damaged plot files (.svg, .png, etc.) having to resort to screen image captures, so instead, here are the data:
You should be able to post images now. Look for an "Upload File" link at the bottom of the page. Also, you might want to look at where the time is going in your implementation - I am going to guess that it's in your code to generate the prime numbers. --Rdm (talk) 03:00, 10 April 2016 (UTC)
Pox! I have just created file Primorial.cpuTime.svg, but, "Error creating thumbnail: /bin/bash: rsvg-convert: command not found" results. Inkscape however draws the plot without difficulty, though at 657KB the file is a bit large for just a thousand points, a line, and some annotation. And now that it is uploaded, I can't see how to delete it. I shall attempt to replace it by a screen capture. As for Octave, it won't "Print" the plot as either a .png nor a .jpg due to some complaint of its own "'C:\Program' is not recognized as an internal or external command, operable program or batch file." so a tar pit there.
The calculation of the primes is not a problem, because all million are prepared in array PRIME before any Primorial attempts are made, and the time for this is somewhere in the blink of starting the run and the first Primorial results appearing even as the screen window manifests. Dinosaur (talk) 06:30, 10 April 2016 (UTC)
And I can't replace the .svg file by a .jpg because I can't change the name of the file. So, a new file (only 38KB in this format), and damnit, I forgot to give the name the prefix "Primorial.cpu"

And here is a plot of cpu time against the number of digits in the big number, which is successively being multiplied by a single digit value.

Only admins are allowed to delete files. I've removed "Primorial.cpuTime.svg". --Andreas Perstinger (talk) 18:36, 10 April 2016 (UTC)

Grist

   1000,   3393, 0.000
   2000,   7483, 0.016
   3000,  11829, 0.047
   4000,  16340, 0.047
   5000,  20975, 0.078
   6000,  25706, 0.094
   7000,  30519, 0.109
   8000,  35400, 0.141
   9000,  40342, 0.156
  10000,  45337, 0.172
  11000,  50381, 0.219
  12000,  55468, 0.203
  13000,  60595, 0.250
  14000,  65759, 0.266
  15000,  70957, 0.250
  16000,  76187, 0.328
  17000,  81447, 0.344
  18000,  86735, 0.359
  19000,  92050, 0.391
  20000,  97389, 0.406
  21000, 102753, 0.422
  22000, 108139, 0.469
  23000, 113547, 0.484
  24000, 118975, 0.500
  25000, 124424, 0.531
  26000, 129891, 0.562
  27000, 135377, 0.578
  28000, 140881, 0.609
  29000, 146401, 0.625
  30000, 151937, 0.656
  31000, 157490, 0.703
  32000, 163057, 0.688
  33000, 168640, 0.750
  34000, 174237, 0.766
  35000, 179849, 0.750
  36000, 185473, 0.797
  37000, 191111, 0.812
  38000, 196762, 0.859
  39000, 202425, 0.891
  40000, 208100, 0.906
  41000, 213787, 0.938
  42000, 219486, 0.953
  43000, 225196, 1.000
  44000, 230916, 1.016
  45000, 236648, 1.047
  46000, 242390, 1.062
  47000, 248143, 1.094
  48000, 253905, 1.156
  49000, 259678, 1.156
  50000, 265460, 1.156
  51000, 271251, 1.203
  52000, 277052, 1.234
  53000, 282862, 1.234
  54000, 288681, 1.297
  55000, 294508, 1.297
  56000, 300345, 1.328
  57000, 306189, 1.359
  58000, 312042, 1.406
  59000, 317903, 1.422
  60000, 323772, 1.453
  61000, 329649, 1.484
  62000, 335534, 1.516
  63000, 341426, 1.531
  64000, 347326, 1.562
  65000, 353233, 1.594
  66000, 359148, 1.609
  67000, 365069, 1.641
  68000, 370998, 1.688
  69000, 376933, 1.719
  70000, 382876, 1.719
  71000, 388825, 1.719
  72000, 394780, 1.766
  73000, 400743, 1.812
  74000, 406711, 1.844
  75000, 412686, 1.875
  76000, 418668, 1.922
  77000, 424656, 1.938
  78000, 430649, 1.938
  79000, 436649, 1.969
  80000, 442655, 2.016
  81000, 448667, 2.047
  82000, 454684, 2.062
  83000, 460708, 2.109
  84000, 466737, 2.141
  85000, 472772, 2.156
  86000, 478812, 2.281
  87000, 484857, 2.234
  88000, 490908, 2.281
  89000, 496965, 2.297
  90000, 503026, 2.328
  91000, 509093, 2.359
  92000, 515165, 2.391
  93000, 521242, 2.422
  94000, 527324, 2.438
  95000, 533411, 2.500
  96000, 539504, 2.516
  97000, 545601, 2.547
  98000, 551703, 2.578
  99000, 557809, 2.594
 100000, 563921, 2.625
 101000, 570037, 2.656
 102000, 576158, 2.672
 103000, 582283, 2.719
 104000, 588413, 2.750
 105000, 594548, 2.797
 106000, 600687, 2.812
 107000, 606831, 2.859
 108000, 612978, 2.891
 109000, 619131, 2.922
 110000, 625287, 2.969
 111000, 631448, 2.984
 112000, 637613, 3.047
 113000, 643782, 3.094
 114000, 649956, 3.094
 115000, 656133, 3.156
 116000, 662315, 3.156
 117000, 668500, 3.203
 118000, 674690, 3.281
 119000, 680884, 3.297
 120000, 687081, 3.344
 121000, 693283, 3.359
 122000, 699488, 3.422
 123000, 705698, 3.453
 124000, 711911, 3.500
 125000, 718128, 3.516
 126000, 724349, 3.547
 127000, 730573, 3.625
 128000, 736801, 3.672
 129000, 743033, 3.703
 130000, 749268, 3.734
 131000, 755507, 3.797
 132000, 761750, 3.828
 133000, 767996, 3.875
 134000, 774246, 3.922
 135000, 780499, 3.953
 136000, 786756, 3.984
 137000, 793016, 4.047
 138000, 799280, 4.062
 139000, 805547, 4.141
 140000, 811817, 4.172
 141000, 818091, 4.188
 142000, 824368, 4.250
 143000, 830648, 4.281
 144000, 836932, 4.312
 145000, 843219, 4.375
 146000, 849509, 4.391
 147000, 855802, 4.422
 148000, 862099, 4.438
 149000, 868398, 4.500
 150000, 874701, 4.547
 151000, 881007, 4.578
 152000, 887316, 4.641
 153000, 893628, 4.688
 154000, 899943, 4.688
 155000, 906261, 4.750
 156000, 912583, 4.766
 157000, 918907, 4.781
 158000, 925234, 4.859
 159000, 931564, 4.875
 160000, 937898, 4.922
 161000, 944234, 4.984
 162000, 950573, 4.984
 163000, 956915, 5.016
 164000, 963259, 5.078
 165000, 969607, 5.094
 166000, 975958, 5.109
 167000, 982311, 5.188
 168000, 988667, 5.203
 169000, 995026, 5.156
 170000,1001388, 5.219
 171000,1007752, 5.312
 172000,1014119, 5.328
 173000,1020489, 5.375
 174000,1026862, 5.391
 175000,1033238, 5.484
 176000,1039616, 5.500
 177000,1045997, 5.484
 178000,1052380, 5.562
 179000,1058766, 5.594
 180000,1065155, 5.656
 181000,1071546, 5.656
 182000,1077940, 5.703
 183000,1084336, 5.688
 184000,1090735, 5.750
 185000,1097137, 5.812
 186000,1103541, 5.875
 187000,1109948, 5.906
 188000,1116357, 5.922
 189000,1122768, 5.891
 190000,1129182, 6.000
 191000,1135599, 6.016
 192000,1142018, 6.047
 193000,1148439, 6.109
 194000,1154863, 6.094
 195000,1161290, 6.172
 196000,1167718, 6.188
 197000,1174149, 6.250
 198000,1180583, 6.250
 199000,1187018, 6.297
 200000,1193457, 6.344
 201000,1199897, 6.359
 202000,1206340, 6.406
 203000,1212785, 6.438
 204000,1219233, 6.469
 205000,1225682, 6.516
 206000,1232134, 6.547
 207000,1238588, 6.578
 208000,1245045, 6.609
 209000,1251504, 6.609
 210000,1257965, 6.703
 211000,1264428, 6.750
 212000,1270893, 6.734
 213000,1277361, 6.828
 214000,1283831, 6.859
 215000,1290303, 6.859
 216000,1296777, 6.938
 217000,1303254, 6.953
 218000,1309732, 7.000
 219000,1316213, 7.047
 220000,1322696, 7.047
 221000,1329181, 7.141
 222000,1335668, 7.125
 223000,1342158, 7.188
 224000,1348649, 7.203
 225000,1355143, 7.281
 226000,1361638, 7.266
 227000,1368136, 7.328
 228000,1374635, 7.344
 229000,1381137, 7.406
 230000,1387641, 7.406
 231000,1394147, 7.484
 232000,1400654, 7.516
 233000,1407164, 7.531
 234000,1413676, 7.594
 235000,1420189, 7.609
 236000,1426705, 7.609
 237000,1433223, 7.703
 238000,1439742, 7.719
 239000,1446264, 7.734
 240000,1452788, 7.812
 241000,1459313, 7.828
 242000,1465841, 7.891
 243000,1472370, 7.938
 244000,1478902, 7.875
 245000,1485435, 7.938
 246000,1491970, 8.031
 247000,1498507, 8.078
 248000,1505046, 8.094
 249000,1511587, 8.094
 250000,1518130, 8.203
 251000,1524675, 8.219
 252000,1531221, 8.250
 253000,1537770, 8.266
 254000,1544320, 8.328
 255000,1550873, 8.344
 256000,1557427, 8.391
 257000,1563983, 8.422
 258000,1570540, 8.484
 259000,1577100, 8.500
 260000,1583661, 8.531
 261000,1590224, 8.562
 262000,1596789, 8.609
 263000,1603355, 8.656
 264000,1609924, 8.672
 265000,1616494, 8.719
 266000,1623066, 8.672
 267000,1629640, 8.750
 268000,1636215, 8.812
 269000,1642792, 8.875
 270000,1649371, 8.859
 271000,1655952, 8.906
 272000,1662534, 8.984
 273000,1669118, 9.031
 274000,1675704, 9.047
 275000,1682291, 9.109
 276000,1688881, 9.109
 277000,1695472, 9.141
 278000,1702064, 9.188
 279000,1708658, 9.250
 280000,1715254, 9.297
 281000,1721852, 9.297
 282000,1728451, 9.312
 283000,1735052, 9.375
 284000,1741655, 9.406
 285000,1748259, 9.391
 286000,1754865, 9.516
 287000,1761472, 9.516
 288000,1768082, 9.578
 289000,1774692, 9.594
 290000,1781305, 9.625
 291000,1787919, 9.703
 292000,1794534, 9.734
 293000,1801151, 9.750
 294000,1807770, 9.781
 295000,1814391, 9.828
 296000,1821013, 9.859
 297000,1827636, 9.844
 298000,1834261, 9.906
 299000,1840888, 9.938
 300000,1847516, 9.953
 301000,1854146, 9.969
 302000,1860777,10.047
 303000,1867410,10.094
 304000,1874045,10.109
 305000,1880681,10.203
 306000,1887318,10.047
 307000,1893958,10.250
 308000,1900598,10.281
 309000,1907240,10.250
 310000,1913884,10.328
 311000,1920529,10.422
 312000,1927176,10.438
 313000,1933824,10.500
 314000,1940474,10.547
 315000,1947125,10.516
 316000,1953777,10.359
 317000,1960431,10.547
 318000,1967087,10.578
 319000,1973744,10.719
 320000,1980402,10.688
 321000,1987062,10.781
 322000,1993724,10.719
 323000,2000387,10.828
 324000,2007051,10.875
 325000,2013717,10.594
 326000,2020384,10.859
 327000,2027052,11.016
 328000,2033722,11.062
 329000,2040394,11.031
 330000,2047067,11.156
 331000,2053741,11.078
 332000,2060417,11.125
 333000,2067094,11.188
 334000,2073772,11.297
 335000,2080452,11.297
 336000,2087133,11.344
 337000,2093816,11.297
 338000,2100500,11.359
 339000,2107186,11.391
 340000,2113873,11.453
 341000,2120561,11.516
 342000,2127250,11.562
 343000,2133941,11.438
 344000,2140633,11.625
 345000,2147327,11.609
 346000,2154022,11.656
 347000,2160718,11.688
 348000,2167416,11.641
 349000,2174115,11.781
 350000,2180815,11.859
 351000,2187517,11.812
 352000,2194220,11.938
 353000,2200924,11.953
 354000,2207630,11.984
 355000,2214337,12.062
 356000,2221045,12.078
 357000,2227755,12.109
 358000,2234466,11.953
 359000,2241178,12.172
 360000,2247891,12.141
 361000,2254606,12.219
 362000,2261322,12.344
 363000,2268040,12.156
 364000,2274758,12.281
 365000,2281478,12.375
 366000,2288199,12.406
 367000,2294922,12.250
 368000,2301646,12.484
 369000,2308371,12.500
 370000,2315097,12.641
 371000,2321825,12.484
 372000,2328553,12.453
 373000,2335283,12.766
 374000,2342015,12.734
 375000,2348747,12.750
 376000,2355481,12.844
 377000,2362216,12.812
 378000,2368952,12.750
 379000,2375690,12.859
 380000,2382429,12.875
 381000,2389169,12.906
 382000,2395910,13.031
 383000,2402652,13.031
 384000,2409396,13.094
 385000,2416141,13.125
 386000,2422887,13.250
 387000,2429635,13.250
 388000,2436383,13.219
 389000,2443133,13.312
 390000,2449884,13.312
 391000,2456636,13.203
 392000,2463389,13.469
 393000,2470144,13.344
 394000,2476900,13.453
 395000,2483657,13.547
 396000,2490415,13.594
 397000,2497174,13.609
 398000,2503935,13.641
 399000,2510696,13.672
 400000,2517459,13.781
 401000,2524223,13.766
 402000,2530988,13.859
 403000,2537755,13.828
 404000,2544522,13.812
 405000,2551291,13.797
 406000,2558061,13.906
 407000,2564832,13.812
 408000,2571604,14.000
 409000,2578377,14.047
 410000,2585151,14.016
 411000,2591927,14.125
 412000,2598703,14.094
 413000,2605481,14.125
 414000,2612260,14.234
 415000,2619040,14.250
 416000,2625821,14.266
 417000,2632603,14.375
 418000,2639387,14.312
 419000,2646171,14.375
 420000,2652957,14.500
 421000,2659743,14.484
 422000,2666531,14.438
 423000,2673320,14.578
 424000,2680110,14.531
 425000,2686901,14.578
 426000,2693694,14.641
 427000,2700487,14.719
 428000,2707281,14.781
 429000,2714077,14.750
 430000,2720873,14.812
 431000,2727671,14.844
 432000,2734470,14.766
 433000,2741270,14.906
 434000,2748071,14.969
 435000,2754873,14.969
 436000,2761676,14.938
 437000,2768480,14.984
 438000,2775285,15.000
 439000,2782091,15.266
 440000,2788899,15.219
 441000,2795707,15.359
 442000,2802516,15.312
 443000,2809327,15.375
 444000,2816139,15.406
 445000,2822951,15.422
 446000,2829765,15.484
 447000,2836580,15.562
 448000,2843395,15.625
 449000,2850212,15.656
 450000,2857030,15.672
 451000,2863849,15.766
 452000,2870669,15.672
 453000,2877490,15.781
 454000,2884312,15.750
 455000,2891135,15.859
 456000,2897959,15.906
 457000,2904784,15.797
 458000,2911610,15.594
 459000,2918437,15.547
 460000,2925265,15.609
 461000,2932094,15.891
 462000,2938924,16.109
 463000,2945755,16.094
 464000,2952587,16.172
 465000,2959420,16.172
 466000,2966255,16.297
 467000,2973090,16.281
 468000,2979926,16.203
 469000,2986763,16.328
 470000,2993601,16.375
 471000,3000440,16.422
 472000,3007280,16.484
 473000,3014121,16.516
 474000,3020963,16.578
 475000,3027806,16.641
 476000,3034650,16.594
 477000,3041495,16.547
 478000,3048341,16.703
 479000,3055188,16.688
 480000,3062036,16.797
 481000,3068885,16.812
 482000,3075734,16.750
 483000,3082585,16.828
 484000,3089437,16.922
 485000,3096290,16.875
 486000,3103143,16.969
 487000,3109998,17.047
 488000,3116853,17.031
 489000,3123710,17.031
 490000,3130568,17.172
 491000,3137426,17.141
 492000,3144285,17.188
 493000,3151146,17.297
 494000,3158007,17.344
 495000,3164869,17.375
 496000,3171732,17.359
 497000,3178597,17.453
 498000,3185462,17.453
 499000,3192328,17.469
 500000,3199195,17.562
 501000,3206062,17.547
 502000,3212931,17.562
 503000,3219801,17.781
 504000,3226672,17.812
 505000,3233543,17.797
 506000,3240416,17.766
 507000,3247289,17.844
 508000,3254163,17.938
 509000,3261039,17.969
 510000,3267915,17.969
 511000,3274792,18.078
 512000,3281670,18.062
 513000,3288549,18.062
 514000,3295429,18.078
 515000,3302310,17.875
 516000,3309191,18.203
 517000,3316074,18.062
 518000,3322957,18.234
 519000,3329842,18.219
 520000,3336727,18.281
 521000,3343613,18.297
 522000,3350500,18.391
 523000,3357388,18.266
 524000,3364277,18.453
 525000,3371166,18.562
 526000,3378057,18.422
 527000,3384949,18.359
 528000,3391841,18.578
 529000,3398734,18.781
 530000,3405628,18.328
 531000,3412523,18.766
 532000,3419419,18.906
 533000,3426316,18.812
 534000,3433214,18.891
 535000,3440112,19.000
 536000,3447012,18.906
 537000,3453912,19.016
 538000,3460813,19.047
 539000,3467715,19.109
 540000,3474618,19.141
 541000,3481521,19.156
 542000,3488426,19.219
 543000,3495331,19.281
 544000,3502238,19.250
 545000,3509145,19.312
 546000,3516053,19.406
 547000,3522962,19.391
 548000,3529872,19.312
 549000,3536782,19.484
 550000,3543694,19.578
 551000,3550606,19.578
 552000,3557519,19.625
 553000,3564433,19.531
 554000,3571348,19.812
 555000,3578263,19.781
 556000,3585180,19.734
 557000,3592097,19.797
 558000,3599015,19.844
 559000,3605934,19.875
 560000,3612854,19.953
 561000,3619775,19.984
 562000,3626696,20.000
 563000,3633619,20.062
 564000,3640542,20.094
 565000,3647466,20.125
 566000,3654391,20.172
 567000,3661316,20.141
 568000,3668243,20.234
 569000,3675170,20.203
 570000,3682098,20.344
 571000,3689027,20.281
 572000,3695957,20.391
 573000,3702887,20.484
 574000,3709819,20.438
 575000,3716751,20.531
 576000,3723684,20.609
 577000,3730617,20.609
 578000,3737552,20.594
 579000,3744487,20.703
 580000,3751423,20.672
 581000,3758360,20.750
 582000,3765298,20.750
 583000,3772237,20.828
 584000,3779176,20.969
 585000,3786116,20.922
 586000,3793057,20.938
 587000,3799999,21.016
 588000,3806941,21.031
 589000,3813885,21.156
 590000,3820829,21.172
 591000,3827774,21.250
 592000,3834719,21.203
 593000,3841666,21.250
 594000,3848613,21.250
 595000,3855561,21.266
 596000,3862510,21.469
 597000,3869459,21.344
 598000,3876410,21.406
 599000,3883361,21.453
 600000,3890313,21.562
 601000,3897266,21.516
 602000,3904219,21.562
 603000,3911173,21.703
 604000,3918128,21.625
 605000,3925084,21.672
 606000,3932041,21.797
 607000,3938998,21.656
 608000,3945956,21.750
 609000,3952915,21.891
 610000,3959875,21.906
 611000,3966835,21.938
 612000,3973797,21.953
 613000,3980759,22.031
 614000,3987721,22.109
 615000,3994685,22.078
 616000,4001649,22.094
 617000,4008614,22.156
 618000,4015580,22.125
 619000,4022546,22.156
 620000,4029513,22.250
 621000,4036481,22.312
 622000,4043450,22.359
 623000,4050420,22.375
 624000,4057390,22.484
 625000,4064361,22.500
 626000,4071333,22.547
 627000,4078305,22.547
 628000,4085278,22.594
 629000,4092252,22.547
 630000,4099227,22.594
 631000,4106202,22.625
 632000,4113178,22.750
 633000,4120155,22.703
 634000,4127133,22.797
 635000,4134111,22.906
 636000,4141091,22.938
 637000,4148070,22.844
 638000,4155051,23.031
 639000,4162032,23.031
 640000,4169014,23.031
 641000,4175997,23.141
 642000,4182981,23.156
 643000,4189965,23.188
 644000,4196950,23.344
 645000,4203935,23.281
 646000,4210922,23.344
 647000,4217909,23.297
 648000,4224897,23.391
 649000,4231885,23.547
 650000,4238874,23.500
 651000,4245864,23.609
 652000,4252855,23.578
 653000,4259846,23.562
 654000,4266839,23.703
 655000,4273831,23.688
 656000,4280825,23.797
 657000,4287819,23.781
 658000,4294814,23.781
 659000,4301810,23.891
 660000,4308806,23.938
 661000,4315803,23.906
 662000,4322801,23.984
 663000,4329800,24.031
 664000,4336799,24.047
 665000,4343799,24.172
 666000,4350799,24.078
 667000,4357801,24.078
 668000,4364803,24.219
 669000,4371805,24.250
 670000,4378809,24.312
 671000,4385813,24.391
 672000,4392818,24.391
 673000,4399823,24.484
 674000,4406829,24.484
 675000,4413836,24.578
 676000,4420844,24.516
 677000,4427852,24.578
 678000,4434861,24.703
 679000,4441871,24.703
 680000,4448881,24.734
 681000,4455892,24.812
 682000,4462904,24.797
 683000,4469916,24.734
 684000,4476929,24.906
 685000,4483943,24.844
 686000,4490957,24.953
 687000,4497972,24.922
 688000,4504988,25.016
 689000,4512005,25.078
 690000,4519022,25.078
 691000,4526040,25.094
 692000,4533058,25.188
 693000,4540077,25.188
 694000,4547097,25.219
 695000,4554117,25.281
 696000,4561139,25.250
 697000,4568160,25.297
 698000,4575183,25.281
 699000,4582206,25.422
 700000,4589230,25.266
 701000,4596254,25.547
 702000,4603279,25.109
 703000,4610305,25.188
 704000,4617331,25.062
 705000,4624359,25.578
 706000,4631386,25.703
 707000,4638415,25.641
 708000,4645444,25.422
 709000,4652473,25.672
 710000,4659504,25.781
 711000,4666535,25.672
 712000,4673567,25.703
 713000,4680599,25.688
 714000,4687632,25.781
 715000,4694665,26.234
 716000,4701700,25.969
 717000,4708735,26.172
 718000,4715770,26.172
 719000,4722807,26.281
 720000,4729843,26.234
 721000,4736881,26.234
 722000,4743919,26.516
 723000,4750958,26.578
 724000,4757997,26.578
 725000,4765038,26.609
 726000,4772078,26.625
 727000,4779120,26.688
 728000,4786162,26.703
 729000,4793204,26.750
 730000,4800248,26.844
 731000,4807292,26.844
 732000,4814336,26.922
 733000,4821381,26.953
 734000,4828427,26.938
 735000,4835474,27.000
 736000,4842521,27.094
 737000,4849568,27.141
 738000,4856617,27.156
 739000,4863666,27.219
 740000,4870715,27.234
 741000,4877766,27.281
 742000,4884817,27.328
 743000,4891868,27.375
 744000,4898920,27.438
 745000,4905973,27.469
 746000,4913026,27.516
 747000,4920080,27.531
 748000,4927135,27.594
 749000,4934190,27.672
 750000,4941246,27.688
 751000,4948303,27.719
 752000,4955360,27.750
 753000,4962418,27.469
 754000,4969476,27.734
 755000,4976535,27.766
 756000,4983595,27.812
 757000,4990655,27.875
 758000,4997716,27.859
 759000,5004777,27.938
 760000,5011839,28.000
 761000,5018902,28.031
 762000,5025965,28.031
 763000,5033029,28.109
 764000,5040093,28.125
 765000,5047158,28.156
 766000,5054224,28.219
 767000,5061290,28.250
 768000,5068357,28.297
 769000,5075425,28.344
 770000,5082493,28.391
 771000,5089562,28.375
 772000,5096631,28.469
 773000,5103701,28.500
 774000,5110771,28.531
 775000,5117842,28.594
 776000,5124914,28.500
 777000,5131986,28.641
 778000,5139059,28.703
 779000,5146133,28.766
 780000,5153207,28.812
 781000,5160282,28.797
 782000,5167357,28.875
 783000,5174433,28.922
 784000,5181509,28.953
 785000,5188587,29.016
 786000,5195664,28.984
 787000,5202742,29.078
 788000,5209821,29.109
 789000,5216901,29.156
 790000,5223981,29.219
 791000,5231061,29.219
 792000,5238143,29.297
 793000,5245224,29.312
 794000,5252307,29.344
 795000,5259390,29.344
 796000,5266473,29.422
 797000,5273558,29.453
 798000,5280642,29.484
 799000,5287728,29.531
 800000,5294813,29.578
 801000,5301900,29.609
 802000,5308987,29.656
 803000,5316075,29.672
 804000,5323163,29.672
 805000,5330252,29.797
 806000,5337341,29.812
 807000,5344431,29.891
 808000,5351521,29.891
 809000,5358613,29.969
 810000,5365704,29.969
 811000,5372796,30.031
 812000,5379889,30.109
 813000,5386983,30.078
 814000,5394077,30.203
 815000,5401171,30.188
 816000,5408266,30.234
 817000,5415362,30.281
 818000,5422458,30.281
 819000,5429555,30.359
 820000,5436652,30.391
 821000,5443750,30.453
 822000,5450849,30.516
 823000,5457948,30.562
 824000,5465047,30.578
 825000,5472147,30.641
 826000,5479248,30.688
 827000,5486350,30.688
 828000,5493451,30.750
 829000,5500554,30.781
 830000,5507657,30.828
 831000,5514760,30.875
 832000,5521865,30.938
 833000,5528969,30.922
 834000,5536074,30.984
 835000,5543180,31.078
 836000,5550287,30.984
 837000,5557393,31.109
 838000,5564501,31.156
 839000,5571609,31.188
 840000,5578717,31.250
 841000,5585826,31.297
 842000,5592936,31.344
 843000,5600046,31.391
 844000,5607157,31.391
 845000,5614268,31.469
 846000,5621380,31.469
 847000,5628493,31.547
 848000,5635606,31.578
 849000,5642719,31.609
 850000,5649833,31.641
 851000,5656948,31.703
 852000,5664063,31.750
 853000,5671179,31.812
 854000,5678295,31.859
 855000,5685412,31.844
 856000,5692529,31.875
 857000,5699647,31.953
 858000,5706766,32.000
 859000,5713885,32.047
 860000,5721004,32.078
 861000,5728124,32.094
 862000,5735245,32.109
 863000,5742366,32.203
 864000,5749488,32.219
 865000,5756610,32.266
 866000,5763733,32.312
 867000,5770856,32.344
 868000,5777980,32.422
 869000,5785105,32.438
 870000,5792229,32.484
 871000,5799355,32.547
 872000,5806481,32.594
 873000,5813607,32.578
 874000,5820734,32.672
 875000,5827862,32.688
 876000,5834990,32.734
 877000,5842119,32.781
 878000,5849248,32.797
 879000,5856378,32.859
 880000,5863508,32.906
 881000,5870639,32.969
 882000,5877770,33.000
 883000,5884902,33.031
 884000,5892034,33.062
 885000,5899167,33.125
 886000,5906301,33.172
 887000,5913435,33.219
 888000,5920569,33.266
 889000,5927704,33.297
 890000,5934840,33.344
 891000,5941976,33.344
 892000,5949112,33.312
 893000,5956249,33.453
 894000,5963387,33.516
 895000,5970525,33.547
 896000,5977664,33.531
 897000,5984803,33.609
 898000,5991942,33.672
 899000,5999083,33.734
 900000,6006223,33.750
 901000,6013364,33.797
 902000,6020506,33.859
 903000,6027648,33.906
 904000,6034791,33.922
 905000,6041934,33.969
 906000,6049078,34.047
 907000,6056222,34.078
 908000,6063367,34.094
 909000,6070513,34.156
 910000,6077658,34.203
 911000,6084805,34.250
 912000,6091952,34.281
 913000,6099099,34.328
 914000,6106247,34.406
 915000,6113395,34.406
 916000,6120544,34.422
 917000,6127693,34.531
 918000,6134843,34.531
 919000,6141994,34.578
 920000,6149145,34.594
 921000,6156296,34.672
 922000,6163448,34.703
 923000,6170600,34.750
 924000,6177753,34.781
 925000,6184907,34.797
 926000,6192061,34.875
 927000,6199215,34.938
 928000,6206370,34.922
 929000,6213526,35.000
 930000,6220682,35.047
 931000,6227838,35.078
 932000,6234995,35.156
 933000,6242152,35.188
 934000,6249310,35.234
 935000,6256469,35.203
 936000,6263628,35.250
 937000,6270787,35.234
 938000,6277947,35.359
 939000,6285107,35.406
 940000,6292268,35.438
 941000,6299429,35.453
 942000,6306591,35.500
 943000,6313754,35.547
 944000,6320917,35.469
 945000,6328080,35.625
 946000,6335244,35.703
 947000,6342408,35.703
 948000,6349573,35.781
 949000,6356738,35.812
 950000,6363904,35.844
 951000,6371070,35.891
 952000,6378237,35.922
 953000,6385405,35.922
 954000,6392572,36.016
 955000,6399741,36.047
 956000,6406909,36.047
 957000,6414079,36.078
 958000,6421248,36.109
 959000,6428418,36.172
 960000,6435589,36.188
 961000,6442760,36.281
 962000,6449932,36.219
 963000,6457104,36.312
 964000,6464277,36.328
 965000,6471450,35.078
 966000,6478623,32.609
 967000,6485797,32.688
 968000,6492972,32.750
 969000,6500147,32.812
 970000,6507322,32.828
 971000,6514498,32.859
 972000,6521675,32.875
 973000,6528852,32.922
 974000,6536029,32.938
 975000,6543207,33.000
 976000,6550386,33.000
 977000,6557564,33.078
 978000,6564744,33.109
 979000,6571924,33.172
 980000,6579104,33.172
 981000,6586285,33.203
 982000,6593466,33.234
 983000,6600648,33.312
 984000,6607830,33.281
 985000,6615012,33.375
 986000,6622196,33.422
 987000,6629379,33.453
 988000,6636563,33.453
 989000,6643748,33.516
 990000,6650933,33.562
 991000,6658118,33.578
 992000,6665304,33.641
 993000,6672490,33.688
 994000,6679677,33.703
 995000,6686865,33.750
 996000,6694053,33.766
 997000,6701241,33.859
 998000,6708430,33.859
 999000,6715619,33.875
1000000,6722809,33.969
Happy plotting! Dinosaur (talk) 02:45, 10 April 2016 (UTC)