Welcome to the Parallax Discussion Forums, sign-up to participate.

# Random/LFSR on P2

• Posts: 1,599
edited 2018-07-25 - 13:44:07
TonyB_ wrote: »
TonyB_ wrote: »
I found a formula last night for "closeness" to an known distribution:
```Sum of (Actual - Expected) squared / Expected
```

This is related to Chi-Square and is different from my |Actual - Expected| / Expected quality measure.

I have the full results for xoroshiro32+ and xoroshiro32++ but unfortunately I can't attach files using this PC so there will be a delay in posting them.

I calculated the sums as follows.
Let a = Actual and b = Expected, then
(a-b)^2/b = (a^2 - 2ab + b^2)/b = a^2/b - 2a + b = a(a/b - 2) + b

Here are the best Chi-Square scores for xoroshiro32++ pair frequency, identical to what the XORO32 output frequency would be for the same [a,b,c,d]. Unsurprisingly none of the xoroshiro32+ candidates (using d = 0 slot) make the cut.

total = sum of pfreq0-pfreq12 (total > 9999 excluded)
total0-3 = sum of pfreq0-pfreq3
```#a,	b,	c,	d,	total,	total0-3
1,	2,	8,	4,	8259,	4053
2,	1,	11,	3,	9196,	4428
2,	1,	11,	11,	2899,	1457
2,	1,	15,	3,	437,	332
2,	2,	7,	4,	7248,	3706
2,	2,	7,	6,	1982,	1025
2,	2,	7,	7,	635,	278
2,	2,	7,	11,	4244,	1976
2,	6,	15,	4,	7913,	4171
2,	6,	15,	5,	231,	116
2,	6,	15,	12,	1101,	500
2,	8,	7,	2,	2243,	1119
2,	8,	7,	11,	62,	28
2,	9,	9,	2,	2771,	1360
2,	9,	9,	5,	3766,	1861
2,	11,	3,	3,	8595,	4173
2,	11,	3,	11,	8873,	4542
3,	2,	6,	5,	666,	349
3,	2,	6,	7,	9868,	4942
3,	3,	10,	1,	3702,	1863
3,	3,	10,	2,	592,	328
3,	3,	10,	4,	5584,	2752
3,	3,	10,	7,	1136,	743
3,	3,	10,	10,	1834,	871
3,	3,	10,	11,	5028,	2509
3,	11,	2,	9,	908,	467
3,	11,	14,	4,	199,	108
3,	11,	14,	5,	1605,	726
3,	11,	14,	7,	60,	18
4,	1,	9,	1,	2990,	1556
4,	1,	9,	5,	317,	184
4,	1,	9,	9,	9054,	4409
4,	7,	15,	13,	8067,	4123
5,	2,	6,	2,	4163,	2081
5,	2,	6,	3,	5554,	2800
5,	2,	6,	4,	5702,	2683
5,	2,	6,	5,	14,	3
5,	2,	6,	7,	8240,	4047
5,	2,	6,	10,	506,	208
5,	8,	4,	7,	4043,	2156
5,	14,	12,	7,	2401,	1740
6,	2,	3,	2,	2864,	1328
6,	2,	3,	3,	6877,	3398
6,	2,	3,	9,	1674,	818
6,	2,	5,	3,	989,	479
6,	2,	5,	4,	1949,	931
6,	2,	5,	6,	3344,	1613
6,	2,	5,	9,	3415,	1609
6,	2,	11,	1,	6172,	3093
6,	2,	11,	3,	1963,	1031
6,	2,	11,	6,	3427,	1693
6,	2,	11,	7,	7288,	3696
6,	2,	11,	10,	2169,	1093
6,	2,	11,	12,	6463,	3079
6,	2,	11,	13,	3592,	1831
6,	3,	15,	4,	9842,	4893
6,	3,	15,	6,	2814,	1420
6,	3,	15,	9,	5418,	2612
6,	14,	11,	7,	7004,	3297
7,	1,	8,	5,	4748,	2357
7,	1,	8,	6,	109,	53
7,	2,	2,	1,	632,	240
7,	2,	2,	3,	7828,	4060
7,	2,	2,	5,	2768,	1406
7,	2,	2,	6,	7441,	3656
7,	2,	10,	4,	8958,	4385
7,	2,	10,	5,	9609,	4791
7,	2,	10,	13,	4617,	2321
7,	2,	14,	3,	760,	330
7,	2,	14,	4,	3531,	1814
7,	2,	14,	7,	708,	337
7,	2,	14,	10,	315,	128
7,	2,	14,	13,	503,	201
7,	8,	2,	10,	6986,	3264
7,	8,	2,	11,	4090,	1952
7,	10,	10,	2,	493,	208
7,	10,	10,	4,	9179,	4357
7,	15,	8,	4,	1381,	783
7,	15,	8,	5,	2325,	1156
8,	1,	7,	2,	1242,	554
8,	1,	7,	3,	955,	517
8,	1,	7,	5,	672,	273
8,	1,	7,	15,	6865,	3245
8,	2,	1,	2,	7870,	3988
8,	5,	13,	1,	2013,	1013
8,	5,	13,	2,	8,	2
8,	5,	13,	3,	177,	78
8,	5,	13,	5,	725,	323
8,	5,	13,	6,	6413,	3185
8,	5,	13,	7,	4483,	1918
8,	5,	13,	11,	4084,	1930
8,	7,	15,	5,	8783,	4441
8,	7,	15,	13,	212,	103
8,	7,	15,	14,	3453,	1684
8,	9,	13,	6,	3469,	1633
8,	9,	13,	11,	8158,	4100
8,	9,	13,	13,	3679,	1633
8,	15,	7,	5,	1985,	755
9,	2,	14,	4,	8651,	4191
9,	2,	14,	6,	8905,	4320
9,	2,	14,	11,	5692,	2821
9,	2,	14,	12,	1576,	739
9,	2,	14,	13,	8,	1
9,	2,	14,	14,	4730,	2226
9,	2,	14,	15,	98,	35
9,	8,	14,	3,	310,	122
9,	8,	14,	12,	9829,	4889
9,	9,	2,	1,	1128,	515
9,	9,	2,	4,	751,	380
9,	9,	2,	10,	9703,	4810
9,	9,	2,	11,	7308,	3621
9,	9,	2,	12,	7918,	3959
10,	2,	7,	1,	1311,	660
10,	2,	7,	2,	9762,	4775
10,	2,	7,	4,	163,	61
10,	2,	7,	9,	2862,	435
10,	2,	7,	12,	365,	197
10,	2,	7,	15,	7706,	3405
10,	3,	3,	4,	5638,	2843
10,	3,	11,	10,	5946,	2835
10,	3,	11,	12,	4247,	2043
10,	5,	13,	11,	7218,	3585
10,	7,	11,	9,	230,	101
10,	7,	11,	12,	2368,	1153
10,	10,	7,	2,	258,	132
10,	10,	7,	12,	4409,	2217
11,	1,	2,	7,	9764,	5138
11,	1,	2,	12,	8881,	4398
11,	1,	2,	13,	274,	142
11,	1,	14,	14,	1104,	525
11,	2,	6,	2,	12,	2
11,	2,	6,	9,	8188,	4019
11,	2,	6,	12,	8941,	4462
11,	2,	6,	13,	2313,	1197
11,	3,	10,	7,	5456,	2862
11,	3,	10,	11,	8661,	4308
11,	3,	10,	13,	5704,	2736
11,	7,	10,	9,	6701,	3339
11,	7,	10,	14,	9625,	4982
11,	8,	12,	9,	8502,	4225
11,	10,	12,	12,	1731,	946
11,	10,	12,	13,	7979,	3886
11,	11,	14,	8,	3001,	824
11,	11,	14,	9,	840,	376
11,	11,	14,	10,	1158,	582
11,	11,	14,	11,	9096,	4434
11,	11,	14,	13,	3596,	1806
11,	14,	6,	2,	5139,	2779
11,	14,	6,	3,	4432,	2175
12,	8,	11,	9,	1465,	723
12,	8,	11,	13,	8240,	4213
12,	8,	11,	14,	9441,	4934
12,	10,	11,	6,	8176,	4118
12,	10,	11,	12,	5616,	2784
12,	14,	5,	1,	215,	112
12,	14,	5,	13,	1221,	581
13,	3,	14,	10,	439,	172
13,	3,	14,	11,	3789,	1806
13,	3,	14,	12,	2508,	1151
13,	3,	14,	13,	8435,	4068
13,	5,	8,	2,	7557,	3511
13,	5,	8,	5,	462,	212
13,	5,	8,	6,	7167,	3289
13,	5,	8,	10,	50,	34
13,	5,	8,	13,	2564,	1149
13,	5,	10,	9,	24,	18
13,	5,	10,	12,	2348,	1165
13,	5,	10,	13,	3846,	1914
13,	5,	10,	14,	2346,	1240
13,	9,	8,	2,	3380,	1670
13,	9,	8,	5,	5769,	2753
13,	9,	8,	6,	124,	75
13,	11,	14,	5,	7118,	3468
13,	11,	14,	13,	4444,	2130
13,	12,	14,	7,	6744,	3363
13,	12,	14,	11,	1339,	687
13,	12,	14,	13,	2378,	1239
13,	13,	14,	11,	2180,	971
13,	13,	14,	13,	8,	2
14,	1,	11,	7,	4950,	2398
14,	1,	11,	9,	2815,	1419
14,	1,	11,	10,	1357,	660
14,	1,	11,	12,	4207,	2111
14,	2,	7,	6,	1606,	812
14,	2,	7,	10,	425,	151
14,	2,	7,	12,	7806,	3810
14,	2,	7,	13,	1045,	439
14,	2,	7,	14,	499,	214
14,	2,	7,	15,	131,	78
14,	2,	9,	1,	672,	397
14,	2,	9,	9,	68,	19
14,	2,	9,	10,	425,	215
14,	2,	9,	12,	919,	465
14,	3,	13,	11,	6274,	3148
14,	8,	9,	10,	4357,	2110
14,	8,	9,	11,	8164,	3883
14,	11,	3,	4,	63,	37
14,	11,	3,	10,	3210,	1603
14,	11,	11,	10,	8027,	3740
14,	11,	13,	5,	8381,	4170
14,	11,	13,	7,	282,	149
14,	11,	13,	11,	7192,	3488
14,	12,	13,	6,	162,	70
14,	12,	13,	7,	231,	73
14,	13,	13,	6,	1178,	642
15,	3,	6,	1,	383,	197
15,	3,	6,	12,	2398,	1113
15,	4,	12,	4,	6530,	3513
15,	4,	12,	6,	1013,	504
15,	4,	12,	7,	3750,	1951
15,	4,	12,	13,	6094,	2852
15,	4,	12,	14,	42,	8
15,	6,	2,	6,	1976,	855
15,	6,	2,	9,	984,	498
15,	6,	2,	10,	1373,	630
15,	6,	2,	11,	1282,	629
15,	7,	4,	3,	5646,	2645
15,	7,	4,	7,	4149,	2038
15,	7,	8,	5,	8923,	4408
15,	7,	8,	11,	6269,	3012
15,	7,	8,	13,	5883,	2781
```
• Posts: 10,223
Just the formatted grid tables (<100k compressed), or all the Practrand files too? There is >58000 files for s16 engine alone. Maybe 20 MB for these.

