Commit d8bbf6cb47b1b26cb9f4bd10a012fb8e6839ceeb

Added a speed test program for PRNGs and a method
for plotting the results with gnuplot
results/.plotTimings.gp.swp
(3 / 0)
Binary files differ
results/plotTimings.gp
(9 / 0)
  
1set size ratio 0.2
2set key outside right
3set ytics 1
4set datafile separator ","
5plot "<sed '1d' prng-cong-densities.csv | sort -n -t',' -k2 " using 2:($1/2e09) lw 3 w li ti "LCG", \
6 "<sed '1d' prng-xorshift-densities.csv | sort -n -t',' -k2 " using 2:($1/2e09) lw 3 w li ti "Xorshift", \
7 "<sed '1d' prng-mwc256-densities.csv | sort -n -t',' -k2 " using 2:($1/2e09) lw 3 w li ti "MWC_{256}", \
8 "<sed '1d' prng-mwc4096-densities.csv | sort -n -t',' -k2 " using 2:($1/2e09) lw 3 w li ti "MWC_{4096}", \
9 "<sed '1d' prng-mersenne-densities.csv | sort -n -t',' -k2 " using 2:($1/2e09) lw 3 w li ti "Mersenne Twister"
results/prng-cong-densities.csv
(101 / 0)
  
1execution time,probability
20.0,1.483067306889776e-7
30.0,1.4835376165395087e-7
40.0,1.4840079261892414e-7
55677044.148644692,1.484478235838974e-7
61.1611811387254074e7,1.4849485454887066e-7
71.641371796405123e7,1.4854188551384392e-7
82.0082763879036162e7,1.4858891647881718e-7
92.261894913220887e7,1.4863594744379045e-7
102.402227372356935e7,1.486829784087637e-7
112.4292737653117605e7,1.4873000937373697e-7
122.3430340920853633e7,1.4877704033871023e-7
132.143508352677744e7,1.488240713036835e-7
141.8306965470889017e7,1.4887110226865676e-7
151.4045986753188375e7,1.4891813323363002e-7
168652147.373675501,1.4896516419860328e-7
172125447.3323504045,1.4901219516357654e-7
180.0,1.490592261285498e-7
190.0,1.4910625709352307e-7
200.0,1.4915328805849633e-7
210.0,1.492003190234696e-7
220.0,1.4924734998844286e-7
230.0,1.4929438095341612e-7
240.0,1.4934141191838938e-7
250.0,1.4938844288336264e-7
260.0,1.494354738483359e-7
270.0,1.4948250481330917e-7
280.0,1.4952953577828243e-7
290.0,1.495765667432557e-7
300.0,1.4962359770822895e-7
3179470.88602252015,1.4967062867320222e-7
326925739.856959651,1.4971765963817548e-7
332.8475267877776437e7,1.4976469060314874e-7
341.0234343640531391e8,1.49811721568122e-7
352.2554961461807597e8,1.4985875253309527e-7
363.756351919240093e8,1.4990578349806853e-7
375.49507520046645e8,1.499528144630418e-7
387.269864540871596e8,1.4999984542801505e-7
399.078003701557653e8,1.5004687639298831e-7
401.0707586230965358e9,1.5009390735796158e-7
411.216501299384657e9,1.5014093832293484e-7
421.3124656214720037e9,1.501879692879081e-7
431.3744478527567482e9,1.5023500025288136e-7
441.4003288832818317e9,1.5028203121785463e-7
451.3544602298208487e9,1.503290621828279e-7
461.259629679401481e9,1.5037609314780115e-7
471.1656245420779831e9,1.5042312411277444e-7
481.074920441658558e9,1.504701550777477e-7
499.685175232511926e8,1.5051718604272096e-7
508.630239616696738e8,1.5056421700769423e-7
517.5038914276587e8,1.506112479726675e-7
526.502998084662277e8,1.5065827893764075e-7
535.529135062316607e8,1.50705309902614e-7
544.783596261987844e8,1.5075234086758728e-7
553.9515327155199933e8,1.5079937183256054e-7
563.1690829463770336e8,1.508464027975338e-7
572.674290374693143e8,1.5089343376250706e-7
582.0884922399009177e8,1.5094046472748032e-7
591.62328466527177e8,1.5098749569245359e-7
601.3793652385162547e8,1.5103452665742685e-7
611.2135867505027491e8,1.510815576224001e-7
621.0345960151285881e8,1.5112858858737337e-7
638.329027359054914e7,1.5117561955234664e-7
646.2033394327322125e7,1.512226505173199e-7
654.243819491684855e7,1.5126968148229316e-7
662.7206987711125094e7,1.5131671244726642e-7
672.1266954482442215e7,1.5136374341223968e-7
681.8065533153222073e7,1.5141077437721295e-7
691.3731251162189707e7,1.514578053421862e-7
708264108.509345117,1.5150483630715947e-7
711664105.1946883018,1.5155186727213273e-7
723641585.6297845966,1.51598898237106e-7
739921859.00266241,1.5164592920207926e-7
741.5069271713727998e7,1.5169296016705252e-7
751.9083823762981363e7,1.5173999113202578e-7
762.19655151504225e7,1.5178702209699904e-7
772.395147594618146e7,1.518340530619723e-7
783.1389581112533744e7,1.5188108402694557e-7
793.656196495526157e7,1.5192811499191883e-7
803.946862747436496e7,1.519751459568921e-7
814.010956866984388e7,1.5202217692186536e-7
823.848478854169837e7,1.5206920788683862e-7
833.4594287089928396e7,1.5211623885181188e-7
842.8438064314533975e7,1.5216326981678514e-7
852.30941123596725e7,1.522103007817584e-7
862.29788095000607e7,1.5225733174673167e-7
872.6131898687611364e7,1.5230436271170493e-7
882.701926655153758e7,1.523513936766782e-7
892.564091309183934e7,1.5239842464165145e-7
902.1996838308516648e7,1.5244545560662472e-7
912.3430340920853633e7,1.5249248657159798e-7
922.4292737653117605e7,1.5253951753657124e-7
932.402227372356935e7,1.525865485015445e-7
942.261894913220887e7,1.5263357946651777e-7
952.0082763879036162e7,1.5268061043149103e-7
961.641371796405123e7,1.527276413964643e-7
971.1611811387254074e7,1.5277467236143755e-7
985677044.148644692,1.5282170332641081e-7
990.0,1.5286873429138408e-7
1000.0,1.5291576525635734e-7
1010.0,1.529627962213306e-7
results/prng-cong-timings.csv
(101 / 0)
  
