Simple estimation scripts which do the same in different programming languages.
Go to file
2023-05-21 01:34:17 -04:00
C clean up compilation of C example 2023-05-20 20:20:43 -04:00
js tweak: make null window an object in order for this to run with bun 2022-12-07 19:14:31 +00:00
python fix: improve warnings for a check which should never fail 2022-12-01 16:12:54 +00:00
R fix: improve warnings for a check which should never fail 2022-12-01 16:12:54 +00:00
squiggle feat: rejiggle default number of samples. 2022-12-03 13:14:08 +00:00
wip tweak nim makefile 2023-05-21 01:34:17 -04:00
.gitignore feat: add the node modules 2022-12-03 12:44:49 +00:00
README.md tweak: change readme 2022-12-06 22:50:05 +00:00
time.txt feat: recompute time for Squiggle 2022-12-03 13:15:28 +00:00

Time to BOTEC

About

This repository contains example of very simple code to manipulate samples in various programming languages. As of now, it may be useful for checking the validity of simple estimations.

The title of this repository is a pun on two meanings of "time to": "how much time does it take to do x", and "let's do x".

Current languages

  • Python
  • R
  • Squiggle
  • Javascript (NodeJS)
  • C

Performance table

With the time tool, using 1M samples:

Language Time
C 0m0,442s
Node 0m0,732s
Squiggle 0m1,536s
R 0m7,000s
Python (CPython) 0m16,641s

I was very surprised that Node/Squiggle code was almost as fast as the raw C code. For the Python code, it's possible that the lack of speed is more a function of me not being as familiar with Python. It's also very possible that the code would run faster with PyPy

Languages I may add later

  • Julia (TuringML)
  • Rust
  • Lisp
  • ... and suggestions welcome
  • Stan

Roadmap

The future of this project is uncertain. In most words, I simply forget about this repository.

To do:

  • Check whether the Squiggle code is producing 1M samples. Still not too sure.
  • Differentiate between initial startup time (e.g., compiling, loading environment) and runtime. This matters because startup time could be ~constant, so for larger projects only the runtime matters.

Other similar projects