From earlier comments, admittedly Z80, I was thinking you might be using some novel OS where assembly coding was still the expected norm.

• Posts: 10,223
TonyB_ wrote: »
total = sum of pfreq0-pfreq12 (total > 9999 excluded)
total0-3 = sum of pfreq0-pfreq3
And lower totals are better right. How big do the worst totals get?

• Posts: 1,599
edited 2018-07-25 - 13:42:40
evanh wrote: »
Just the formatted grid tables (<100k compressed), or all the Practrand files too? There is >58000 files for s16 engine alone. Maybe 20 MB for these.

From earlier comments, admittedly Z80, I was thinking you might be using some novel OS where assembly coding was still the expected norm.

Just the formatted grid tables, please.

Next year is my 20th anniversary of using Win98SE. My 1024 x 768 LCD monitor is 20 years old and not one pixel is stuck on.
• Posts: 1,599
edited 2018-07-25 - 13:41:49
evanh wrote: »
TonyB_ wrote: »
total = sum of pfreq0-pfreq12 (total > 9999 excluded)
total0-3 = sum of pfreq0-pfreq3
And lower totals are better right. How big do the worst totals get?

Yes, lower is better. I think the worst score is 5 x 10^12 or 2^42. Most of the + and a few ++ are > 2^31. QuickBASIC 32-bit integers are signed, in range -2^31 to +2^31-1 (- 2147483648 to +2147483647) and I store any scores greater than the latter as 2147483647 in my files.
• Posts: 10,223
At first look there is a total lack of correlation of best with best against the grid summary charts.

