On Mon, Mar 8, 2021 at 11:50 PM Fabien COELHO <coe...@cri.ensmp.fr> wrote: > > I may have time to become familiar or at least semi-comfortable with all > > that weird math in it by then. > > Yep. > > Generating a parametric good-quality low-cost (but not > cryptographically-secure) pseudo-random permutations on arbitrary sizes > (not juste power of two sizes) is not a trivial task, I had to be quite > creative to achieve it, hence the "weird" maths. I had a lot of bad > not-really-working ideas before the current status of the patch. > > The code could be simplified if we assume that PG_INT128_TYPE will be > available on all relevant architectures, and accept the feature not to be > available if not.
That doesn't sound like a bad option to me, if it makes this much simpler. The main modern system without it seems to be MSVC. The Linux, BSD, Apple, illumos, AIX systems using Clang/GCC with Intel/AMD/ARM/PowerPC CPUs have it, and the Windows systems using open source compilers have it.