From 385da8c703b20638134b1c838c3f9a8b7cf5937e Mon Sep 17 00:00:00 2001
From: braxtonhall
Date: Sun, 23 Oct 2022 15:38:10 -0700
Subject: Describe Yanze's contribution in the README
---
README.md | 3 +++
1 file changed, 3 insertions(+)
(limited to 'README.md')
diff --git a/README.md b/README.md
index fffae69..b3dd74f 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,9 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
+### [`funemy`](https://github.com/funemy)
+- [`agda`](./entries/funemy/agda/fib1.agda)
+
### [`jyoo980`](https://github.com/jyoo980)
- [`scala`](./entries/jyoo980/scala/Fib.scala)
--
cgit v1.2.3-70-g09d2
From 0625380029d8eaf6a3aca4b01ac1a4bffe79c1d0 Mon Sep 17 00:00:00 2001
From: Aymen Dirar
Date: Sun, 23 Oct 2022 16:09:05 -0700
Subject: fix readme
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'README.md')
diff --git a/README.md b/README.md
index b3dd74f..c56217d 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@ Can you please give me a Fibonacci function? Ideally (but not necessarily) one t
For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art Gallery](https://www.instagram.com/hatch_artgallery).
### [`adirar111`](https://github.com/adirar111)
-- [`y86`](./entries/adirar111/y86/fib.ys)
+- [`y86`](./entries/adirar111/y86/fib.s)
### [`braxtonhall`](https://github.com/braxtonhall)
- [`adam`](./entries/braxtonhall/adam/main.py) (WIP)
--
cgit v1.2.3-70-g09d2
From 70773c25993c9efe2c48f53521367eb7561708e6 Mon Sep 17 00:00:00 2001
From: braxtonhall
Date: Sun, 23 Oct 2022 16:24:48 -0700
Subject: Add Yanze's Z3 version to the readme
---
README.md | 1 +
1 file changed, 1 insertion(+)
(limited to 'README.md')
diff --git a/README.md b/README.md
index c56217d..e2c309e 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,7 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
### [`funemy`](https://github.com/funemy)
- [`agda`](./entries/funemy/agda/fib1.agda)
+- [`z3`](./entries/funemy/z3/z3fib.sh)
### [`jyoo980`](https://github.com/jyoo980)
- [`scala`](./entries/jyoo980/scala/Fib.scala)
--
cgit v1.2.3-70-g09d2
From 8c3619fcb5e01b14eeab69bfa8c88cd75ed16ac9 Mon Sep 17 00:00:00 2001
From: braxtonhall
Date: Sun, 23 Oct 2022 16:28:11 -0700
Subject: Make Jon's work/description consistent with everyone else
---
README.md | 3 +++
entries/ionathanch/agda/Fib.agda | 19 +++++++++++++++++++
entries/ionchy/agda/Fib.agda | 19 -------------------
3 files changed, 22 insertions(+), 19 deletions(-)
create mode 100644 entries/ionathanch/agda/Fib.agda
delete mode 100644 entries/ionchy/agda/Fib.agda
(limited to 'README.md')
diff --git a/README.md b/README.md
index e2c309e..d126e3b 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,9 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
+### [`ionathanch`](https://github.com/ionathanch)
+- [`agda`](./entries/ionathanch/agda/Fib.agda)
+
### [`funemy`](https://github.com/funemy)
- [`agda`](./entries/funemy/agda/fib1.agda)
- [`z3`](./entries/funemy/z3/z3fib.sh)
diff --git a/entries/ionathanch/agda/Fib.agda b/entries/ionathanch/agda/Fib.agda
new file mode 100644
index 0000000..a12b0a5
--- /dev/null
+++ b/entries/ionathanch/agda/Fib.agda
@@ -0,0 +1,19 @@
+
+open import Agda.Builtin.Nat
+open import Agda.Builtin.List
+open import Agda.Builtin.Reflection
+
+data Fib : Nat → Nat → Set where
+ instance F0 : Fib 0 0
+ instance F1 : Fib 1 1
+ instance Fk : ∀ {k n m} → ⦃ Fib k n ⦄ → ⦃ Fib (suc k) m ⦄ → Fib (suc (suc k)) (n + m)
+
+fib' : ∀ k {n} → ⦃ Fib k n ⦄ → Nat
+fib' k {n} ⦃ fib ⦄ = n
+
+macro
+ fib : Term → Term → TC _
+ fib t hole = unify hole (def (quote fib') (arg i t ∷ []))
+ where i = arg-info visible (modality relevant quantity-ω)
+
+{- Get the [n]th Fibonacci number by normalization via C-n `fib [n]`. -}
diff --git a/entries/ionchy/agda/Fib.agda b/entries/ionchy/agda/Fib.agda
deleted file mode 100644
index a12b0a5..0000000
--- a/entries/ionchy/agda/Fib.agda
+++ /dev/null
@@ -1,19 +0,0 @@
-
-open import Agda.Builtin.Nat
-open import Agda.Builtin.List
-open import Agda.Builtin.Reflection
-
-data Fib : Nat → Nat → Set where
- instance F0 : Fib 0 0
- instance F1 : Fib 1 1
- instance Fk : ∀ {k n m} → ⦃ Fib k n ⦄ → ⦃ Fib (suc k) m ⦄ → Fib (suc (suc k)) (n + m)
-
-fib' : ∀ k {n} → ⦃ Fib k n ⦄ → Nat
-fib' k {n} ⦃ fib ⦄ = n
-
-macro
- fib : Term → Term → TC _
- fib t hole = unify hole (def (quote fib') (arg i t ∷ []))
- where i = arg-info visible (modality relevant quantity-ω)
-
-{- Get the [n]th Fibonacci number by normalization via C-n `fib [n]`. -}
--
cgit v1.2.3-70-g09d2
From 2927387ace15b664d80e2335084e50d478581733 Mon Sep 17 00:00:00 2001
From: braxtonhall
Date: Sun, 23 Oct 2022 16:42:08 -0700
Subject: Add Margo's fibs
---
README.md | 3 +++
entries/margoseltzer/efficiency.c | 23 +++++++++++++++++++++++
2 files changed, 26 insertions(+)
create mode 100644 entries/margoseltzer/efficiency.c
(limited to 'README.md')
diff --git a/README.md b/README.md
index d126e3b..d43be80 100644
--- a/README.md
+++ b/README.md
@@ -25,6 +25,9 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
### [`jyoo980`](https://github.com/jyoo980)
- [`scala`](./entries/jyoo980/scala/Fib.scala)
+## [`margoseltzer`](https://github.com/margoseltzer)
+- [`efficiency`](./entries/margoseltzer/efficiency.c)
+
### [`Metroxe`](https://github.com/Metroxe)
- [`html`](./entries/Metroxe/index.html)
diff --git a/entries/margoseltzer/efficiency.c b/entries/margoseltzer/efficiency.c
new file mode 100644
index 0000000..6e017f3
--- /dev/null
+++ b/entries/margoseltzer/efficiency.c
@@ -0,0 +1,23 @@
+unsigned long foo(unsigned long n) {
+ if (n < 2) return (n);
+ return(foo(n - 1) + foo(n - 2));
+}
+
+// Efficiency of expression
+
+unsigned long bar(unsigned long n) {
+ unsigned long i, last;
+ unsigned long sum, tmp;
+
+ if (n < 2) return (n);
+ last = 0;
+ sum = 1;
+ for (i = 2; i <= n; i++) {
+ tmp = sum;
+ sum += last;
+ last = tmp;
+ }
+ return (sum);
+}
+
+// Efficiency in resource utilization
--
cgit v1.2.3-70-g09d2
From 668e1a0266a0c59a0e420571dbbcb445e72361ae Mon Sep 17 00:00:00 2001
From: Braxton Hall
Date: Sun, 23 Oct 2022 16:42:37 -0700
Subject: Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'README.md')
diff --git a/README.md b/README.md
index d43be80..d8e5f75 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
### [`jyoo980`](https://github.com/jyoo980)
- [`scala`](./entries/jyoo980/scala/Fib.scala)
-## [`margoseltzer`](https://github.com/margoseltzer)
+### [`margoseltzer`](https://github.com/margoseltzer)
- [`efficiency`](./entries/margoseltzer/efficiency.c)
### [`Metroxe`](https://github.com/Metroxe)
--
cgit v1.2.3-70-g09d2
From c4b8d5fcd71f4f8a006234dabc5a1958e32cd63e Mon Sep 17 00:00:00 2001
From: braxtonhall
Date: Sun, 23 Oct 2022 16:56:25 -0700
Subject: Give Tarcisio a temporary name
---
README.md | 3 +++
1 file changed, 3 insertions(+)
(limited to 'README.md')
diff --git a/README.md b/README.md
index d8e5f75..67db343 100644
--- a/README.md
+++ b/README.md
@@ -31,6 +31,9 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
### [`Metroxe`](https://github.com/Metroxe)
- [`html`](./entries/Metroxe/index.html)
+## [`Tarcisio-Teixeira`](https://github.com/Tarcisio-Teixeira)
+- [`logn?`](./entries/Tarcisio-Teixeira/fib.py)
+
## Contributing
To contribute just make a PR into the `main` branch!
--
cgit v1.2.3-70-g09d2
From 4be354380ae27d55b50ca795397e52fced857e53 Mon Sep 17 00:00:00 2001
From: braxtonhall
Date: Sun, 23 Oct 2022 17:10:24 -0700
Subject: oops
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'README.md')
diff --git a/README.md b/README.md
index 67db343..efc713a 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
### [`Metroxe`](https://github.com/Metroxe)
- [`html`](./entries/Metroxe/index.html)
-## [`Tarcisio-Teixeira`](https://github.com/Tarcisio-Teixeira)
+### [`Tarcisio-Teixeira`](https://github.com/Tarcisio-Teixeira)
- [`logn?`](./entries/Tarcisio-Teixeira/fib.py)
## Contributing
--
cgit v1.2.3-70-g09d2
From e5de46c67d3edeb6e4bc96889a6594ab77f07265 Mon Sep 17 00:00:00 2001
From: Shayan Hosseini
Date: Sun, 23 Oct 2022 17:25:21 -0700
Subject: added shayanh's entry
---
README.md | 3 +++
entries/shayanh/matrix.go | 40 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 43 insertions(+)
create mode 100644 entries/shayanh/matrix.go
(limited to 'README.md')
diff --git a/README.md b/README.md
index efc713a..be6323b 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,9 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
### [`Tarcisio-Teixeira`](https://github.com/Tarcisio-Teixeira)
- [`logn?`](./entries/Tarcisio-Teixeira/fib.py)
+### [`shayanh`](https://github.com/shayanh)
+- [`matrix`](./entries/shayanh/matrix.go)
+
## Contributing
To contribute just make a PR into the `main` branch!
diff --git a/entries/shayanh/matrix.go b/entries/shayanh/matrix.go
new file mode 100644
index 0000000..3f374cb
--- /dev/null
+++ b/entries/shayanh/matrix.go
@@ -0,0 +1,40 @@
+package main
+
+type fibmat [2][2]int
+
+func matmul(m1 fibmat, m2 fibmat) (m3 fibmat) {
+ for i := 0; i < 2; i++ {
+ for j := 0; j < 2; j++ {
+ for k := 0; k < 2; k++ {
+ m3[i][j] += m1[i][k] * m2[k][j]
+ }
+ }
+ }
+ return
+}
+
+func matpow(m fibmat, n int) fibmat {
+ if n == 0 {
+ return [2][2]int{
+ {1, 0},
+ {0, 1},
+ }
+ } else if n%2 == 0 {
+ t := matpow(m, n/2)
+ return matmul(t, t)
+ } else {
+ t := matpow(m, n-1)
+ return matmul(t, m)
+ }
+}
+
+func fib(n int) int {
+ m := matpow(
+ [2][2]int{
+ {1, 1},
+ {1, 0},
+ },
+ n,
+ )
+ return m[0][1]
+}
--
cgit v1.2.3-70-g09d2
From 48902c10c743feac836d2c51a3bf1824e8db378a Mon Sep 17 00:00:00 2001
From: braxtonhall
Date: Sun, 23 Oct 2022 17:30:17 -0700
Subject: Add fib-lang
---
.gitmodules | 3 +++
README.md | 3 +++
entries/wilbowma/fib-lang | 1 +
3 files changed, 7 insertions(+)
create mode 100644 .gitmodules
create mode 160000 entries/wilbowma/fib-lang
(limited to 'README.md')
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..1088a73
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "entries/wilbowma/fib-lang"]
+ path = entries/wilbowma/fib-lang
+ url = git@github.com:wilbowma/fib-lang.git
diff --git a/README.md b/README.md
index efc713a..986aac9 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,9 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
### [`Tarcisio-Teixeira`](https://github.com/Tarcisio-Teixeira)
- [`logn?`](./entries/Tarcisio-Teixeira/fib.py)
+### [`wilbowma`](https://github.com/wilbowma)
+- [`fib-lang`](./entries/wilbowma/fib-lang)
+
## Contributing
To contribute just make a PR into the `main` branch!
diff --git a/entries/wilbowma/fib-lang b/entries/wilbowma/fib-lang
new file mode 160000
index 0000000..2ec2d1d
--- /dev/null
+++ b/entries/wilbowma/fib-lang
@@ -0,0 +1 @@
+Subproject commit 2ec2d1dfd141220882d824cf3dac5b374ed291f3
--
cgit v1.2.3-70-g09d2
From 2dbd7c53ce88c10e1b47d0c7a878ccb68513a00b Mon Sep 17 00:00:00 2001
From: braxtonhall
Date: Sun, 23 Oct 2022 17:31:24 -0700
Subject: Fix fib-lang link
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'README.md')
diff --git a/README.md b/README.md
index 986aac9..a3926aa 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
- [`logn?`](./entries/Tarcisio-Teixeira/fib.py)
### [`wilbowma`](https://github.com/wilbowma)
-- [`fib-lang`](./entries/wilbowma/fib-lang)
+- [`fib-lang`](https://github.com/wilbowma/fib-lang/tree/2ec2d1dfd141220882d824cf3dac5b374ed291f3)
## Contributing
To contribute just make a PR into the `main` branch!
--
cgit v1.2.3-70-g09d2
From 46a659c983911b87b38b20cd4b28ab9176e4fdb3 Mon Sep 17 00:00:00 2001
From: braxtonhall
Date: Sun, 23 Oct 2022 19:13:46 -0700
Subject: Add fib-java
---
README.md | 3 +++
entries/nritschel/fib-java/fib.iml | 13 +++++++++++++
.../fib-java/src/CachedFibonacciNumberFactory.java | 13 +++++++++++++
.../nritschel/fib-java/src/FibonacciCalculator.java | 3 +++
.../fib-java/src/FibonacciCalculatorImpl.java | 17 +++++++++++++++++
entries/nritschel/fib-java/src/FibonacciNumber.java | 19 +++++++++++++++++++
.../fib-java/src/FibonacciNumberFactory.java | 3 +++
entries/nritschel/fib-java/src/Main.java | 21 +++++++++++++++++++++
.../fib-java/src/NaiveFibonacciNumberFactory.java | 6 ++++++
9 files changed, 98 insertions(+)
create mode 100644 entries/nritschel/fib-java/fib.iml
create mode 100644 entries/nritschel/fib-java/src/CachedFibonacciNumberFactory.java
create mode 100644 entries/nritschel/fib-java/src/FibonacciCalculator.java
create mode 100644 entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java
create mode 100644 entries/nritschel/fib-java/src/FibonacciNumber.java
create mode 100644 entries/nritschel/fib-java/src/FibonacciNumberFactory.java
create mode 100644 entries/nritschel/fib-java/src/Main.java
create mode 100644 entries/nritschel/fib-java/src/NaiveFibonacciNumberFactory.java
(limited to 'README.md')
diff --git a/README.md b/README.md
index 3944068..4eb6fa1 100644
--- a/README.md
+++ b/README.md
@@ -31,6 +31,9 @@ For a submission to the upcoming "Reclaim your space" exhibition at [Hatch Art G
### [`Metroxe`](https://github.com/Metroxe)
- [`html`](./entries/Metroxe/index.html)
+### [`nritschel`](https://github.com/nritschel)
+- [`fib-java`](./entries/nritschel/fib-java/src)
+
### [`shayanh`](https://github.com/shayanh)
- [`matrix`](./entries/shayanh/matrix.go)
diff --git a/entries/nritschel/fib-java/fib.iml b/entries/nritschel/fib-java/fib.iml
new file mode 100644
index 0000000..815e958
--- /dev/null
+++ b/entries/nritschel/fib-java/fib.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/entries/nritschel/fib-java/src/CachedFibonacciNumberFactory.java b/entries/nritschel/fib-java/src/CachedFibonacciNumberFactory.java
new file mode 100644
index 0000000..5c404e8
--- /dev/null
+++ b/entries/nritschel/fib-java/src/CachedFibonacciNumberFactory.java
@@ -0,0 +1,13 @@
+import java.util.HashMap;
+
+public class CachedFibonacciNumberFactory implements FibonacciNumberFactory {
+ private final HashMap cachedNumbers = new HashMap<>();
+
+ @Override
+ public FibonacciNumber getFibonacciNumber(int num) {
+ if (!cachedNumbers.containsKey(num)) {
+ cachedNumbers.put(num, new FibonacciNumber(num));
+ }
+ return cachedNumbers.get(num);
+ }
+}
diff --git a/entries/nritschel/fib-java/src/FibonacciCalculator.java b/entries/nritschel/fib-java/src/FibonacciCalculator.java
new file mode 100644
index 0000000..8806c20
--- /dev/null
+++ b/entries/nritschel/fib-java/src/FibonacciCalculator.java
@@ -0,0 +1,3 @@
+public interface FibonacciCalculator {
+ public int calculateFibonacci(FibonacciNumber fib);
+}
diff --git a/entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java b/entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java
new file mode 100644
index 0000000..7bb5ee9
--- /dev/null
+++ b/entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java
@@ -0,0 +1,17 @@
+public class FibonacciCalculatorImpl implements FibonacciCalculator {
+ private final FibonacciNumberFactory factory;
+
+ public FibonacciCalculatorImpl(FibonacciNumberFactory factory) {
+ this.factory = factory;
+ }
+
+ @Override
+ public int calculateFibonacci(FibonacciNumber fib) {
+ if (fib.getNumber() <= 2) {
+ return 1;
+ }
+ else {
+ return factory.getFibonacciNumber(fib.getNumber() - 1).calculate(this) + factory.getFibonacciNumber(fib.getNumber() - 2).calculate(this);
+ }
+ }
+}
diff --git a/entries/nritschel/fib-java/src/FibonacciNumber.java b/entries/nritschel/fib-java/src/FibonacciNumber.java
new file mode 100644
index 0000000..fc9381f
--- /dev/null
+++ b/entries/nritschel/fib-java/src/FibonacciNumber.java
@@ -0,0 +1,19 @@
+public class FibonacciNumber {
+ private final int number;
+ private Integer result;
+
+ public FibonacciNumber(int number) {
+ this.number = number;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public int calculate(FibonacciCalculator calculator) {
+ if (result == null) {
+ result = calculator.calculateFibonacci(this);
+ }
+ return result;
+ }
+}
diff --git a/entries/nritschel/fib-java/src/FibonacciNumberFactory.java b/entries/nritschel/fib-java/src/FibonacciNumberFactory.java
new file mode 100644
index 0000000..42ef6c2
--- /dev/null
+++ b/entries/nritschel/fib-java/src/FibonacciNumberFactory.java
@@ -0,0 +1,3 @@
+public interface FibonacciNumberFactory {
+ public FibonacciNumber getFibonacciNumber(int num);
+}
diff --git a/entries/nritschel/fib-java/src/Main.java b/entries/nritschel/fib-java/src/Main.java
new file mode 100644
index 0000000..8ae46f1
--- /dev/null
+++ b/entries/nritschel/fib-java/src/Main.java
@@ -0,0 +1,21 @@
+public class Main {
+ public static void main(String[] args) {
+ if (args.length < 1) {
+ System.out.println("""
+ Please provide:
+ 1. fibonacci number to compute, and
+ 2. (optional) the calculation method (naive or cached).""");
+ }
+ else {
+ FibonacciNumberFactory factory;
+ if (args.length >= 2 && args[1].equals("naive")) {
+ factory = new NaiveFibonacciNumberFactory();
+ }
+ else {
+ factory = new CachedFibonacciNumberFactory();
+ }
+ FibonacciCalculator calculator = new FibonacciCalculatorImpl(factory);
+ System.out.println(factory.getFibonacciNumber(Integer.parseInt(args[0])).calculate(calculator));
+ }
+ }
+}
diff --git a/entries/nritschel/fib-java/src/NaiveFibonacciNumberFactory.java b/entries/nritschel/fib-java/src/NaiveFibonacciNumberFactory.java
new file mode 100644
index 0000000..5185a8b
--- /dev/null
+++ b/entries/nritschel/fib-java/src/NaiveFibonacciNumberFactory.java
@@ -0,0 +1,6 @@
+public class NaiveFibonacciNumberFactory implements FibonacciNumberFactory {
+ @Override
+ public FibonacciNumber getFibonacciNumber(int num) {
+ return new FibonacciNumber(num);
+ }
+}
--
cgit v1.2.3-70-g09d2