And another nail here is there is also d=15 cases with very good distribution scores. d=15 (for s16++) is always extremely poor scoring in Practrand. I only left them in because they don't consume any significant MIPS to be culled.

• Posts: 1,599
edited 2018-07-25 - 13:51:58
The correlation between PractRand scores and these new Chi-Square scores will be interesting.

EDIT:
Written before previous post seen. As I've said several times before, the distributions could be used as tie-breakers for the candidates with good PractRand scores. A few of the new Chi-Square scores are amazingly low.
• Posts: 10,223
edited 2018-07-25 - 14:26:32
TonyB_ wrote: »
Evan, how big is a .7z file with all the xoroshiro32++ grid scores?

When you say *all*, you do know I've only got a limited number of candidates with completed grids, right? They are the ones already charted. I built a list of promising candidates from the culling run, plus a few we wanted to compare with. The gridding was run only on that list.

To grid every double summing (++) candidate for the 84 full-period engine triplets, 84 x 15 x 256 = 322560 Practrand files, the run time will be over 100 years 5 months. EDIT: Err, it's 3 hours per grid, not per score.

• Posts: 1,599
evanh wrote: »
TonyB_ wrote: »
Evan, how big is a .7z file with all the xoroshiro32++ grid scores?

When you say *all*, you do know I've only got a limited number of candidates with completed grids, right? They are the ones already charted. I built a list of promising candidates from the culling run, plus a few we wanted to compare with. The gridding was run only on that list.