1sample,execution time
20,1.50498380959573e-7
31,1.506018216314135e-7
42,1.503949402877325e-7
53,1.5056227078629803e-7
64,1.5026716063428247e-7
75,1.5054705892279208e-7
86,1.4993554200985261e-7
97,1.503949402877325e-7
108,1.506778809489433e-7
119,1.5038277079692774e-7
1210,1.5108251651820176e-7
1311,1.50498380959573e-7
1412,1.5056227078629803e-7
1513,1.505713979044016e-7
1614,1.506748385762421e-7
1715,1.5017893182594791e-7
1816,1.5002377081818717e-7
1917,1.5011199962652172e-7
2018,1.5008766064491217e-7
2119,1.5058660976790756e-7
2220,1.5073872840296714e-7
2321,1.50227609789167e-7
2422,1.5048316909606705e-7
2523,1.4721566081498754e-7
2624,1.5030671147939797e-7
2725,1.4998726234577285e-7
2826,1.5041927926934205e-7
2927,1.4978342337479306e-7
3028,1.5030366910669678e-7
3129,1.5044666062365276e-7
3230,1.5058660976790756e-7
3331,1.504314487601468e-7
3432,1.5072655891216238e-7
3533,1.496526013486418e-7
3634,1.5041015215123848e-7
3735,1.503949402877325e-7
3836,1.5054705892279208e-7
3937,1.5016371996244196e-7
4038,1.5017893182594791e-7
4139,1.4978342337479306e-7
4240,1.5030366910669678e-7
4341,1.50498380959573e-7
4442,1.504709996052623e-7
4543,1.5031888097020273e-7
4644,1.497590843931835e-7
4745,1.5094560974664815e-7
4846,1.5035538944261702e-7
4947,1.5038277079692774e-7
5048,1.5062616061302306e-7
5149,1.5086650805641717e-7
5250,1.500785335268086e-7
5351,1.5095777923745291e-7
5452,1.5030366910669678e-7
5553,1.5065049959463259e-7
5654,1.495522030495025e-7
5755,1.5055922841359684e-7
5856,1.5041015215123848e-7
5957,1.5027933012508723e-7
6058,1.4994771150065738e-7
6159,1.499112030282431e-7
6260,1.4960392338542276e-7
6361,1.5044666062365276e-7
6462,1.500754911541074e-7
6563,1.502549911434777e-7
6664,1.508269572113017e-7
6765,1.5041927926934205e-7
6866,1.5070221993055283e-7
6967,1.4974387252967755e-7
7068,1.5036755893342178e-7
7169,1.4987165218312759e-7
7270,1.4989599116473714e-7
7371,1.501515504716372e-7
7472,1.503310504610075e-7
7573,1.5037060130612297e-7
7674,1.5003898268169312e-7
7775,1.5013938098083244e-7
7876,1.5041927926934205e-7
7977,1.5031888097020273e-7
8078,1.4992337251904785e-7
8179,1.5257632151448673e-7
8280,1.5122550803515774e-7
8381,1.5110989787251247e-7
8482,1.5016371996244196e-7
8583,1.5013938098083244e-7
8684,1.5048316909606705e-7
8785,1.503949402877325e-7
8886,1.5016371996244196e-7
8987,1.5071438942135762e-7
9088,1.4995988099146214e-7
9189,1.50291499615892e-7
9290,1.4982297421990854e-7
9391,1.5062311824032187e-7
9492,1.4985948269232282e-7
9593,1.5037972842422655e-7
9694,1.5006332166330265e-7
9795,1.5081478772049693e-7
9896,1.504709996052623e-7
9997,1.5084216907480765e-7
10098,1.4987165218312759e-7
10199,1.5031888097020273e-7
results/prng-mersenne-densities.csv
(101 / 0)
  
