X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Frandom.lisp;h=cfcc7fc9594492c10c4bdab34d446c56c37857e4;hb=a6a12ed609d5467ec43b411283e5b3568fee81df;hp=d0d672dc02ec76912115b9361640acbb67974af7;hpb=467a8e5dba8bfa2598ca8e22c1204dc173ce556f;p=sbcl.git diff --git a/src/code/random.lisp b/src/code/random.lisp index d0d672d..cfcc7fc 100644 --- a/src/code/random.lisp +++ b/src/code/random.lisp @@ -10,20 +10,8 @@ (in-package "SB!KERNEL") ;;; the size of the chunks returned by RANDOM-CHUNK -(defconstant random-chunk-length 32) - -;;; the amount that we overlap chunks by when building a large integer -;;; to make up for the loss of randomness in the low bits -(defconstant random-integer-overlap 3) - -;;; extra bits of randomness that we generate before taking the value MOD the -;;; limit, to avoid loss of randomness near the limit -(defconstant random-integer-extra-bits 10) - -;;; the largest fixnum we can compute from one chunk of bits -(defconstant random-fixnum-max - (1- (ash 1 (- random-chunk-length random-integer-extra-bits)))) +(def!constant n-random-chunk-bits 32) (sb!xc:defstruct (random-state (:constructor %make-random-state) - (:copier nil)) ; since shallow copy is wrong + (:copier nil)) ; since shallow copy is wrong (state (init-random-state) :type (simple-array (unsigned-byte 32) (627))))