// Also test with sign bit set.
values = values.concat(values.map(x => -x));
function mod(n, d) {
with ({}); // disable Ion return n % d;
}
function makeTest(divisor) { function test() {
let expected = values.map(x => mod(x, divisor));
for (let i = 0; i < 2000; ++i) {
let j = i % values.length;
assertEq(values[j] % divisor, expected[j]);
}
}
// Create a new function for each divisor to ensure we have proper compile-time constants. returnFunction(`return ${test.toString().replaceAll("divisor", divisor)}`)();
}
// The optimisation is used for power of two values up to 2^31. for (let i = 0; i <= 31; ++i) {
let divisor = 2 ** i;
let f = makeTest(divisor);
f();
}
// Also cover some cases which don't trigger the optimisation for (let divisor of [-3, -2, -1, -0.5, 0, 0.5, 3, 5, 10]) {
let f = makeTest(divisor);
f();
}
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.