To grid every double summing (++) candidate for the 84 full-period engine triplets, 84 x 15 x 256 = 322560 Practrand files, the run time will be over 100 years 5 months. EDIT: It's 3 hours per grid, not per score.

You had some grid tests running, which took a while and finished a few days ago. I meant all of those.
• Posts: 1,599
[5,2,6,5] and [8,5,13,2] and a few others with Chi-Square total < 100 and half-decent PractRand culling scores could be worth gridding later this week.

I'm itching to know what Chris's distribution looks like.
• Posts: 10,223
Oh, those are the grids of even-apertured double-iterated. It doesn't directly compare to the existing chart because that one uses full grids. I should either make the even-apertured version of the already posted chart, or finish the double-iterated grids by also doing their odd-apertures.

• Posts: 10,223
Right, Chris's one, I'll have a nosy ...

• Posts: 21,233
TonyB_,
Next year is my 20th anniversary of using Win98SE.

21 years ago I deleted Windows 95 or whatever from my 100MHz AMD 486 and went all Linux.

Until I got embroiled with an MS Surface Pro 4 and Win 10 two years back.

• Posts: 1,599
edited 2018-07-25 - 15:14:41
evanh wrote: »
At first look there is a total lack of correlation of best with best against the grid summary charts.

And another nail here is there is also d=15 cases with very good distribution scores. d=15 (for s16++) is always extremely poor scoring in Practrand. I only left them in because they don't consume any significant MIPS to be culled.

