I've vectorized the Philox and AES-NI RNGs, fixes #12 (closed). I had to add a very minimal integer vectorization that only supports
+, and loop counters. Also, the
RNGNode now needs to know already during construction how it's vectorized, which is ugly, but could only be resolved by a better type system (#20). For the same reason, it is not possible to use a vectorized float RNG with double fields or vice versa. Also, we essentially discard half the random numbers in double precision mode because otherwise the number of variables we return would change between the vectorized and non-vectorized version, which is incompatible with the interface.
For the tests, we need to add
pip3 install randomgen to the Dockerfile.