1execution time,probability
20.0,1.6821739131428646e-7
30.0,1.6825754063223444e-7
40.0,1.682976899501824e-7
54228085.561822291,1.6833783926813038e-7
61.0364416946738511e7,1.6837798858607833e-7
71.5489235970000343e7,1.6841813790402631e-7
81.9602542631601036e7,1.6845828722197427e-7
92.2704336931546003e7,1.6849843653992225e-7
102.4794618869831163e7,1.685385858578702e-7
112.5873388446459264e7,1.685787351758182e-7
122.594064566142889e7,1.6861888449376614e-7
132.499639051474013e7,1.6865903381171412e-7
142.4877101952368293e7,1.6869918312966208e-7
153.238257368935277e7,1.6873933244761006e-7
164.0057091986431375e7,1.6877948176555804e-7
174.469707319853163e7,1.68819631083506e-7
184.630251732565963e7,1.6885978040145398e-7
194.678432432802494e7,1.6889992971940193e-7
205.034553596350047e7,1.6894007903734992e-7
215.1883722875658125e7,1.6898022835529787e-7
225.1398885064499944e7,1.6902037767324585e-7
234.889102253002653e7,1.690605269911938e-7
244.436013527223461e7,1.691006763091418e-7
254.32352745020822e7,1.6914082562708974e-7
264.115800157018856e7,1.6918097494503773e-7
274.217218985616411e7,1.6922112426298568e-7
284.184364154403898e7,1.6926127358093366e-7
295.767024296327399e7,1.6930142289888164e-7
308.954398697229305e7,1.693415722168296e-7
311.3177769647414264e8,1.6938172153477758e-7
321.8526579518598264e8,1.6942187085272554e-7
332.7204401663277227e8,1.6946202017067352e-7
343.668795205872303e8,1.6950216948862147e-7
354.678902438555268e8,1.6954231880656945e-7
365.860565669670334e8,1.695824681245174e-7
377.058332927340297e8,1.696226174424654e-7
388.180624513236533e8,1.6966276676041335e-7
399.352802171769794e8,1.6970291607836133e-7
401.0238337182020354e9,1.6974306539630928e-7
411.0800375615808737e9,1.6978321471425726e-7
421.1231448552794242e9,1.6982336403220525e-7
431.1318104315821705e9,1.698635133501532e-7
441.1171362765145786e9,1.6990366266810118e-7
451.1022628880605683e9,1.6994381198604914e-7
461.0716058550719137e9,1.6998396130399712e-7
471.0518106159150914e9,1.7002411062194508e-7
481.0228274099898909e9,1.7006425993989306e-7
499.669375111648484e8,1.70104409257841e-7
509.135082026190326e8,1.70144558575789e-7
518.834057344620632e8,1.7018470789373695e-7
528.370307934404006e8,1.7022485721168493e-7
537.980361578558654e8,1.7026500652963289e-7
547.52271876167854e8,1.7030515584758087e-7
556.820334144413583e8,1.7034530516552885e-7
566.15800885226258e8,1.703854544834768e-7
575.35531808584038e8,1.7042560380142479e-7
584.400178630872004e8,1.7046575311937274e-7
593.619922148117971e8,1.7050590243732072e-7
602.947898945229189e8,1.7054605175526868e-7
612.416365517936263e8,1.7058620107321666e-7
621.941783438462299e8,1.7062635039116461e-7
631.4763388400826257e8,1.706664997091126e-7
641.0793687513525064e8,1.7070664902706055e-7
658.562623233731988e7,1.7074679834500853e-7
667.901198203211398e7,1.707869476629565e-7
677.41763603297483e7,1.7082709698090447e-7
686.55813934142908e7,1.7086724629885245e-7
696.4251005459472165e7,1.709073956168004e-7
706.2691560441648826e7,1.709475449347484e-7
715.809757833885322e7,1.7098769425269634e-7
725.09880075518042e7,1.7102784357064432e-7
734.8160147704525486e7,1.7106799288859228e-7
744.3309263133928046e7,1.7110814220654026e-7
753.643535384001827e7,1.7114829152448822e-7
762.75384198227871e7,1.711884408424362e-7
771.661846108224626e7,1.7122859016038415e-7
785429051.210952049,1.7126873947833213e-7
790.0,1.7130888879628012e-7
800.0,1.7134903811422807e-7
810.0,1.7138918743217605e-7
820.0,1.71429336750124e-7
830.0,1.71469486068072e-7
840.0,1.7150963538601994e-7
855102429.35642771,1.7154978470396793e-7
861.1104246311404675e7,1.7158993402191588e-7
871.6094550904727165e7,1.7163008333986386e-7
882.00733431363886e7,1.7167023265781182e-7
892.3040623006394226e7,1.717103819757598e-7
902.499639051474013e7,1.7175053129370775e-7
912.594064566142889e7,1.7179068061165574e-7
922.5873388446458887e7,1.7183082992960372e-7
932.4794618869831163e7,1.7187097924755167e-7
942.2704336931544293e7,1.7191112856549965e-7
951.9602542631601036e7,1.719512778834476e-7
961.54892359699973e7,1.719914272013956e-7
971.0364416946738511e7,1.7203157651934355e-7
984228085.5618179105,1.7207172583729153e-7
990.0,1.7211187515523948e-7
1000.0,1.7215202447318746e-7
1010.0,1.7219217379113542e-7
results/prng-mersenne-timings.csv
(101 / 0)
  
