[Git][cmucl/cmucl][master] RANDOM should do the same as the deftransform would do.
Raymond Toy
rtoy at common-lisp.net
Fri Dec 29 23:58:08 UTC 2017
Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
395af224 by Raymond Toy at 2017-12-29T15:57:59-08:00
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.
- - - - -
1 changed file:
- src/code/rand-xoroshiro.lisp
Changes:
=====================================
src/code/rand-xoroshiro.lisp
=====================================
--- a/src/code/rand-xoroshiro.lisp
+++ b/src/code/rand-xoroshiro.lisp
@@ -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))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/395af2246b028691a323c1fcba35114b36efb525
---
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/commit/395af2246b028691a323c1fcba35114b36efb525
You're receiving this email because of your account on gitlab.common-lisp.net.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cmucl-cvs/attachments/20171229/b4a55aa5/attachment.html>
More information about the cmucl-cvs
mailing list