16 lines
440 B
JavaScript
16 lines
440 B
JavaScript
|
// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
|
||
|
var $export = require('./_export');
|
||
|
|
||
|
$export($export.S, 'Math', {
|
||
|
umulh: function umulh(u, v){
|
||
|
var UINT16 = 0xffff
|
||
|
, $u = +u
|
||
|
, $v = +v
|
||
|
, u0 = $u & UINT16
|
||
|
, v0 = $v & UINT16
|
||
|
, u1 = $u >>> 16
|
||
|
, v1 = $v >>> 16
|
||
|
, t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
|
||
|
return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
|
||
|
}
|
||
|
});
|