summaryrefslogtreecommitdiff
path: root/src/toys/godel/js/godel-worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/toys/godel/js/godel-worker.js')
-rw-r--r--src/toys/godel/js/godel-worker.js42
1 files changed, 0 insertions, 42 deletions
diff --git a/src/toys/godel/js/godel-worker.js b/src/toys/godel/js/godel-worker.js
deleted file mode 100644
index 1ba9da4..0000000
--- a/src/toys/godel/js/godel-worker.js
+++ /dev/null
@@ -1,42 +0,0 @@
-const isPrime = (n) => {
- if (n < 2) {
- return false;
- }
- if (n === 2) {
- return true;
- }
- if (n % 2 === 0) {
- return false;
- }
- const limit = Math.floor(Math.sqrt(n));
- for (let i = 3; i <= limit; i += 2) {
- if (n % i === 0) {
- return false;
- }
- }
- return true;
-};
-
-const primes = [2];
-const primeAt = (index) => {
- while (primes.length < index) {
- let candidate = primes[primes.length - 1] + 1;
- while (!isPrime(candidate)) {
- candidate += 1;
- }
- primes.push(candidate);
- }
- return primes[index - 1];
-};
-
-const computeGodelNumber = (sequence) => {
- return sequence.reduce((acc, exponent, idx) => {
- const prime = BigInt(primeAt(idx + 1));
- return acc * prime ** BigInt(exponent);
- }, BigInt(1)) - BigInt(1);
-};
-
-self.addEventListener("message", (event) => {
- const result = computeGodelNumber(event.data);
- self.postMessage(result.toString());
-});