Pseudo-random numbers/Xorshift star: Difference between revisions

Content added Content deleted
(Realize in F#)
(→‎{{header|Factor}}: restrict seed to positive integers)
Line 118: Line 118:
CONSTANT: const 0x2545F4914F6CDD1D
CONSTANT: const 0x2545F4914F6CDD1D


! Restrict seed value to positive integers.
TUPLE: xorshift* state ;
PREDICATE: positive < integer 0 > ;
ERROR: seed-nonpositive seed ;

TUPLE: xorshift* { state positive initial: 1 } ;


: <xorshift*> ( seed -- xorshift* )
: <xorshift*> ( seed -- xorshift* )
dup positive? [ seed-nonpositive ] unless
mask64 bitand xorshift* boa ;
mask64 bitand xorshift* boa ;