Shop OBEX P1 Docs P2 Docs Learn Events
Random/LFSR on P2 - Page 54 — Parallax Forums

Random/LFSR on P2

1515254565792

Comments

  • TonyB_TonyB_ Posts: 2,107
    edited 2018-07-25 13:44
    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
    
  • evanhevanh Posts: 15,126
    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.

  • evanhevanh Posts: 15,126
    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?

  • TonyB_TonyB_ Posts: 2,107
    edited 2018-07-25 13:42
    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.
  • TonyB_TonyB_ Posts: 2,107
    edited 2018-07-25 13:41
    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.
  • evanhevanh Posts: 15,126
    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.

  • TonyB_TonyB_ Posts: 2,107
    edited 2018-07-25 13:51
    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.
  • evanhevanh Posts: 15,126
    edited 2018-07-25 14:26
    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. :D

  • 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. :D

    You had some grid tests running, which took a while and finished a few days ago. I meant all of those.
  • [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.
  • evanhevanh Posts: 15,126
    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.

  • evanhevanh Posts: 15,126
    Right, Chris's one, I'll have a nosy ...

  • Heater.Heater. Posts: 21,230
    TonyB_,
    Next year is my 20th anniversary of using Win98SE.
    I admire your tenacity.

    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.

  • TonyB_TonyB_ Posts: 2,107
    edited 2018-07-25 15:14
    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
    
  • Heater. wrote: »
    TonyB_,
    Next year is my 20th anniversary of using Win98SE.
    I admire your tenacity.

    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! :)
  • evanhevanh Posts: 15,126
    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.

  • evanhevanh Posts: 15,126
    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?
  • TonyB_TonyB_ Posts: 2,107
    edited 2018-07-26 10:43
    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.
  • evanhevanh Posts: 15,126
    edited 2018-07-26 11:19
    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.
  • evanhevanh Posts: 15,126
    edited 2018-07-26 11:47
    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.

  • 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.
  • evanhevanh Posts: 15,126
    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.

  • evanhevanh Posts: 15,126
    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.
  • evanhevanh Posts: 15,126
    edited 2018-07-26 15:30
    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.

  • TonyB_TonyB_ Posts: 2,107
    edited 2018-07-27 11:49
    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
    
  • evanhevanh Posts: 15,126
    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.

  • 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).
  • TonyB_TonyB_ Posts: 2,107
    edited 2018-07-27 10:32
    I need to generate Chi-Square results for zero distribution - later.
  • TonyB_TonyB_ Posts: 2,107
    edited 2018-07-28 11:15
    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.

  • evanhevanh Posts: 15,126
    No emails from you. PM sent.
Sign In or Register to comment.