Commit 395af224 authored by Raymond Toy's avatar Raymond Toy
Browse files

RANDOM should do the same as the deftransform would do.

Make RANDOM compute the value the same way as the deftransform would
do when the arg is a 32-bit integer.

The deftransform is still currently disabled for random-xoroshiro,
though.
parent fb3f58ea
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -474,8 +474,11 @@
  (declare (inline %random-single-float %random-double-float))
  (cond
    ((typep arg '(integer 1 #x100000000))
     ;; Let the compiler deftransform take care of this case.
     (%random-integer arg state))
     ;; Do the same thing as the deftransform would do.
     (if (= arg (expt 2 32))
	 (random-chunk state)
	 (values (bignum::%multiply (random-chunk state)
				    arg))))
    ((and (typep arg 'single-float) (> arg 0.0F0))
     (%random-single-float arg state))
    ((and (typep arg 'double-float) (> arg 0.0D0))