1sample,execution time
20,1.6968170267469248e-7
31,1.6973648792911764e-7
42,1.697673046347318e-7
53,1.6998302157403094e-7
64,1.6955158769543268e-7
75,1.702706441597631e-7
86,1.766291577514851e-7
97,1.7253738406160475e-7
108,1.708150726256133e-7
119,1.7404740263669868e-7
1210,1.7090067458565262e-7
1311,1.7038363874701504e-7
1412,1.7140401411068393e-7
1513,1.7026722008136154e-7
1614,1.7034254980619615e-7
1715,1.6959610071465313e-7
1816,1.697673046347318e-7
1917,1.6999671788763723e-7
2018,1.6985290659477114e-7
2119,1.7203746861497503e-7
2220,1.6947968204899963e-7
2321,1.697673046347318e-7
2422,1.7150673646273113e-7
2523,1.6973648792911764e-7
2624,1.7095888391847937e-7
2725,1.7111639152495176e-7
2826,1.7163342736358937e-7
2927,1.6986660290837744e-7
3028,1.6975018424272394e-7
3129,1.6952419506822008e-7
3230,1.6940777640256658e-7
3331,1.6945228942178703e-7
3432,1.697810009483381e-7
3533,1.6934956706973983e-7
3634,1.6982551396755854e-7
3735,1.6975018424272394e-7
3836,1.6943859310818074e-7
3937,1.6913385013044071e-7
4038,1.6969539898829877e-7
4139,1.7161973104998307e-7
4240,1.7140401411068393e-7
4341,1.6916466683605487e-7
4442,1.6936326338334613e-7
4543,1.6955158769543268e-7
4644,1.6932217444252726e-7
4745,1.7101366917290456e-7
4846,1.6919205946326746e-7
4947,1.702843404733694e-7
5048,1.6970909530190504e-7
5149,1.697946972619444e-7
5250,1.7051375372627484e-7
5351,1.7157521803076262e-7
5452,1.7181832759727433e-7
5553,1.6973991200751923e-7
5654,1.6902085554318877e-7
5755,1.6944886534338547e-7
5856,1.7148961607072327e-7
5957,1.7046924070705436e-7
6058,1.703870628254166e-7
6159,1.7090067458565262e-7
6260,1.6982208988915698e-7
6361,1.6963718965547202e-7
6462,1.7009601616128285e-7
6563,1.7123281019060526e-7
6664,1.6880513860388966e-7
6765,1.6957898032264527e-7
6866,1.6937695969695243e-7
6967,1.6944886534338547e-7
7068,1.6955158769543268e-7
7169,1.6922287616888162e-7
7270,1.6945228942178703e-7
7371,1.6902085554318877e-7
7472,1.6955158769543268e-7
7573,1.69147546444047e-7
7674,1.6942489679457447e-7
7775,1.6930847812892097e-7
7876,1.6942147271617288e-7
7977,1.6943516902977918e-7
8078,1.6893525358314946e-7
8179,1.6963718965547202e-7
8280,1.6928108550170837e-7
8381,1.6929478181531467e-7
8482,1.6940777640256658e-7
8583,1.6910645750322812e-7
8684,1.6923657248248792e-7
8785,1.6946598573539333e-7
8886,1.6956870808744054e-7
8987,1.6966800636108618e-7
9088,1.692639651097005e-7
9189,1.6932217444252726e-7
9290,1.6912015381683442e-7
9391,1.6907906487601552e-7
9492,1.6943859310818074e-7
9593,1.6910303342482656e-7
9694,1.6930847812892097e-7
9795,1.6917493907125958e-7
9896,1.6907906487601552e-7
9997,1.6940777640256658e-7
10098,1.6923657248248792e-7
10199,1.6947968204899963e-7
results/prng-mwc256-densities.csv
(101 / 0)
  
1execution time,probability
20.0,1.6715149773647335e-7
30.0,1.6731913108498098e-7
4212821.83056665768,1.6748676443348863e-7
51.054462475315176e7,1.6765439778199626e-7
61.3220498010179962e8,1.678220311305039e-7
73.352431466778465e8,1.6798966447901151e-7
85.0368472563328743e8,1.6815729782751917e-7
96.319667293033159e8,1.683249311760268e-7
107.165991757819422e8,1.6849256452453442e-7
117.549126541049538e8,1.6866019787304208e-7
127.469071642723389e8,1.688278312215497e-7
136.925827062841058e8,1.6899546457005733e-7
145.919392801402363e8,1.6916309791856498e-7
154.449768858407619e8,1.693307312670726e-7
162.5338923041618976e8,1.6949836461558024e-7
177.113781544188994e7,1.6966599796408787e-7
181.2757517745786235e7,1.6983363131259552e-7
195935554.900059864,1.7000126466110315e-7
20240575.6846888439,1.7016889800961077e-7
210.0,1.7033653135811843e-7
220.0,1.7050416470662605e-7
230.0,1.7067179805513368e-7
240.0,1.708394314036413e-7
250.0,1.7100706475214896e-7
260.0,1.711746981006566e-7
270.0,1.7134233144916422e-7
280.0,1.7150996479767187e-7
290.0,1.716775981461795e-7
300.0,1.7184523149468713e-7
310.0,1.7201286484319478e-7
320.0,1.721804981917024e-7
330.0,1.7234813154021003e-7
340.0,1.7251576488871766e-7
350.0,1.7268339823722531e-7
360.0,1.7285103158573294e-7
370.0,1.7301866493424057e-7
380.0,1.7318629828274822e-7
390.0,1.7335393163125585e-7
400.0,1.7352156497976348e-7
410.0,1.7368919832827113e-7
420.0,1.7385683167677876e-7
430.0,1.7402446502528638e-7
440.0,1.74192098373794e-7
450.0,1.7435973172230167e-7
460.0,1.745273650708093e-7
470.0,1.7469499841931692e-7
480.0,1.7486263176782457e-7
490.0,1.750302651163322e-7
500.0,1.7519789846483983e-7
510.0,1.7536553181334746e-7
520.0,1.755331651618551e-7
530.0,1.7570079851036274e-7
540.0,1.7586843185887036e-7
550.0,1.7603606520737802e-7
560.0,1.7620369855588564e-7
570.0,1.7637133190439327e-7
580.0,1.7653896525290093e-7
590.0,1.7670659860140855e-7
600.0,1.7687423194991618e-7
610.0,1.770418652984238e-7
620.0,1.7720949864693146e-7
630.0,1.773771319954391e-7
640.0,1.7754476534394672e-7
650.0,1.7771239869245437e-7
660.0,1.77880032040962e-7
670.0,1.7804766538946962e-7
680.0,1.7821529873797725e-7
690.0,1.783829320864849e-7
700.0,1.7855056543499253e-7
710.0,1.7871819878350016e-7
720.0,1.788858321320078e-7
730.0,1.7905346548051544e-7
740.0,1.7922109882902307e-7
750.0,1.7938873217753072e-7
760.0,1.7955636552603835e-7
770.0,1.7972399887454597e-7
780.0,1.798916322230536e-7
790.0,1.8005926557156126e-7
800.0,1.8022689892006888e-7
810.0,1.803945322685765e-7
820.0,1.8056216561708416e-7
830.0,1.807297989655918e-7
840.0,1.8089743231409942e-7
850.0,1.8106506566260705e-7
860.0,1.812326990111147e-7
870.0,1.8140033235962233e-7
881149508.216812134,1.8156796570812995e-7
893403696.7350133476,1.817355990566376e-7
905190016.888005912,1.8190323240514523e-7
916508468.675790221,1.8207086575365286e-7
927359052.098366373,1.8223849910216052e-7
937741767.155734098,1.8240613245066814e-7
947656613.847893566,1.8257376579917577e-7
957103592.17484478,1.827413991476834e-7
966082702.136587539,1.8290903249619105e-7
974593943.733122168,1.8307666584469868e-7
982637316.9644485405,1.832442991932063e-7
99212821.83056623765,1.8341193254171396e-7
1000.0,1.8357956589022159e-7
1010.0,1.837471992387292e-7
results/prng-mwc256-timings.csv
(101 / 0)
  