Most of the [a,b,c,15] are poor or worse. Here are the 84 Chi-Square scores, with a couple clipped at 2147483647:
```#a,	b,	c,	d,	total,		total0-3
1,	2,	8,	15,	149436,		62647
2,	1,	11,	15,	3718850,	1853819
2,	1,	15,	15,	886630144,	101367632
2,	2,	7,	15,	599631,		300428
2,	6,	15,	15,	89327336,	38966396
2,	8,	7,	15,	9574851,	4551603
2,	9,	9,	15,	2147483647,	180585120
2,	11,	3,	15,	2147483647,	495778912
3,	2,	6,	15,	1185676,	610431
3,	3,	10,	15,	142960,		70704
3,	11,	2,	15,	252339664,	72427344
3,	11,	14,	15,	1510397,	738248
4,	1,	9,	15,	450559,		228315
4,	7,	15,	15,	859671,		439286
4,	8,	5,	15,	275770,		134426
5,	2,	6,	15,	1016916,	524822
5,	8,	4,	15,	6433043,	2812407
5,	14,	12,	15,	119337,		59842
6,	2,	3,	15,	62419,		31000
6,	2,	5,	15,	973361,		471183
6,	2,	11,	15,	55351,		26290
6,	3,	15,	15,	1013340,	518160
6,	14,	11,	15,	634962,		323388
7,	1,	8,	15,	885663,		449510
7,	2,	2,	15,	1126273,	576762
7,	2,	10,	15,	195748,		98226
7,	2,	14,	15,	436059,		220223
7,	8,	2,	15,	433726,		218222
7,	10,	10,	15,	16397,		7640
7,	15,	8,	15,	1182654,	606170
8,	1,	7,	15,	6865,		3245
8,	2,	1,	15,	632747,		318082
8,	5,	13,	15,	169870,		84074
8,	7,	15,	15,	42317,		18391
8,	9,	13,	15,	348706,		168644
8,	15,	7,	15,	40301184,	14935628
9,	1,	4,	15,	158934,		79423
9,	2,	14,	15,	98,		35
9,	8,	14,	15,	67592,		33763
9,	9,	2,	15,	336137,		169654
10,	2,	7,	15,	7706,		3405
10,	3,	3,	15,	441621,		222347
10,	3,	11,	15,	151086,		74318
10,	5,	13,	15,	427255,		215594
10,	7,	11,	15,	221109,		109617
10,	10,	7,	15,	156122,		72327
11,	1,	2,	15,	1243321,	636651
11,	1,	14,	15,	438079,		221395
11,	2,	6,	15,	972787,		477669
11,	3,	10,	15,	2479008,	1193606
11,	7,	10,	15,	15628863,	6498136
11,	8,	12,	15,	889375,		452986
11,	10,	12,	15,	387449,		194444
11,	11,	14,	15,	892782,		456684
11,	14,	6,	15,	612296,		294039
12,	4,	15,	15,	1523640,	781868
12,	8,	11,	15,	14350385,	6120270
12,	10,	11,	15,	30698348,	12165989
12,	10,	13,	15,	1511360,	777129
12,	14,	5,	15,	56850,		28583
13,	3,	14,	15,	4633898,	2445171
13,	5,	8,	15,	20235,		10163
13,	5,	10,	15,	1974958,	941047
13,	9,	8,	15,	37108,		18527
13,	10,	12,	15,	42227368,	16622364
13,	11,	14,	15,	3906063,	2031714
13,	12,	14,	15,	3130804,	1611118
13,	13,	14,	15,	8888576,	4855736
14,	1,	11,	15,	66705,		32957
14,	2,	7,	15,	131,		78
14,	2,	9,	15,	381339,		193602
14,	3,	13,	15,	144803216,	53731936
14,	8,	9,	15,	148805,		73486
14,	11,	3,	15,	2598640,	1358080
14,	11,	11,	15,	1069697,	524492
14,	11,	13,	15,	217692352,	64579972
14,	12,	13,	15,	365565920,	72274960
14,	13,	13,	15,	327109568,	74458240
15,	1,	2,	15,	54482208,	34678944
15,	3,	6,	15,	902463,		462112
15,	4,	12,	15,	250755,		132021
15,	6,	2,	15,	7725018,	4110305
15,	7,	4,	15,	1157011,	587086
15,	7,	8,	15,	143702,		72610
```
• Posts: 1,599
Heater. wrote: »
TonyB_,
Next year is my 20th anniversary of using Win98SE.

