- SEE ALSO
- A RANDOM BENCHMARK
- COPYRIGHT AND LICENSE
Math::Random::PCG32 - minimal PCG random number generator
use Math::Random::PCG32; # ideally use better seeds than this (see e.g. what # Math::Random::Secure does) my $rng = Math::Random::PCG32->new( 42, 54 ); $rng->rand;
This is a minimal PCG random number generator.
- new initstate initseq
Makes a new object. No peeking! The two seed values should be 64-bit unsigned integers.
Returns a random number from an object constructed by new. The return value should be in the range of a 32-bit unsigned integer.
Please report any bugs or feature requests to
bug-math-random-pcg32 at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Math-Random-PCG32.
Patches might best be applied towards:
New code, not many features, questionable XS. Probably needs a modern compiler for the
stdint types. Untested on older versions of Perl.
Math::Random::MTwist is very fast if more complicated.
This pits the (very bad) core
rand function against the
rand calls from Math::Random::ISAAC, Math::Random::MTwist, Math::Random::Xorshift, and this module for
cmpthese( -5, ... via the Benchmark module on my somehow still functional 2009 macbook.
Rate isacc xorsh pcg mtwist rand isacc 236759/s -- -92% -94% -96% -99% xorsh 3132085/s 1223% -- -19% -42% -89% pcg 3847667/s 1525% 23% -- -29% -87% mtwist 5437236/s 2197% 74% 41% -- -82% rand 29808447/s 12490% 852% 675% 448% --
thrig - Jeremy Mates (cpan:JMATES)
<jmates at cpan.org>
Perl module copyright (C) 2018 by Jeremy Mates
Code under src/ directory mostly (c) 2014 M.E. O'Neill / pcg-random.org
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.