1sample,execution time
20,1.6808207340050562e-7
31,1.6825245757766674e-7
42,1.6877042547623657e-7
53,1.6884198683064424e-7
64,1.6802414278027082e-7
75,1.6843988017254398e-7
86,1.6828312672955576e-7
97,1.6819452695743197e-7
108,1.6809911181822174e-7
119,1.6822519610932097e-7
1210,1.6849781079277877e-7
1311,1.6845351090671688e-7
1412,1.6823882684349386e-7
1513,1.6873975632434755e-7
1614,1.6802414278027082e-7
1715,1.6805481193215985e-7
1816,1.681400040207404e-7
1917,1.6834105734979052e-7
2018,1.681263732865675e-7
2119,1.6801051204609795e-7
2220,1.6846714164088975e-7
2321,1.6803777351444372e-7
2422,1.6802414278027082e-7
2523,1.6820815769160484e-7
2624,1.6802414278027082e-7
2725,1.688249484129281e-7
2826,1.6796621216003606e-7
2927,1.6815363475491328e-7
3028,1.6843988017254398e-7
3129,1.681400040207404e-7
3230,1.6806844266633272e-7
3331,1.686818257041128e-7
3432,1.6825245757766674e-7
3533,1.6846714164088975e-7
3634,1.6802414278027082e-7
3735,1.6832401893207442e-7
3836,1.6822519610932097e-7
3937,1.6806844266633272e-7
4038,1.683819495523092e-7
4139,1.6882835609647134e-7
4240,1.6832742661561765e-7
4341,1.678673893372826e-7
4442,1.6987110726069744e-7
4543,1.6806844266633272e-7
4644,1.686102643497051e-7
4745,1.6819452695743197e-7
4846,1.6851144152695164e-7
4947,1.6859663361553223e-7
5048,1.6821156537514807e-7
5149,1.6840921102065498e-7
5250,1.6832401893207442e-7
5351,1.6859663361553223e-7
5452,1.6851144152695164e-7
5553,1.6819793464097517e-7
5654,1.6846714164088975e-7
5755,1.6834105734979052e-7
5856,1.6818089622325907e-7
5957,1.6802414278027082e-7
6058,1.6871249485600178e-7
6159,1.6821156537514807e-7
6260,1.6810933486885139e-7
6361,1.6845351090671688e-7
6462,1.6849781079277877e-7
6563,1.686102643497051e-7
6664,1.6813659633719718e-7
6765,1.6819793464097517e-7
6866,1.6831379588144475e-7
6967,1.686681949699399e-7
7068,1.6820815769160484e-7
7169,1.6885561756481713e-7
7270,1.6822519610932097e-7
7371,1.6855233372947034e-7
7472,1.683989879700253e-7
7573,1.684569185902601e-7
7674,1.6847054932443297e-7
7775,1.6871249485600178e-7
7876,1.686818257041128e-7
7977,1.6823882684349386e-7
8078,1.6812296560302428e-7
8179,1.68654564235767e-7
8280,1.683376496662473e-7
8381,1.6854211067884066e-7
8482,1.6862730276742122e-7
8583,1.6805481193215985e-7
8684,1.6815363475491328e-7
8785,1.6922705507102837e-7
8886,1.6834105734979052e-7
8987,1.6846714164088975e-7
9088,1.6856937214718643e-7
9189,1.6808207340050562e-7
9290,1.6872612559017468e-7
9391,1.6818089622325907e-7
9492,1.68654564235767e-7
9593,1.6842624943837108e-7
9694,1.6802414278027082e-7
9795,1.6808207340050562e-7
9896,1.686681949699399e-7
9997,1.688522098812739e-7
10098,1.6842624943837108e-7
10199,1.6813659633719718e-7
results/prng-mwc4096-densities.csv
(101 / 0)
  
