'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 */