Sebastiano Vigna
Sebastiano Vigna
Eh, it's... complicated. All this stuff is complicated. I think your guidelines are fine, but, for example, you discuss random seeding, and random seeding without a minimum suggestion of independence...
Er... "collision resistant" is a property of hash functions, not on PRNG. Well, that's not a review, just something odd I noticed...
Still, I'm totally confused. You mention a large period (i.e., close to the number of possible seeds) as a property of high-quality PRNGs, yet you list Jenkin's jsf, which has...
Current text: 'has a period (maximum size of a "random" number cycle) at or close to the number of different seeds the PRNG admits' ...and I'm out of this discussion...
OK, this looks much much better! Nice work. Corrections: - The lower bits of an LCG with power-of-2 do not have "low linear complexity": they have a shorter period. Their...
Ahem... "Convert the characteristic polynomial to an integer (CP), so that its least significant bit is the 0-order coefficient, its next bit is the 1st-order coefficient, and so on." Why...
I'm sorry, but you're making a gigantic confusion. Nobody "converts" a polynomial to an integer. A polynomial is a polynomial—it is an abstract algebraic object defined by certain universal properties....
I won't be able to look at this for a couple of weeks as I'll be travelling. Did you use some of the infrastructure for primitive functions (look for PRIMITIVE_FUNCTION...
Ahem, I know I'm late, but I'm on vacation now. I'll be back to work in full in a couple of weeks.
So, the way we did that for other containers is quite different—see, e.g., toSet() in OpenHashSet.drv. It would be better to try to follow the same scheme.