1execution time,probability
20.0,1.7446231513532108e-7
30.0,1.7453380312044202e-7
40.0,1.7460529110556295e-7
50.0,1.7467677909068387e-7
61338546.37928201,1.747482670758048e-7
73187891.446610932,1.7481975506092574e-7
86176303.12709847,1.7489124304604668e-7
91.414851318960976e7,1.7496273103116762e-7
102.248579936289411e7,1.7503421901628853e-7
113.3164770505363375e7,1.7510570700140947e-7
124.303505863509597e7,1.751771949865304e-7
135.1876347500145316e7,1.7524868297165134e-7
146.076603157762577e7,1.7532017095677228e-7
156.815131115526411e7,1.7539165894189322e-7
167.570175999218822e7,1.7546314692701413e-7
178.332440965765518e7,1.7553463491213506e-7
189.11552519819097e7,1.75606122897256e-7
191.0032706564235236e8,1.7567761088237694e-7
201.0763533178760374e8,1.7574909886749788e-7
211.1327670126917101e8,1.758205868526188e-7
221.1599361514376622e8,1.7589207483773973e-7
231.1578607341138679e8,1.7596356282286066e-7
241.1389851213642564e8,1.760350508079816e-7
251.0989457421721019e8,1.7610653879310254e-7
261.0589594203573225e8,1.7617802677822345e-7
271.0142275683717674e8,1.762495147633444e-7
289.697383105803993e7,1.7632100274846533e-7
299.498545226342484e7,1.7639249073358626e-7
309.174899892924462e7,1.764639787187072e-7
319.089908228166646e7,1.765354667038281e-7
329.131807367327778e7,1.7660695468894905e-7
339.079547531360622e7,1.7667844267407e-7
348.996918521761869e7,1.7674993065919093e-7
358.975180468125162e7,1.7682141864431186e-7
369.131124524218175e7,1.768929066294328e-7
379.456167023510835e7,1.769643946145537e-7
389.85298543089113e7,1.7703588259967465e-7
391.06764999978997e8,1.771073705847956e-7
401.1514943977786817e8,1.7717885856991653e-7
411.2865324010603957e8,1.7725034655503746e-7
421.433153977812472e8,1.7732183454015837e-7
431.5868104659725183e8,1.773933225252793e-7
441.7954998691296938e8,1.7746481051040025e-7
452.0004851522545746e8,1.775362984955212e-7
462.2236199943362048e8,1.7760778648064213e-7
472.5051906003698778e8,1.7767927446576304e-7
482.7823767756223583e8,1.7775076245088397e-7
493.0911287687649685e8,1.778222504360049e-7
503.4385077080601907e8,1.7789373842112585e-7
513.7711051669132817e8,1.779652264062468e-7
524.113445537667344e8,1.780367143913677e-7
534.4499849132769555e8,1.7810820237648864e-7
544.794174184030283e8,1.7817969036160957e-7
555.105391528959478e8,1.782511783467305e-7
565.3311565681741685e8,1.7832266633185145e-7
575.49473058621267e8,1.7839415431697236e-7
585.602200857471449e8,1.784656423020933e-7
595.603404285008258e8,1.7853713028721424e-7
605.485686498617609e8,1.7860861827233517e-7
615.297810753006773e8,1.786801062574561e-7
625.032336995843775e8,1.7875159424257705e-7
634.6904511467896485e8,1.7882308222769796e-7
644.3250990896866e8,1.788945702128189e-7
653.894675918083786e8,1.7896605819793984e-7
663.4173985810858804e8,1.7903754618306077e-7
672.95438865318451e8,1.791090341681817e-7
682.447864043950903e8,1.7918052215330262e-7
691.970492844094362e8,1.7925201013842356e-7
701.562642019123809e8,1.793234981235445e-7
711.1727306751091793e8,1.7939498610866543e-7
728.254618092881994e7,1.7946647409378637e-7
735.332836117400897e7,1.7953796207890728e-7
743.4377630963470034e7,1.7960945006402822e-7
752.120657963829776e7,1.7968093804914916e-7
769183348.362080127,1.797524260342701e-7
771222547.5768512262,1.7982391401939103e-7
78755966.316200493,1.7989540200451195e-7
792666635.600695896,1.7996688998963288e-7
804368415.198978822,1.8003837797475382e-7
815861305.111049274,1.8010986595987476e-7
827145305.336907249,1.801813539449957e-7
838220415.87655275,1.8025284193011663e-7
849086636.729985492,1.8032432991523755e-7
859743967.89720612,1.8039581790035848e-7
861.0192409378214272e7,1.8046730588547942e-7
871.0431961173009947e7,1.8053879387060036e-7
881.046262328159315e7,1.806102818557213e-7
891.0284395703963978e7,1.806817698408422e-7
909897278.440122306,1.8075325782596314e-7
919301271.490068158,1.8082474581108408e-7
928496374.853801534,1.8089623379620502e-7
937482588.5313224355,1.8096772178132596e-7
946259912.522631352,1.8103920976644687e-7
954828346.82772738,1.811106977515678e-7
963187891.446610932,1.8118218573668874e-7
971338546.37928201,1.8125367372180968e-7
980.0,1.8132516170693062e-7
990.0,1.8139664969205153e-7
1000.0,1.8146813767717247e-7
1010.0,1.815396256622934e-7
results/prng-mwc4096-timings.csv
(101 / 0)
  
1sample,execution time
20,1.7205440891852887e-7
31,1.7327831645599058e-7
42,1.7272894886815264e-7
53,1.7237777085314233e-7
64,1.7188055841604852e-7
75,1.7225955251145567e-7
86,1.7253771331542427e-7
97,1.721135180893722e-7
108,1.7249251218477938e-7
119,1.7168932286332012e-7
1210,1.7205440891852887e-7
1311,1.7225955251145567e-7
1412,1.724646961043825e-7
1513,1.746065342949405e-7
1614,1.7332351758663548e-7
1715,1.7276719597869834e-7
1816,1.7497162035014927e-7
1917,1.724194949737376e-7
2018,1.7288541432038497e-7
2119,1.7269765577770618e-7
2220,1.7237777085314233e-7
2321,1.7243688002398566e-7
2422,1.7221435138081078e-7
2523,1.7263854660686285e-7
2624,1.7341391984792526e-7
2725,1.7234995477274548e-7
2826,1.7151894937088935e-7
2927,1.7209961004917376e-7
3028,1.7157458153168307e-7
3129,1.7170670791356814e-7
3230,1.7256552939582111e-7
3331,1.7288889133043458e-7
3432,1.7175190904421303e-7
3533,1.7195357562709025e-7
3634,1.7330960954643704e-7
3735,1.7214133416976904e-7
3836,1.7255162135562268e-7
3937,1.717797251246099e-7
4038,1.714876562804429e-7
4139,1.7208570200897532e-7
4240,1.7234647776269587e-7
4341,1.7195357562709025e-7
4442,1.7161630565227836e-7
4543,1.721135180893722e-7
4644,1.7172061595376658e-7
4745,1.7209961004917376e-7
4846,1.721135180893722e-7
4947,1.720822249989257e-7
5048,1.7175190904421303e-7
5149,1.7172061595376658e-7
5250,1.718214492452052e-7
5351,1.7208570200897532e-7
5452,1.7221435138081078e-7
5553,1.7209961004917376e-7
5654,1.7180754120500675e-7
5755,1.7186665037585008e-7
5856,1.7207179396877688e-7
5957,1.7223173643105882e-7
6058,1.7253423630537466e-7
6159,1.7234647776269587e-7
6260,1.7218653530041393e-7
6361,1.731357590439567e-7
6462,1.7201268479793358e-7
6563,1.72318661682299e-7
6664,1.721274261295706e-7
6765,1.7227693756170372e-7
6866,1.721309031396202e-7
6967,1.717762481145603e-7
7068,1.718388342954532e-7
7169,1.7233604673254704e-7
7270,1.721726272602155e-7
7371,1.7147027123019485e-7
7472,1.721726272602155e-7
7573,1.7244731105413446e-7
7674,1.7871983718362578e-7
7775,1.7193966758689182e-7
7876,1.7123731155687117e-7
7977,1.7170670791356814e-7
8078,1.7172061595376658e-7
8179,1.7257943743601955e-7
8280,1.721274261295706e-7
8381,1.7128251268751607e-7
8482,1.7252032826517622e-7
8583,1.7201268479793358e-7
8684,1.7176581708441147e-7
8785,1.7240558693353917e-7
8886,1.721726272602155e-7
8987,1.7207179396877688e-7
9088,1.7223173643105882e-7
9189,1.717901561547587e-7
9290,1.7195357562709025e-7
9391,1.7160587462212953e-7
9492,1.72318661682299e-7
9593,1.7277067298874795e-7
9694,1.725098972350274e-7
9795,1.7234647776269587e-7
9896,1.721726272602155e-7
9997,1.718214492452052e-7
10098,1.72318661682299e-7
10199,1.7191185150649497e-7
results/prng-xorshift-densities.csv
(101 / 0)
  
