var $ = require('../internals/export'); | |
// `Math.umulh` method | |
// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 | |
$({ target: 'Math', stat: true }, { | |
umulh: function umulh(u, v) { | |
var UINT16 = 0xFFFF; | |
var $u = +u; | |
var $v = +v; | |
var u0 = $u & UINT16; | |
var v0 = $v & UINT16; | |
var u1 = $u >>> 16; | |
var v1 = $v >>> 16; | |
var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); | |
return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16); | |
} | |
}); |