X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-random.lisp;h=3e353829bc960415ee9d6351d5776f49fca8ec80;hb=5e4205cf17c3a04d4a8f6aed55c28b5a338caf47;hp=c729bbab41363bb2471f645e9e37183b143a9ad3;hpb=78fa16bf55be44cc16845be84d98023e83fb14bc;p=sbcl.git diff --git a/src/code/target-random.lisp b/src/code/target-random.lisp index c729bba..3e35382 100644 --- a/src/code/target-random.lisp +++ b/src/code/target-random.lisp @@ -164,6 +164,13 @@ (defun random-chunk (state) (declare (type random-state state)) (sb!vm::random-mt19937 (random-state-state state))) + +#!-sb-fluid (declaim (inline big-random-chunk)) +(defun big-random-chunk (state) + (declare (type random-state state)) + (logand (1- (expt 2 64)) + (logior (ash (random-chunk state) 32) + (random-chunk state)))) ;;; Handle the single or double float case of RANDOM. We generate a ;;; float between 0.0 and 1.0 by clobbering the significand of 1.0