1execution time,probability
20.0,1.5664453447508277e-7
30.0,1.5668410909269537e-7
40.0,1.5672368371030797e-7
58021979.593810391,1.5676325832792057e-7
61.5461634219924154e7,1.5680283294553317e-7
72.1379704270124216e7,1.5684240756314577e-7
82.577618974441058e7,1.5688198218075837e-7
92.865109064278324e7,1.5692155679837097e-7
103.00044069652422e7,1.5696113141598357e-7
112.9836138711787462e7,1.5700070603359617e-7
122.8146285882419027e7,1.5704028065120877e-7
132.4934848477136888e7,1.5707985526882137e-7
142.020182649594105e7,1.5711942988643397e-7
151.3947219938831514e7,1.5715900450404657e-7
166171028.805808275,1.5719857912165917e-7
170.0,1.5723815373927177e-7
180.0,1.5727772835688437e-7
190.0,1.5731730297449697e-7
200.0,1.5735687759210957e-7
210.0,1.5739645220972217e-7
220.0,1.5743602682733477e-7
230.0,1.5747560144494737e-7
241904067.9804361602,1.5751517606255997e-7
251.6097871196613234e7,1.5755475068017257e-7
264.358276357011573e7,1.5759432529778517e-7
277.799069773379286e7,1.576338999153978e-7
281.430190484439661e8,1.576734745330104e-7
292.3369768452458608e8,1.57713049150623e-7
303.413979829791518e8,1.577526237682356e-7
315.209348163245571e8,1.577921983858482e-7
327.264165503902968e8,1.578317730034608e-7
339.679110822479049e8,1.578713476210734e-7
341.2261729263672874e9,1.57910922238686e-7
351.476394978753828e9,1.579504968562986e-7
361.6811600213507195e9,1.579900714739112e-7
371.8279136925017745e9,1.580296460915238e-7
381.9232428991829727e9,1.580692207091364e-7
391.9430123568631043e9,1.58108795326749e-7
401.895688722822333e9,1.581483699443616e-7
411.7819254333064442e9,1.581879445619742e-7
421.586488870081761e9,1.582275191795868e-7
431.3431371659954906e9,1.582670937971994e-7
441.1020280830439615e9,1.58306668414812e-7
458.528961929093442e8,1.583462430324246e-7
466.407790175316767e8,1.583858176500372e-7
474.6528460308296454e8,1.584253922676498e-7
483.3511270993081313e8,1.584649668852624e-7
492.2476207045255572e8,1.58504541502875e-7
501.455553963460151e8,1.585441161204876e-7
519.263692875852036e7,1.585836907381002e-7
526.420481234903982e7,1.586232653557128e-7
535.868146431055693e7,1.586628399733254e-7
545.928398687177248e7,1.58702414590938e-7
555.783657804567689e7,1.587419892085506e-7
566.1006691461056925e7,1.587815638261632e-7
575.9612051148695864e7,1.588211384437758e-7
585.36526571085937e7,1.588607130613884e-7
594.312850934075043e7,1.58900287679001e-7
603.556886548118793e7,1.589398622966136e-7
613.009304407272645e7,1.589794369142262e-7
622.9617465775063533e7,1.590190115318388e-7
632.7620302901486915e7,1.590585861494514e-7
642.41015554519966e7,1.59098160767064e-7
651.9061223426592585e7,1.591377353846766e-7
661.358700074609915e7,1.591773100022892e-7
671.5446703791423311e7,1.592168846199018e-7
682.6751444486967236e7,1.592564592375144e-7
693.942882167872721e7,1.59296033855127e-7
704.906302971865979e7,1.593356084727396e-7
715.565406860676496e7,1.593751830903522e-7
725.920193834304273e7,1.594147577079648e-7
735.970663892749311e7,1.594543323255774e-7
745.716817036011608e7,1.5949390694319e-7
755.15865326409069e7,1.5953348156080262e-7
764.296172576987304e7,1.5957305617841522e-7
773.1293749747011777e7,1.5961263079602782e-7
781.6582604572323117e7,1.5965220541364042e-7
794121730.441986865,1.5969178003125302e-7
800.0,1.5973135464886562e-7
810.0,1.5977092926647822e-7
820.0,1.5981050388409082e-7
830.0,1.5985007850170342e-7
840.0,1.5988965311931602e-7
850.0,1.5992922773692862e-7
860.0,1.5996880235454122e-7
876171028.805808275,1.6000837697215382e-7
881.3947219938831514e7,1.6004795158976642e-7
892.020182649594105e7,1.6008752620737902e-7
902.4934848477136888e7,1.6012710082499162e-7
912.8146285882419027e7,1.6016667544260422e-7
922.9836138711787462e7,1.6020625006021682e-7
933.00044069652422e7,1.6024582467782942e-7
942.865109064278324e7,1.6028539929544202e-7
952.577618974441058e7,1.6032497391305462e-7
962.1379704270124216e7,1.6036454853066722e-7
971.5461634219924154e7,1.6040412314827982e-7
988021979.593810391,1.6044369776589242e-7
990.0,1.6048327238350502e-7
1000.0,1.6052284700111762e-7
1010.0,1.6056242161873022e-7
results/prng-xorshift-timings.csv
(101 / 0)
  
