This page: Updated the paper Response to Hacker News comments Paper was published in arXiv Created this website |
Apr 8, 2020: Updated the paperIn response to feedback from readers, I made two substantial changes to the paper. First, the equation for the probability of encountering a too-short cycle has been modified to be an upper bound on the probability instead of the expected probability. The upper bound will be more useful to people. A poster on Hacker News observed that each Romu generator is based on only one permutation of its state, and thus employs a fixed set of cycles. Thus, the actual probability of seeing a cycle under a given length differs from the expected probability given in the paper, making it less useful to users. My solution is to add 7 to the exponent in this equation, making it an upper bound, which I justified using Chebyshev’s inequality. Second, in the Seeding section, I now recommend seeding the state variables with SplitMix64 or SplitMix32 (their source-code is in the appendices). It can be argued based on empirical results and sketchy theory that this is not necessary, but without proof of the absence of correlation in streams originating from non-random seeds, it’s prudent to seed each stream this way. Vigna recommends seeding the Blackman-Vigna generators with SplitMix64, and testing shows that SplitMix64 is unusually well suited for this purpose. I intend to gather additional feedback on this revision before submitting it to arXiv. Feb 29, 2020: Response to Hacker News commentsYou can read comments about Romu in Hacker News here. I’ll respond to some of them now. First, I apologize for omitting the ROTL macro in the code for RomoTrio in the landing page and code page. How could I forget that? Fixed. Regarding making bold claims: This website has a casual tone, but every claim has some justification. The paper makes the same claims, usually with more cautious wording, and is diligent about justifying every claim. Regarding copyrighting the code: The code is NOT copyrighted. I only put conditions in it to disallow somebody from claiming it as his own. In the not-copyrighted notice, I changed the word “required” to “ask”. I encourage you to cut and paste the code, and enjoy getting random numbers quickly. I expected objections to the probabilistic cycles. That’s why I emphasized the one-snowflake-in-history probability of getting poor results. Users of PRNGs have long insisted on having one long cycle, probably because state-size was much smaller in earlier days, so shorter cycles would have been harmful. But with the ease of having 192 bits of state nowadays, this constraint on PRNGs no longer makes sense because of the one-snowflake probability. Feb 28, 2020: Paper was published in arXivThe paper has been published in arXiv. Click here to see it. The paper on this website (on the top menu bar) is slightly more recent, with minor corrections. Feb 9, 2020: Created this websiteThe deed is done! This new website on the Romu family of random number generators is now running. This website consists of hand-coded CSS and HTML, so it’s simple. It doesn’t even use Javascript, so it loads very fast. But having no database means that you cannot post comments to this blog. So if you have something to say, please contact me using the Contact link at the top-right corner of this page. Updated 2020-4-29 |