diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-01-30 14:02:14 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-01-30 14:02:14 -0800 |
commit | c14cab62df1353f966d4f201d9d0a1c51de784e1 (patch) | |
tree | 9b0faecef397b0f8c7a24eb89a6338cb84937690 | |
parent | 64d52bf3633b99a0a911b7b1be2bb14d77f21584 (diff) |
use Math.imul in rand_r
-rw-r--r-- | src/library.js | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/library.js b/src/library.js index bd34ac29..b4da994e 100644 --- a/src/library.js +++ b/src/library.js @@ -3455,14 +3455,7 @@ LibraryManager.library = { rand_r__deps: ['__rand_seed'], rand_r: function(seedp) { var val = {{{ makeGetValue('seedp', 0, 'i32') }}}; - // calculate val * 31010991 + 0x676e6177 - // i32 multiplication will be rounded by javascript - var valh = val >> 16; - var vall = val & 0xffff; - var c = 31010991; - var ch = c >> 16; - var cl = c & 0xffff; - val = (((valh * cl + vall * ch) << 16) + vall * cl + 0x676e6177) & 0xffffffff; + val = (Math.imul(val, 31010991) + 0x676e6177)|0; {{{ makeSetValue('seedp', 0, 'val', 'i32') }}}; return val; }, |