1sample,execution time
20,1.6375748584677734e-7
31,1.6341240416222755e-7
42,1.6279125713003792e-7
53,1.631264793378863e-7
64,1.6381335621475206e-7
75,1.6301473860193685e-7
86,1.624231699998515e-7
97,1.6294572226502687e-7
108,1.6266965691738706e-7
119,1.6258420811930807e-7
1210,1.625579161814376e-7
1311,1.6265651094845182e-7
1412,1.6295886823396211e-7
1513,1.6254805670473618e-7
1614,1.6244946193772196e-7
1715,1.629029978659874e-7
1816,1.6266965691738706e-7
1917,1.6297530069513116e-7
2018,1.6244946193772196e-7
2119,1.6275181922323226e-7
2220,1.626006405804771e-7
2321,1.6253162424356716e-7
2422,1.6265651094845182e-7
2523,1.6248889984452766e-7
2624,1.626433649795166e-7
2725,1.6272552728536178e-7
2826,1.626006405804771e-7
2927,1.6270909482419276e-7
3028,1.6313962530682152e-7
3129,1.641420054381328e-7
3230,1.6268280288632228e-7
3331,1.629029978659874e-7
3432,1.6266965691738706e-7
3533,1.6283398152907742e-7
3634,1.62380445600812e-7
3735,1.6244946193772196e-7
3836,1.6294572226502687e-7
3937,1.6288985189705216e-7
4038,1.628208355601422e-7
4139,1.6236401313964297e-7
4240,1.6272552728536178e-7
4341,1.6270909482419276e-7
4442,1.6257434864260666e-7
4543,1.6313962530682152e-7
4644,1.628208355601422e-7
4745,1.6283726802131125e-7
4846,1.6263021901058137e-7
4947,1.6248889984452766e-7
5048,1.6246260790665718e-7
5149,1.630410305398073e-7
5250,1.6225555889592732e-7
5351,1.6288985189705216e-7
5452,1.6258749461154187e-7
5553,1.6239359156974723e-7
5654,1.6248889984452766e-7
5755,1.6258749461154187e-7
5856,1.628635599591817e-7
5957,1.6229499680273302e-7
6058,1.6265651094845182e-7
6159,1.6272224079312797e-7
6260,1.6249218633676146e-7
6361,1.6240673753868247e-7
6462,1.6265651094845182e-7
6563,1.6226870486486256e-7
6664,1.6248889984452766e-7
6765,1.6272224079312797e-7
6866,1.6244946193772196e-7
6967,1.6251847827463192e-7
7068,1.6250533230569668e-7
7169,1.6247575387559242e-7
7270,1.6280768959120697e-7
7371,1.626400784872828e-7
7472,1.624231699998515e-7
7573,1.6381335621475206e-7
7674,1.6249218633676146e-7
7775,1.6243631596878672e-7
7876,1.6279125713003792e-7
7977,1.625579161814376e-7
8078,1.6262693251834757e-7
8179,1.6249218633676146e-7
8280,1.6235415366294153e-7
8381,1.6244617544548816e-7
8482,1.6251847827463192e-7
8583,1.6253162424356716e-7
8684,1.6265651094845182e-7
8785,1.6293257629609166e-7
8886,1.6273867325429702e-7
8987,1.6243302947655292e-7
9088,1.6389551852059725e-7
9189,1.628208355601422e-7
9290,1.63165917244692e-7
9391,1.6229828329496682e-7
9492,1.6273867325429702e-7
9593,1.6243631596878672e-7
9694,1.6306732247767776e-7
9795,1.6278139765333651e-7
9896,1.6266965691738706e-7
9997,1.632185011204329e-7
10098,1.6317906321362721e-7
10199,1.6271238131642656e-7
src/SpeedTest.hs
(25 / 0)
  
1{-# LANGUAGE ForeignFunctionInterface #-}
2import Criterion.Config
3import Criterion.Main
4import Data.Word
5
6fib 0 = 0
7fib 1 = 1
8fib n = fib (n-1) + fib (n-2)
9
10foreign import ccall "generators/generators.h cong" cong :: IO Word32
11foreign import ccall "generators/generators.h xorshift" xorshift :: IO Word32
12foreign import ccall "generators/generators.h MWC256" mwc256 :: IO Word32
13foreign import ccall "generators/generators.h MWC4096" mwc4096 :: IO Word32
14foreign import ccall "generators/generators.h genrand_int32" mt :: IO Word32
15
16main = defaultMain [
17 bgroup "fib" [bench "Fib 10" $ whnf fib 10
18 ,bench "Fib 20" $ whnf fib 20
19 ,bench "Fib 15" $ whnf fib 15]
20 ,bgroup "prng" [bench "cong" $ whnfIO cong
21 ,bench "xorshift" $ whnfIO xorshift
22 ,bench "mwc256" $ whnfIO mwc256
23 ,bench "mwc4096" $ whnfIO mwc4096
24 ,bench "mersenne" $ whnfIO mt ]
25 ]