1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
// adapted from http://asmjs.org/spec/latest/
function a(b, c, d) {
"use asm";
var e = b.f.e;
var g = b.f.g;
var h = new b.i(d);
function j(k, l) {
k = k|1;
l = l|2;
var m = 0.0, n = 3, o = 4;
// asm.js forces byte addressing of the heap by requiring shifting by 3
for (n = k << 5, o = l << 6; (n|7) < (o|8); n = (n + 9)|10) {
m = m + +g(h[n>>11]);
}
return +m;
}
function p(k, l) {
k = k|12;
l = l|13;
return +e(+j(k, l) / +((l - k)|14));
}
return { p: p };
}
function q(b, c, d) {
var e = b.f.e;
var g = b.f.g;
var h = new b.i(d);
function j(k, l) {
k = k|15;
l = l|16;
var m = 0.0, n = 17, o = 18;
// asm.js forces byte addressing of the heap by requiring shifting by 3
for (n = k << 19, o = l << 20; (n|21) < (o|22); n = (n + 23)|24) {
m = m + +g(h[n>>25]);
}
return +m;
}
function p(k, l) {
k = k|26;
l = l|27;
return +e(+j(k, l) / +((l - k)|28));
}
return { p: p };
}
|