<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Collatz-Weyl Generators: High Quality and High Throughput Parameterized Pseudorandom Number Generators · HackerPapers discussions</title><link>https://hackerpaper.kaipfister.de/p/2312.17043/</link><description>Collected HN comments and submissions linking this paper.</description><language>en</language><lastBuildDate>Mon, 02 Nov 2026 11:16:22 GMT</lastBuildDate><atom:link href="https://hackerpaper.kaipfister.de/p/2312.17043/feed.xml" rel="self" type="application/rss+xml" /><item><title>Collatz-Weyl Generators: High Quality and High Throughput Parameterized Pseudorandom Number Generators — HN submission</title><link>https://news.ycombinator.com/item?id=45745607</link><guid isPermaLink="false">urn:hackerpapers:submission:2312.17043:45745607</guid><pubDate>Wed, 29 Oct 2025 11:55:42 GMT</pubDate><description>&lt;p&gt;Collatz-Weyl Generators: Pseudorandom Number Generators (2023)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;59 points; 1 discussion reply on HN. &lt;a href="https://hackerpaper.kaipfister.de/p/2312.17043/"&gt;Paper and source history&lt;/a&gt;. A submission is not an endorsement.&lt;/p&gt;</description><category>cs.CE</category></item><item><title>Collatz-Weyl Generators: High Quality and High Throughput Parameterized Pseudorandom Number Generators — mentioned by camel-cdr</title><link>https://news.ycombinator.com/item?id=39738872</link><guid isPermaLink="false">urn:hackerpapers:mention:2312.17043:39738872</guid><pubDate>Sun, 17 Mar 2024 23:05:39 GMT</pubDate><description>&lt;p&gt;I like how the earliest and easiest PRNGs are making a comeback: First middle square method, just add a weyl sequence to it, and all statistical tests stop failing [0] uint64_t x, weyl; uint32_t msws(void) { x = x * x + (weyl += 0xB5AD4ECEDA1CE2A9); return x = (x &amp;gt;&amp;gt; 32) | (x &amp;lt;&amp;lt; 32); } And now Collatz, just add a weyl sequence to it, and all statistical tests stop failing [1] __uint128_t x; uint64_t a, weyl; __uint128_t CWG128_64(void) { x = (x | 1) * ((a += x) &amp;gt;&amp;gt; 1) ^ (weyl += 0xB5AD4ECEDA1CE2A9); return a &amp;gt;&amp;gt; 48 ^ x; } The fun part is that the constant used in the weyl sequence is pretty much…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/2312.17043/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.CE</category></item><item><title>Collatz-Weyl Generators: High Quality and High Throughput Parameterized Pseudorandom Number Generators — mentioned by camel-cdr</title><link>https://news.ycombinator.com/item?id=39640466</link><guid isPermaLink="false">urn:hackerpapers:mention:2312.17043:39640466</guid><pubDate>Fri, 08 Mar 2024 12:32:47 GMT</pubDate><description>&lt;p&gt;I like how the earliest and easiest PRNGs are making a comeback: First middle square method, just add a weyl sequence to it, and all statistical tests stop failing [0] uint64_t x, weyl; uint32_t msws(void) { x = x * x + (weyl += 0xB5AD4ECEDA1CE2A9); return x = (x &amp;gt;&amp;gt; 32) | (x &amp;lt;&amp;lt; 32); } And now Collatz, just add a weyl sequence to it, and all statistical tests stop failing [1] __uint128_t x; uint64_t a, weyl; __uint128_t CWG128_64(void) { x = (x | 1) * ((a += x) &amp;gt;&amp;gt; 1) ^ (weyl += 0xB5AD4ECEDA1CE2A9); return a &amp;gt;&amp;gt; 48 ^ x; } The fun part is that the constant used in the weyl sequence is pretty much…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/2312.17043/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.CE</category></item></channel></rss>
