Pseudo-random numbers/Xorshift star: Difference between revisions

Content added Content deleted
(Added Go)
m (→‎{{header|Raku}}: More sensible default and constraints on seed)
Line 203: Line 203:


<lang perl6>class Xorshift-star {
<lang perl6>class Xorshift-star {
has $!seed = 0;
has $!seed;
has $!state;
has $!state;
constant mask64 = 2⁶⁴ - 1;
constant mask64 = 2⁶⁴ - 1;
constant const = 0x2545F4914F6CDD1D;
constant const = 0x2545F4914F6CDD1D;


submethod BUILD( :$seed ) { $!seed = $seed }
submethod BUILD ( Int :$seed where * > 0 = 1 ) { $!seed = $seed }


method TWEAK { $!state = $!seed +& mask64 }
method TWEAK { $!state = $!seed +& mask64 }