Hi

On 6/17/22 14:52, Go Kudo wrote:
(3) This is a very tricky problem. As you point out, it took me a while to
figure out PCG64 too.
However, after statistical testing PCG64 (pcg_oneseq-128-xsl-rr-64) seems
to do a good job.
(Though Xoshiro256** does as well, and has a more obvious name.)

Regarding the naming issue, I have looked at implementations in other
languages
(Python's NumPy and Rust) and none of them seem to be very clear.

I agree with you about keeping the names clear. Although it is complicated,
I don't think anyone would be particularly bothered by the name
PcgOneseq128XslRr64.
However, some people may continue to use MT because they don't understand
it well.

I think the possible options are as follows

A. Rename PCG64 to PcgOneseq128XslRr64
B. Rename PCG64 to PcgOneseq128XslRr64 and then re-implement the more
obvious Xoshiro256StarStar
C. Remove PCG64 and re-implement Xoshiro256StarStart

Personally, I think B is the best.

What do you think?


Any of those would be fine for me. You can either make a decision as the RFC author and include that into a general vote, or you could split this into separate votes (each with a 2/3 decision):

- Add xoshiro256** as Xoshiro256StarStar?
- If xoshiro256** is added: Remove PCG64?
- If PCG64 stays: Rename PCG64 to PcgOneseq128XslRr64?

Best regards
Tim Düsterhus

PS: I believe you missed my suggestion (4) Randomizer::randomString($charset, $length).

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to