source code
-- The Computer Language Benchmarks Game
-- https://salsa.debian.org/benchmarksgame-team/benchmarksgame/
-- contributed by Mike Pall
-- Updated for Lua 5.3 by Robin
local write, char, unpack = io.write, string.char, unpack
local N = tonumber(arg and arg[1]) or 100
local M, ba, bb, buf = 2/N, 2^(N%8+1)-1, 2^(8-N%8), {}
write("P4\n", N, " ", N, "\n")
for y=0,N-1 do
local Ci, b, p = y*M-1, 1, 0
for x=0,N-1 do
local Cr = x*M-1.5
local Zr, Zi, Zrq, Ziq = Cr, Ci, Cr*Cr, Ci*Ci
b = b + b
for i=1,49 do
Zi = Zr*Zi*2 + Ci
Zr = Zrq-Ziq + Cr
Ziq = Zi*Zi
Zrq = Zr*Zr
if Zrq+Ziq > 4.0 then b = b + 1; break; end
end
if b >= 256 then p = p + 1; buf[p] = 511 - b; b = 1; end
end
if b ~= 1 then p = p + 1; buf[p] = (ba-b)*bb; end
write(char(table.unpack(buf, 1, p)))
end
notes, command-line, and program output
NOTES:
64-bit Ubuntu quad core
Lua 5.4.6 Copyright (C)
1994-2023 Lua.org, PUC-Rio
Sun, 26 May 2024 02:49:35 GMT
COMMAND LINE:
/opt/src/lua-5.4.6/install/bin/lua mandelbrot.lua-3.lua 16000
(BINARY) PROGRAM OUTPUT NOT SHOWN