From 57fc886bed43f11d92438bfa6c44f5f895360077 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Thu, 1 Dec 2022 15:04:37 +0000 Subject: [PATCH] feat: More progress - Add C - Time the different languages. - Wrap Squiggle in a js runtime. --- C/hello-world/build.sh | 3 + C/hello-world/hello-world | Bin 0 -> 16704 bytes C/hello-world/hello-world.c | 7 + C/samples/build-and-run.sh | 15 ++ C/samples/build-gsl.sh | 13 + C/samples/samples | Bin 0 -> 24704 bytes C/samples/samples.c | 141 +++++++++++ R/samples.R | 5 +- js/samples.js | 4 +- python/samples.py | 2 +- squiggle/package.json | 6 + squiggle/samples.js | 13 + squiggle/yarn.lock | 463 ++++++++++++++++++++++++++++++++++++ time.txt | 39 +++ 14 files changed, 706 insertions(+), 5 deletions(-) create mode 100755 C/hello-world/build.sh create mode 100755 C/hello-world/hello-world create mode 100755 C/hello-world/hello-world.c create mode 100755 C/samples/build-and-run.sh create mode 100755 C/samples/build-gsl.sh create mode 100755 C/samples/samples create mode 100755 C/samples/samples.c create mode 100644 squiggle/package.json create mode 100644 squiggle/samples.js create mode 100644 squiggle/yarn.lock create mode 100644 time.txt diff --git a/C/hello-world/build.sh b/C/hello-world/build.sh new file mode 100755 index 00000000..1a3d29cf --- /dev/null +++ b/C/hello-world/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +gcc -std=c99 -Wall -lm hello-world.c -o hello-world diff --git a/C/hello-world/hello-world b/C/hello-world/hello-world new file mode 100755 index 0000000000000000000000000000000000000000..df989babe7dc7f4c89a9b8996058ab4ac677e730 GIT binary patch literal 16704 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 literal 0 HcmV?d00001 diff --git a/C/hello-world/hello-world.c b/C/hello-world/hello-world.c new file mode 100755 index 00000000..11965397 --- /dev/null +++ b/C/hello-world/hello-world.c @@ -0,0 +1,7 @@ +#include +#include + +int main(void){ + printf("Hello world!\n"); + return EXIT_SUCCESS; +} diff --git a/C/samples/build-and-run.sh b/C/samples/build-and-run.sh new file mode 100755 index 00000000..0f98f41a --- /dev/null +++ b/C/samples/build-and-run.sh @@ -0,0 +1,15 @@ +#!/bin/bash +root="$1" +gcc -std=c99 -Wall -lm "$root".c -o "$root" -I/usr/local/include -L/usr/local/lib -lgsl -lgslcblas -lm -g + +# Link libraries, for good measure +LD_LIBRARY_PATH=/usr/local/lib +export LD_LIBRARY_PATH + +# Increase stack size limit +ulimit -Ss 256000 +# -Ss: the soft limit. If you set the hard limit, you then can't raise it +# 256000: around 250Mbs, if I'm reading it correctly. + +# run +./samples diff --git a/C/samples/build-gsl.sh b/C/samples/build-gsl.sh new file mode 100755 index 00000000..ef1511ce --- /dev/null +++ b/C/samples/build-gsl.sh @@ -0,0 +1,13 @@ +#!/bin/bash +root="$1" +gcc -std=c99 -Wall -lm "$root".c -o "$root" -I/usr/local/include -L/usr/local/lib -lgsl -lgslcblas -lm -g + +# Link libraries, for good measure +LD_LIBRARY_PATH=/usr/local/lib +export LD_LIBRARY_PATH + +# Increase stack size limit +ulimit -Ss 256000 +# -Ss: the soft limit. If you set the hard limit, you then can't raise it +# 256000: around 250Mbs, if I'm reading it correctly. + diff --git a/C/samples/samples b/C/samples/samples new file mode 100755 index 0000000000000000000000000000000000000000..daa280ab2e0e9993f026caa9b191bc350f20f5d2 GIT binary patch literal 24704 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 +#include +#include +#include +#include + +#define N 10000000 +/* + * For very high values of N, you will want to increase the maximum stack trace, otherwise you will suffer a segmentation fault + * In Ubuntu/bash you can do this with $ ulimit -Ss 256000 ## ~256Mbs + * And confirm it with $ ulimit -a +*/ + +/* Helpers */ +void print(double *ys){ + for(int i=0; i helper_probs[i]) - helper_loc = ifelse(is.na(helper_which_list[1]), 1, helper_which_list[1]) + # helper_loc = ifelse(is.na(helper_which_list[1]), 1, helper_which_list[1]) + helper_loc = helper_which_list[1] target_samples = samples_list[[helper_loc]] result = sample(target_samples, 1) results[i] = result diff --git a/js/samples.js b/js/samples.js index 62976f8e..c56f463a 100644 --- a/js/samples.js +++ b/js/samples.js @@ -4,7 +4,7 @@ import stdlib_normal from '@stdlib/random/base/normal/lib/main.js'; import stdlib_lognormal from '@stdlib/random/base/lognormal/lib/main.js'; // Functions -const DEFAULT_N = 10**5 +const DEFAULT_N = 10**6 function generator(f) { let g = (a, b, n = DEFAULT_N) => { let result = new Array(n) @@ -38,7 +38,7 @@ const mixture = (dists_array, weights_array, n = DEFAULT_N) => { const helper_probs = [...new Array(n)].map(_ => Math.random()) const results = helper_probs.map(p => { let match_index = cummulative_sums.findIndex(x => x > p) - let target_loc = match_index == -1 ? 0 : match_index + let target_loc = match_index // == -1 ? 0 : match_index let target_samples = dists_array[target_loc] return target_samples[Math.floor(Math.random() * target_samples.length)]; }) diff --git a/python/samples.py b/python/samples.py index 9e53d2fa..0c6ddeb8 100644 --- a/python/samples.py +++ b/python/samples.py @@ -1,7 +1,7 @@ # imports import numpy as np rng = np.random.default_rng(123) -DEFAULT_N = 100000 +DEFAULT_N = 1000000 # three simple functions diff --git a/squiggle/package.json b/squiggle/package.json new file mode 100644 index 00000000..86fcb2e9 --- /dev/null +++ b/squiggle/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "@quri/squiggle-lang": "^0.5.1" + }, + "type": "module" +} diff --git a/squiggle/samples.js b/squiggle/samples.js new file mode 100644 index 00000000..e7d02198 --- /dev/null +++ b/squiggle/samples.js @@ -0,0 +1,13 @@ +import { run } from "@quri/squiggle-lang"; + +let squiggle_code = ` +p_a = 0.8 +p_b = 0.5 +p_c = p_a * p_b + +result = mx([0, 1, 1 to 3, 2 to 10], [(1 - p_c), p_c/2, p_c/4, p_c/4 ]) +mean(result) +` + +let output = run(squiggle_code) +console.log(output.result.value) diff --git a/squiggle/yarn.lock b/squiggle/yarn.lock new file mode 100644 index 00000000..350e041f --- /dev/null +++ b/squiggle/yarn.lock @@ -0,0 +1,463 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@commander-js/extra-typings@^9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@commander-js/extra-typings/-/extra-typings-9.4.1.tgz#acb75021594519799f509bde8f9210b114f1a0f1" + integrity sha512-v0BqORYamk1koxDon6femDGLWSL7P78vYTyOU5nFaALnmNALL+ktgdHvWbxzzBBJIKS7kv3XvM/DqNwiLcgFTA== + +"@quri/squiggle-lang@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@quri/squiggle-lang/-/squiggle-lang-0.5.1.tgz#e9708079a301833bc96c986c704a0ecd47b17358" + integrity sha512-MG0vUe1DHjsvUj827bRFYHoA4yTxI8gSPB++RibmFHETNrdeGcNUPhpNPtSl9DJFSqJFSj/knyMN76iVtLpp7Q== + dependencies: + "@commander-js/extra-typings" "^9.4.1" + "@rescript/std" "^10.0.0" + "@stdlib/stats" "^0.0.13" + commander "^9.4.1" + jstat "^1.9.5" + lodash "^4.17.21" + open "^8.4.0" + +"@rescript/std@^10.0.0": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@rescript/std/-/std-10.0.1.tgz#2ffa229f3345fea3341fed4bbc9b15949cf182ba" + integrity sha512-cchIxAI/zVU2sITZgVWz/QOKSRDGEhGyzMTWfsZdgNf6QD9+S/CUVfS1lBqPaX9GaGy1FCWHAqGYwIIaVqAS4Q== + +"@stdlib/array@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/array/-/array-0.0.12.tgz#12f40ab95bb36d424cdad991f29fc3cb491ee29e" + integrity sha512-nDksiuvRC1dSTHrf5yOGQmlRwAzSKV8MdFQwFSvLbZGGhi5Y4hExqea5HloLgNVouVs8lnAFi2oubSM4Mc7YAg== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/blas" "^0.0.x" + "@stdlib/complex" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/symbol" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/assert@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/assert/-/assert-0.0.12.tgz#1648c9016e5041291f55a6464abcc4069c5103ce" + integrity sha512-38FxFf+ZoQZbdc+m09UsWtaCmzd/2e7im0JOaaFYE7icmRfm+4KiE9BRvBT4tIn7ioLB2f9PsBicKjIsf+tY1w== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/cli" "^0.0.x" + "@stdlib/complex" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/fs" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/ndarray" "^0.0.x" + "@stdlib/number" "^0.0.x" + "@stdlib/os" "^0.0.x" + "@stdlib/process" "^0.0.x" + "@stdlib/regexp" "^0.0.x" + "@stdlib/streams" "^0.0.x" + "@stdlib/string" "^0.0.x" + "@stdlib/symbol" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/bigint@^0.0.x": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@stdlib/bigint/-/bigint-0.0.11.tgz#c416a1d727001c55f4897e6424124199d638f2fd" + integrity sha512-uz0aYDLABAYyqxaCSHYbUt0yPkXYUCR7TrVvHN+UUD3i8FZ02ZKcLO+faKisDyxKEoSFTNtn3Ro8Ir5ebOlVXQ== + dependencies: + "@stdlib/utils" "^0.0.x" + +"@stdlib/blas@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/blas/-/blas-0.0.12.tgz#7e93e42b4621fc6903bf63264f045047333536c2" + integrity sha512-nWY749bWceuoWQ7gz977blCwR7lyQ/rsIXVO4b600h+NFpeA2i/ea7MYC680utIbeu2cnDWHdglBPoK535VAzA== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/number" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/buffer@^0.0.x": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@stdlib/buffer/-/buffer-0.0.11.tgz#6137b00845e6c905181cc7ebfae9f7e47c01b0ce" + integrity sha512-Jeie5eDDa1tVuRcuU+cBXI/oOXSmMxUUccZpqXzgYe0IO8QSNtNxv9mUTzJk/m5wH+lmLoDvNxzPpOH9TODjJg== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/process" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/cli@^0.0.x": + version "0.0.10" + resolved "https://registry.yarnpkg.com/@stdlib/cli/-/cli-0.0.10.tgz#28e2fbe6865d7f5cd15b7dc5846c99bd3b91674f" + integrity sha512-OITGaxG46kwK799+NuOd/+ccosJ9koVuQBC610DDJv0ZJf8mD7sbjGXrmue9C4EOh8MP7Vm/6HN14BojX8oTCg== + dependencies: + "@stdlib/utils" "^0.0.x" + minimist "^1.2.0" + +"@stdlib/complex@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/complex/-/complex-0.0.12.tgz#3afbc190cd0a9b37fc7c6e508c3aa9fda9106944" + integrity sha512-UbZBdaUxT2G+lsTIrVlRZwx2IRY6GXnVILggeejsIVxHSuK+oTyapfetcAv0FJFLP+Rrr+ZzrN4b9G3hBw6NHA== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/constants@^0.0.x": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@stdlib/constants/-/constants-0.0.11.tgz#78cd56d6c2982b30264843c3d75bde7125e90cd2" + integrity sha512-cWKy0L9hXHUQTvFzdPkTvZnn/5Pjv7H4UwY0WC1rLt+A5CxFDJKjvnIi9ypSzJS3CAiGl1ZaHCdadoqXhNdkUg== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/number" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/fs@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/fs/-/fs-0.0.12.tgz#662365fd5846a51f075724b4f2888ae88441b70d" + integrity sha512-zcDLbt39EEM3M3wJW6luChS53B8T+TMJkjs2526UpKJ71O0/0adR57cI7PfCpkMd33d05uM7GM+leEj4eks4Cw== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/cli" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/process" "^0.0.x" + "@stdlib/string" "^0.0.x" + "@stdlib/utils" "^0.0.x" + debug "^2.6.9" + +"@stdlib/math@^0.0.x": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@stdlib/math/-/math-0.0.11.tgz#eb6638bc03a20fbd6727dd5b977ee0170bda4649" + integrity sha512-qI78sR1QqGjHj8k/aAqkZ51Su2fyBvaR/jMKQqcB/ML8bpYpf+QGlGvTty5Qdru/wpqds4kVFOVbWGcNFIV2+Q== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/ndarray" "^0.0.x" + "@stdlib/number" "^0.0.x" + "@stdlib/strided" "^0.0.x" + "@stdlib/symbol" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + debug "^2.6.9" + +"@stdlib/ndarray@^0.0.x": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@stdlib/ndarray/-/ndarray-0.0.13.tgz#2e8fc645e10f56a645a0ab81598808c0e8f43b82" + integrity sha512-Z+U9KJP4U2HWrLtuAXSPvhNetAdqaNLMcliR6S/fz+VPlFDeymRK7omRFMgVQ+1zcAvIgKZGJxpLC3vjiPUYEw== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/bigint" "^0.0.x" + "@stdlib/buffer" "^0.0.x" + "@stdlib/complex" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/number" "^0.0.x" + "@stdlib/string" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/nlp@^0.0.x": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@stdlib/nlp/-/nlp-0.0.11.tgz#532ec0f7267b8d639e4c20c6de864e8de8a09054" + integrity sha512-D9avYWANm0Db2W7RpzdSdi5GxRYALGAqUrNnRnnKIO6sMEfr/DvONoAbWruda4QyvSC+0MJNwcEn7+PHhRwYhw== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/random" "^0.0.x" + "@stdlib/string" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/number@^0.0.x": + version "0.0.10" + resolved "https://registry.yarnpkg.com/@stdlib/number/-/number-0.0.10.tgz#4030ad8fc3fac19a9afb415c443cee6deea0e65c" + integrity sha512-RyfoP9MlnX4kccvg8qv7vYQPbLdzfS1Mnp/prGOoWhvMG3pyBwFAan34kwFb5IS/zHC3W5EmrgXCV2QWyLg/Kg== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/os" "^0.0.x" + "@stdlib/string" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/os@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/os/-/os-0.0.12.tgz#08bbf013c62a7153099fa9cbac086ca1349a4677" + integrity sha512-O7lklZ/9XEzoCmYvzjPh7jrFWkbpOSHGI71ve3dkSvBy5tyiSL3TtivfKsIC+9ZxuEJZ3d3lIjc9e+yz4HVbqQ== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/cli" "^0.0.x" + "@stdlib/fs" "^0.0.x" + "@stdlib/process" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/process@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/process/-/process-0.0.12.tgz#123325079d89a32f4212f72fb694f8fe3614cf18" + integrity sha512-P0X0TMvkissBE1Wr877Avi2/AxmP7X5Toa6GatHbpJdDg6jQmN4SgPd+NZNp98YtZUyk478c8XSIzMr1krQ20g== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/buffer" "^0.0.x" + "@stdlib/cli" "^0.0.x" + "@stdlib/fs" "^0.0.x" + "@stdlib/streams" "^0.0.x" + "@stdlib/string" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/random@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/random/-/random-0.0.12.tgz#e819c3abd602ed5559ba800dba751e49c633ff85" + integrity sha512-c5yND4Ahnm9Jx0I+jsKhn4Yrz10D53ALSrIe3PG1qIz3kNFcIPnmvCuNGd+3V4ch4Mbrez55Y8z/ZC5RJh4vJQ== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/blas" "^0.0.x" + "@stdlib/buffer" "^0.0.x" + "@stdlib/cli" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/fs" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/process" "^0.0.x" + "@stdlib/stats" "^0.0.x" + "@stdlib/streams" "^0.0.x" + "@stdlib/symbol" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + debug "^2.6.9" + readable-stream "^2.1.4" + +"@stdlib/regexp@^0.0.x": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@stdlib/regexp/-/regexp-0.0.13.tgz#80b98361dc7a441b47bc3fa964bb0c826759e971" + integrity sha512-3JT5ZIoq/1nXY+dY+QtkU8/m7oWDeekyItEEXMx9c/AOf0ph8fmvTUGMDNfUq0RetcznFe3b66kFz6Zt4XHviA== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/stats@^0.0.13", "@stdlib/stats@^0.0.x": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@stdlib/stats/-/stats-0.0.13.tgz#87c973f385379d794707c7b5196a173dba8b07e1" + integrity sha512-hm+t32dKbx/L7+7WlQ1o4NDEzV0J4QSnwFBCsIMIAO8+VPxTZ4FxyNERl4oKlS3hZZe4AVKjoOVhBDtgEWrS4g== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/blas" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/ndarray" "^0.0.x" + "@stdlib/random" "^0.0.x" + "@stdlib/string" "^0.0.x" + "@stdlib/symbol" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/streams@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/streams/-/streams-0.0.12.tgz#07f5ceae5852590afad8e1cb7ce94174becc8739" + integrity sha512-YLUlXwjJNknHp92IkJUdvn5jEQjDckpawKhDLLCoxyh3h5V+w/8+61SH7TMTfKx5lBxKJ8vvtchZh90mIJOAjQ== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/buffer" "^0.0.x" + "@stdlib/cli" "^0.0.x" + "@stdlib/fs" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + debug "^2.6.9" + readable-stream "^2.1.4" + +"@stdlib/strided@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/strided/-/strided-0.0.12.tgz#86ac48e660cb7f64a45cf07e80cbbfe58be21ae1" + integrity sha512-1NINP+Y7IJht34iri/bYLY7TVxrip51f6Z3qWxGHUCH33kvk5H5QqV+RsmFEGbbyoGtdeHrT2O+xA+7R2e3SNg== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/ndarray" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/string@^0.0.x": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@stdlib/string/-/string-0.0.14.tgz#4feea4f9089ab72428eebb65fe7b93d90a7f34f4" + integrity sha512-1ClvUTPysens7GZz3WsrkFYIFs8qDmnXkyAd3zMvTXgRpy7hqrv6nNzLMQj8BHv5cBWaWPOXYd/cZ+JyMnZNQQ== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/cli" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/fs" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/nlp" "^0.0.x" + "@stdlib/process" "^0.0.x" + "@stdlib/regexp" "^0.0.x" + "@stdlib/streams" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/symbol@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/symbol/-/symbol-0.0.12.tgz#b9f396b0bf269c2985bb7fe99810a8e26d7288c3" + integrity sha512-2IDhpzWVGeLHgsvIsX12RXvf78r7xBkc4QLoRUv3k7Cp61BisR1Ym1p0Tq9PbxT8fknlvLToh9n5RpmESi2d4w== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/time@^0.0.x": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@stdlib/time/-/time-0.0.14.tgz#ea6daa438b1d3b019b99f5091117ee4bcef55d60" + integrity sha512-1gMFCQTabMVIgww+k4g8HHHIhyy1tIlvwT8mC0BHW7Q7TzDAgobwL0bvor+lwvCb5LlDAvNQEpaRgVT99QWGeQ== + dependencies: + "@stdlib/assert" "^0.0.x" + "@stdlib/cli" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/fs" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/string" "^0.0.x" + "@stdlib/utils" "^0.0.x" + +"@stdlib/types@^0.0.x": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@stdlib/types/-/types-0.0.14.tgz#02d3aab7a9bfaeb86e34ab749772ea22f7b2f7e0" + integrity sha512-AP3EI9/il/xkwUazcoY+SbjtxHRrheXgSbWZdEGD+rWpEgj6n2i63hp6hTOpAB5NipE0tJwinQlDGOuQ1lCaCw== + +"@stdlib/utils@^0.0.x": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@stdlib/utils/-/utils-0.0.12.tgz#670de5a7b253f04f11a4cba38f790e82393bcb46" + integrity sha512-+JhFpl6l7RSq/xGnbWRQ5dAL90h9ONj8MViqlb7teBZFtePZLMwoRA1wssypFcJ8SFMRWQn7lPmpYVUkGwRSOg== + dependencies: + "@stdlib/array" "^0.0.x" + "@stdlib/assert" "^0.0.x" + "@stdlib/blas" "^0.0.x" + "@stdlib/buffer" "^0.0.x" + "@stdlib/cli" "^0.0.x" + "@stdlib/constants" "^0.0.x" + "@stdlib/fs" "^0.0.x" + "@stdlib/math" "^0.0.x" + "@stdlib/os" "^0.0.x" + "@stdlib/process" "^0.0.x" + "@stdlib/random" "^0.0.x" + "@stdlib/regexp" "^0.0.x" + "@stdlib/streams" "^0.0.x" + "@stdlib/string" "^0.0.x" + "@stdlib/symbol" "^0.0.x" + "@stdlib/time" "^0.0.x" + "@stdlib/types" "^0.0.x" + debug "^2.6.9" + +commander@^9.4.1: + version "9.4.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" + integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +jstat@^1.9.5: + version "1.9.6" + resolved "https://registry.yarnpkg.com/jstat/-/jstat-1.9.6.tgz#60e801b0d4c26e37aab0f375d1859fe9d60e10c0" + integrity sha512-rPBkJbK2TnA8pzs93QcDDPlKcrtZWuuCo2dVR0TFLOJSxhqfWOVCSp8aV3/oSbn+4uY4yw1URtLpHQedtmXfug== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +minimist@^1.2.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +open@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +readable-stream@^2.1.4: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== diff --git a/time.txt b/time.txt new file mode 100644 index 00000000..63cb3188 --- /dev/null +++ b/time.txt @@ -0,0 +1,39 @@ +# C + +0.888458 + +real 0m0,442s +user 0m0,378s +sys 0m0,064s + +# Squiggle + +real 0m0,488s +user 0m0,567s +sys 0m0,099s + + +# NodeJS + +0.8849940532403973 + +real 0m0,732s +user 0m0,769s +sys 0m0,131s + + +## Python + +0.8887373869178242 + +real 0m16,641s +user 0m16,693s +sys 0m0,517s + +## R +[1] 0.885141 + +real 0m7,000s +user 0m6,944s +sys 0m0,052s +