function gcd(a, b) {
a |= 0;
b |= 0; while (b !== 0) {
[a, b] = [b, a % b];
} return Math.abs(a);
}
function assertAllCombinationsTested(xs, ys, n) { // If the array lengths are relatively prime and their product is at least // |n| long, all possible combinations are tested at least once. Make sure // we test each combination at least three times. var m = 3;
function fillWithZeros(ta) {
let length = ta.length;
let zeros = 1; while (gcd(length, length + zeros) !== 1) {
zeros++;
}
let result = new ta.constructor(length + zeros);
result.set(ta); return result;
}
function testI64() { for (var i = 0; i < 200; ++i) { var v = i64[i % i64.length];
// Cast to Int128 to ensure non-optimized BigInt comparison is used. var eq_zero = v == BigInt.asIntN(128, 0n); var lt_zero = v < BigInt.asIntN(128, 0n);
var eq_one = v == BigInt.asIntN(128, 1n); var lt_one = v < BigInt.asIntN(128, 1n);
var eq_neg_one = v == BigInt.asIntN(128, -1n); var lt_neg_one = v < BigInt.asIntN(128, -1n);
var eq_i31 = v == BigInt.asIntN(128, 0x8000_0000n); var lt_i31 = v < BigInt.asIntN(128, 0x8000_0000n);
var eq_i32 = v == BigInt.asIntN(128, 0x1_0000_0000n); var lt_i32 = v < BigInt.asIntN(128, 0x1_0000_0000n);
function testI64_R() { for (var i = 0; i < 200; ++i) { var v = i64[i % i64.length];
// Cast to Int128 to ensure non-optimized BigInt comparison is used. var eq_zero = v == BigInt.asIntN(128, 0n); var lt_zero = v < BigInt.asIntN(128, 0n);
var eq_one = v == BigInt.asIntN(128, 1n); var lt_one = v < BigInt.asIntN(128, 1n);
var eq_neg_one = v == BigInt.asIntN(128, -1n); var lt_neg_one = v < BigInt.asIntN(128, -1n);
var eq_i31 = v == BigInt.asIntN(128, 0x8000_0000n); var lt_i31 = v < BigInt.asIntN(128, 0x8000_0000n);
var eq_i32 = v == BigInt.asIntN(128, 0x1_0000_0000n); var lt_i32 = v < BigInt.asIntN(128, 0x1_0000_0000n);
function testI64_I32Constant() { for (var i = 0; i < 200; ++i) { var v = i64[i % i64.length];
// Cast to Int128 to ensure non-optimized BigInt comparison is used. var eq_zero = v == BigInt.asIntN(128, 0n); var lt_zero = v < BigInt.asIntN(128, 0n);
var eq_one = v == BigInt.asIntN(128, 1n); var lt_one = v < BigInt.asIntN(128, 1n);
var eq_neg_one = v == BigInt.asIntN(128, -1n); var lt_neg_one = v < BigInt.asIntN(128, -1n);
var eq_i31 = v == BigInt.asIntN(128, 0x8000_0000n); var lt_i31 = v < BigInt.asIntN(128, 0x8000_0000n);
var eq_i32 = v == BigInt.asIntN(128, 0x1_0000_0000n); var lt_i32 = v < BigInt.asIntN(128, 0x1_0000_0000n);
function testI64_I32Constant_R() { for (var i = 0; i < 200; ++i) { var v = i64[i % i64.length];
// Cast to Int128 to ensure non-optimized BigInt comparison is used. var eq_zero = v == BigInt.asIntN(128, 0n); var lt_zero = v < BigInt.asIntN(128, 0n);
var eq_one = v == BigInt.asIntN(128, 1n); var lt_one = v < BigInt.asIntN(128, 1n);
var eq_neg_one = v == BigInt.asIntN(128, -1n); var lt_neg_one = v < BigInt.asIntN(128, -1n);
var eq_i31 = v == BigInt.asIntN(128, 0x8000_0000n); var lt_i31 = v < BigInt.asIntN(128, 0x8000_0000n);
var eq_i32 = v == BigInt.asIntN(128, 0x1_0000_0000n); var lt_i32 = v < BigInt.asIntN(128, 0x1_0000_0000n);
function testU64() { for (var i = 0; i < 200; ++i) { var v = u64[i % u64.length];
// Cast to Uint128 to ensure non-optimized BigInt comparison is used. var eq_zero = v == BigInt.asUintN(128, 0n); var lt_zero = v < BigInt.asUintN(128, 0n);
var eq_one = v == BigInt.asUintN(128, 1n); var lt_one = v < BigInt.asUintN(128, 1n);
var eq_i31 = v == BigInt.asUintN(128, 0x8000_0000n); var lt_i31 = v < BigInt.asUintN(128, 0x8000_0000n);
var eq_i32 = v == BigInt.asUintN(128, 0x1_0000_0000n); var lt_i32 = v < BigInt.asUintN(128, 0x1_0000_0000n);
function testU64_R() { for (var i = 0; i < 200; ++i) { var v = u64[i % u64.length];
// Cast to Uint128 to ensure non-optimized BigInt comparison is used. var eq_zero = v == BigInt.asUintN(128, 0n); var lt_zero = v < BigInt.asUintN(128, 0n);
var eq_one = v == BigInt.asUintN(128, 1n); var lt_one = v < BigInt.asUintN(128, 1n);
var eq_i31 = v == BigInt.asUintN(128, 0x8000_0000n); var lt_i31 = v < BigInt.asUintN(128, 0x8000_0000n);
var eq_i32 = v == BigInt.asUintN(128, 0x1_0000_0000n); var lt_i32 = v < BigInt.asUintN(128, 0x1_0000_0000n);
function testU64_I32Constant() { for (var i = 0; i < 200; ++i) { var v = u64[i % u64.length];
// Cast to Uint128 to ensure non-optimized BigInt comparison is used. var eq_zero = v == BigInt.asUintN(128, 0n); var lt_zero = v < BigInt.asUintN(128, 0n);
var eq_one = v == BigInt.asUintN(128, 1n); var lt_one = v < BigInt.asUintN(128, 1n);
var eq_i31 = v == BigInt.asUintN(128, 0x8000_0000n); var lt_i31 = v < BigInt.asUintN(128, 0x8000_0000n);
var eq_i32 = v == BigInt.asUintN(128, 0x1_0000_0000n); var lt_i32 = v < BigInt.asUintN(128, 0x1_0000_0000n);
function testU64_I32Constant_R() { for (var i = 0; i < 200; ++i) { var v = u64[i % u64.length];
// Cast to Uint128 to ensure non-optimized BigInt comparison is used. var eq_zero = v == BigInt.asUintN(128, 0n); var lt_zero = v < BigInt.asUintN(128, 0n);
var eq_one = v == BigInt.asUintN(128, 1n); var lt_one = v < BigInt.asUintN(128, 1n);
var eq_i31 = v == BigInt.asUintN(128, 0x8000_0000n); var lt_i31 = v < BigInt.asUintN(128, 0x8000_0000n);
var eq_i32 = v == BigInt.asUintN(128, 0x1_0000_0000n); var lt_i32 = v < BigInt.asUintN(128, 0x1_0000_0000n);
// Compare Int64 against Uint64. function testIU64() { var r64 = new BigUint64Array(i64.buffer); for (var i = 0; i < 200; ++i) { var v = i64[i % i64.length]; var w = r64[i % r64.length];
// Cast to Uint128 to ensure non-optimized BigInt comparison is used. var eq = v == BigInt.asUintN(128, v); var lt = v < BigInt.asUintN(128, v);
// Compare Uint64 against Int64. function testUI64() { var r64 = new BigUint64Array(u64.buffer); for (var i = 0; i < 200; ++i) { var v = u64[i % u64.length]; var w = r64[i % r64.length];
// Cast to Int128 to ensure non-optimized BigInt comparison is used. var eq = v == BigInt.asIntN(128, v); var lt = v < BigInt.asIntN(128, v);
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.