time-to-botec/squiggle/node_modules/@quri/squiggle-lang/benchmark/Benchmark_Array.bs.js
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00

93 lines
2.5 KiB
JavaScript

'use strict';
var Caml = require("@rescript/std/lib/js/caml.js");
var $$Array = require("@rescript/std/lib/js/array.js");
var Belt_Array = require("@rescript/std/lib/js/belt_Array.js");
var Belt_Range = require("@rescript/std/lib/js/belt_Range.js");
var Benchmark_Helpers$QuriSquiggleLang = require("./Benchmark_Helpers.bs.js");
function beltArray(param) {
var x = Belt_Array.make(1000, 0);
Belt_Range.forEach(1, 300000, (function (param) {
Belt_Array.map(x, (function (v) {
return v;
}));
}));
}
function jsArray2(param) {
var x = Belt_Array.make(1000, 0);
Belt_Range.forEach(1, 300000, (function (param) {
x.map(function (v) {
return v;
});
}));
}
function ocamlArray(param) {
var x = Belt_Array.make(1000, 0);
Belt_Range.forEach(1, 300000, (function (param) {
$$Array.map((function (v) {
return v;
}), x);
}));
}
function runAll(param) {
console.log("Mapping identity function over arrays of size " + (1000).toString() + " (" + (300000).toString() + " iterations)");
Benchmark_Helpers$QuriSquiggleLang.measure("Belt.Array.map", beltArray);
Benchmark_Helpers$QuriSquiggleLang.measure("Js.Array2.map", jsArray2);
Benchmark_Helpers$QuriSquiggleLang.measure("Array.map", ocamlArray);
}
var $$Map = {
runAll: runAll
};
function jsArray2$1(param) {
var x = Belt_Array.make(1000, 0);
var compare = function (a, b) {
if (a < b) {
return -1;
} else {
return 1;
}
};
Belt_Range.forEach(1, 30000, (function (param) {
x.sort(compare);
}));
}
function jsArray2withOcamlCompare(param) {
var x = Belt_Array.make(1000, 0);
Belt_Range.forEach(1, 30000, (function (param) {
x.sort(Caml.float_compare);
}));
}
function ocamlArray$1(param) {
var x = Belt_Array.make(1000, 0);
Belt_Range.forEach(1, 30000, (function (param) {
$$Array.fast_sort(Caml.float_compare, x);
}));
}
function runAll$1(param) {
console.log("Sorting arrays of size " + (1000).toString() + " (" + (30000).toString() + " iterations)");
Benchmark_Helpers$QuriSquiggleLang.measure("Js.Array2.sort", jsArray2$1);
Benchmark_Helpers$QuriSquiggleLang.measure("Js.Array2.sort with Ocaml compare", jsArray2withOcamlCompare);
Benchmark_Helpers$QuriSquiggleLang.measure("Array.fast_sort", ocamlArray$1);
}
var Sort = {
runAll: runAll$1
};
runAll(undefined);
runAll$1(undefined);
exports.$$Map = $$Map;
exports.Sort = Sort;
/* Not a pure module */