From 6d424277b05a993dc49a8d5ec45ef967d8f6242c Mon Sep 17 00:00:00 2001
From: Neil Gershenfeld <gersh@cba.mit.edu>
Date: Mon, 26 Dec 2022 13:00:23 -0500
Subject: [PATCH] +Micro

---
 Python/micropi.py | 28 ++++++++++++++++++++++++++++
 README.md         |  2 +-
 2 files changed, 29 insertions(+), 1 deletion(-)
 create mode 100755 Python/micropi.py

diff --git a/Python/micropi.py b/Python/micropi.py
new file mode 100755
index 0000000..e522e2f
--- /dev/null
+++ b/Python/micropi.py
@@ -0,0 +1,28 @@
+#
+# micropi.py
+# Neil Gershenfeld 12/26/22
+# calculation of pi by a MicroPython sum
+# pi = 3.14159265358979323846 
+#
+
+import time,machine
+
+NPTS = 1000000
+
+@micropython.native
+def calc():
+   a = 0.5
+   b = 0.75
+   c = 0.25
+   pi = 0
+   for i in range(1,(NPTS+1)):
+      pi += a/((i-b)*(i-c))
+   return pi
+
+machine.freq(250000000)
+start_time = time.time()
+pi = calc()
+end_time = time.time()
+mflops = NPTS*5.0/(1.0e6*(end_time-start_time))
+print("NPTS = %d, pi = %f"%(NPTS,pi))
+print("time = %f, estimated MFlops = %f"%(end_time-start_time,mflops))
diff --git a/README.md b/README.md
index 65f6a3c..dd092ef 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,7 @@
 |0.001|prior|Sun SPARCStation 1|C|prior|
 |0.001|prior|DEC VAX 8650|C|prior|
 |0.0007|prior|Intel 486|C|prior|
-|0.00021|[pi.py](Python/pi.py)|MicroPython, 250 MHz|RP2040|December, 2022|
+|0.00031|[pi.py](Python/micropi.py)|MicroPython, 250 MHz|RP2040|December, 2022|
 |0.0002|[pi.ino](Arduino/pi.ino)|Arduino, floats|ATSAMD21E|December, 2020|
 |0.0001|[pi.ino](Arduino/pi.ino)|Arduino, floats|ATtiny1614|December, 2020|
 |0.00003|prior|Sun 3/60|C|prior|
-- 
GitLab