21 years ago I deleted Windows 95 or whatever from my 100MHz AMD 486 and went all Linux.

Until I got embroiled with an MS Surface Pro 4 and Win 10 two years back.

Win98SE - the best DOS app ever written!
• Posts: 10,223
I was too tired to concentrate earlier so I went to bed. I've just hacked in Chris's algorithm, named it "Scro-rarns", and started it running. Everything is coming up either 16G or 32G and it's a 32x32 grid so it'll be a lot longer to run than anything from the Xoroshiro32 generators. Luckily it's also only a single grid.

• Posts: 10,223
I guess the only thing interesting that could come from this is to answer the question of does it show any weakness at all?

And if not, what would that imply about Xoroshiro's erratic scores?
• Posts: 1,599
edited 2018-07-26 - 10:43:13
evanh wrote: »
I was too tired to concentrate earlier so I went to bed. I've just hacked in Chris's algorithm, named it "Scro-rarns", and started it running. Everything is coming up either 16G or 32G and it's a 32x32 grid so it'll be a lot longer to run than anything from the Xoroshiro32 generators. Luckily it's also only a single grid.

It's the output distribution I'm interested in, not the grid scores!
You'll need to replace the double-iterated xoroshiro32 with Chris's algorithm, the rest of the C code can stay the same.

P.S. Full xoroshiro32 Chi-Square results sent by email.
• Posts: 10,223
edited 2018-07-26 - 11:19:21
Doh! First 5 lines gridded too ... hows this gonna work? I can't do the pairing ... it'll be a totally different metric.

Haven't seen an email as yet.
• Posts: 10,223
edited 2018-07-26 - 11:47:27
On that note, there isn't any distribution data done for double iterated Xoroshiro either. I had, in fact, entirely removed any attempt to handle double iteration. I gather you are wanting it in a similar fashion to Chris's one - without the pairing step.

• Posts: 1,599
evanh wrote: »
On that note, there isn't any distribution data done for double iterated Xoroshiro either. I had, in fact, entirely removed any attempt to handle double iteration. I gather you are wanting it in a similar fashion to Chris's one - without the pairing step.

You have 1344 lots of distribution data for double iterated xoroshiro32+ and xoroshiro32++! Simply replace the 32-bit xoroshiro output pair with Chris's single output and use that as the 4GB array index.
• Posts: 10,223
Oh, I see I didn't have that detail specified in the data files. No, there's nothing but single iterated data in every 7zip file. For the s8 right up to even the one s17 I did.

I did try to explain the difficulties I was having with making pairing work when double iterated. That why I'd scrapped it totally.

• Posts: 10,223
The only double iterated data provided so far is for Practrand culling runs and maybe some grids. Not even any summary charts posted for it yet.
• Posts: 10,223
edited 2018-07-26 - 15:30:17
Here's the frequency distribution data for Chris's generator plain, without any pairing. I'll work on reintroducing Xoroshiro double iteration code in the morning.

• Posts: 1,599
edited 2018-07-27 - 11:49:24
evanh wrote: »
Here's the frequency distribution data for Chris's generator plain, without any pairing. I'll work on reintroducing Xoroshiro double iteration code in the morning.

Thanks, Evan. This was the final frequency distribution I wanted. What xoroshiro double iteration do you think I was requesting?

