summaryrefslogtreecommitdiff
path: root/mandelbrot.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mandelbrot.lua')
-rw-r--r--mandelbrot.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/mandelbrot.lua b/mandelbrot.lua
new file mode 100644
index 0000000..a94f46f
--- /dev/null
+++ b/mandelbrot.lua
@@ -0,0 +1,21 @@
+local bignum = require "bignum"
+
+local M = {}
+
+local function sq(x, y)
+ return x*x - y*y, 2 * x * y
+end
+
+function M.orbit(iter, x, y)
+ local o = {}
+ local zx, zy = bignum.float(0, 32), bignum.float(0, 32)
+ for i = 1, iter do
+ local rx, ry = bignum.tonumber(zx), bignum.tonumber(zy)
+ table.insert(o, {rx, ry})
+ zx, zy = sq(zx, zy)
+ zx, zy = zx + x, zy + y
+ end
+ return o
+end
+
+return M