Chris's generator has the best output distribution but a few xoroshiro32++ get quite close.
```# Chi-Squares scores for 32-bit output frequency

# best generator       pfreq0-12,        pfreq0-3
scro,                       2.82,            0.61

# best xoroshiro32++
9,  2, 14, 13,            7.56,            0.63
8,  5, 13,  2,            7.71,            1.79
13, 13, 14, 13,            8.48,            2.38
11,  2,  6,  2,           11.62,            2.45
5,  2,  6,  5,           13.60,            3.00
13,  5, 10,  9,           24.01,           18.08
15,  4, 12, 14,           42.05,            7.57
13,  5,  8, 10,           49.53,           34.31
3, 11, 14,  7,           60.27,           18.27
2,  8,  7, 11,           62.30,           28.32
14, 11,  3,  4,           62.95,           36.75
14,  2,  9,  9,           68.38,           18.79

# worst xoroshiro32++
15,  1,  2,  1,     2.11286E+13,      1889895552

# worst xoroshiro32+
8, 15,  7,         2.03313E+14,      3607458560
```
• Posts: 10,223
TonyB_ wrote: »
What xoroshiro double iteration do you think I was requesting?

Until yesterday, none at all. I've never once done even a single case in the form like Scro-rarns, that's for sure.

• Posts: 1,599
Chris's generator is also excellent on zero distribution and better than the top 12 xoroshiro32++ above, which are ranked in that table on XORO32 output frequency (= xoroshiro32++ pair frequency).
• Posts: 1,599
edited 2018-07-27 - 10:32:50
I need to generate Chi-Square results for zero distribution - later.
• Posts: 1,599
edited 2018-07-28 - 11:15:07
TonyB_ wrote: »
evanh wrote: »
Here's the frequency distribution data for Chris's generator plain, without any pairing. I'll work on reintroducing Xoroshiro double iteration code in the morning.

Thanks, Evan. This was the final frequency distribution I wanted. What xoroshiro double iteration do you think I was requesting?

Chris's generator has the best output distribution but a few xoroshiro32++ get quite close.
```# Chi-Squares scores for 32-bit output frequency

# best generator       pfreq0-12,        pfreq0-3
scro,                       2.82,            0.61

# best xoroshiro32++
9,  2, 14, 13,            7.56,            0.63
8,  5, 13,  2,            7.71,            1.79
13, 13, 14, 13,            8.48,            2.38
11,  2,  6,  2,           11.62,            2.45
5,  2,  6,  5,           13.60,            3.00
13,  5, 10,  9,           24.01,           18.08
15,  4, 12, 14,           42.05,            7.57
13,  5,  8, 10,           49.53,           34.31
3, 11, 14,  7,           60.27,           18.27
2,  8,  7, 11,           62.30,           28.32
14, 11,  3,  4,           62.95,           36.75
14,  2,  9,  9,           68.38,           18.79

# worst xoroshiro32++
15,  1,  2,  1,     2.11286E+13,      1889895552

# worst xoroshiro32+
8, 15,  7,         2.03313E+14,      3607458560
```

Evan, did you get my email? I could send the zero run results later.

Some of the best xoroshiro32++ above have good culling scores, e.g. [8,15,3,2]. The distributions for Chris's generator prove it's a very good 32-bit state, 32-bit output PRNG and confirm that the distributions for double-iterated xoroshiro32++ / XORO32 tell us something useful. By treating pairs of outputs as a single 32-bit output we can get fairly close in quality to Chris's generator, which passes PractRand because there is no equidistribution within his 32 bits, whereas both of our 16-bit values are equidistributed within themselves and PractRand cannot distinguish between one 32-bit and two 16-bit outputs.

Do all the grid failures occur only for the FPF tests? I'm wondering whether we would get max scores for everything if the FPF were removed. If other tests fail then we could use those to cull candidates, then use the distributions to select the best.

• Posts: 10,223
No emails from you. PM sent.