mandelbrot Toit #8 program
source code
/* The Computer Language Benchmarks game
https://salsa.debian.org/benchmarksgame-team/benchmarksgame/
transliterated from Greg Buchholz's C program by Isaac Gouy
*/
import host.pipe
main args:
w := 0; h := 0; x := 0; y := 0; bit_num := 0
byte_acc ::= #[0]
i := 0; iterations := 50
limit ::= 2.0
Zr := 0.0; Zi := 0.0; Cr := 0.0; Ci := 0.0; Tr := 0.0; Ti := 0.0
w = args.size == 1 ? int.parse args[0] : 200
h = w
print "P4\n$w $h"
out := pipe.stdout
for y = 0; y < h; ++y:
for x = 0; x < w; ++x:
Zr = 0.0; Zi = 0.0
Cr = (2.0 * x / w - 1.5); Ci = (2.0 * y / h - 1.0)
for i = 0; i < iterations; ++i:
Tr = Zr*Zr - Zi*Zi + Cr
Ti = 2*Zr*Zi + Ci
Zr = Tr; Zi = Ti
if Zr*Zr+Zi*Zi > limit*limit:
break
if Zr*Zr+Zi*Zi > limit*limit:
byte_acc[0] = (byte_acc[0] << 1) | 0x00
else:
byte_acc[0] = (byte_acc[0] << 1) | 0x01
bit_num += 1
if bit-num == 8:
out.write byte_acc
byte_acc[0] = 0
bit_num = 0
else:
if x == w - 1:
byte_acc[0] = byte_acc[0] << (8 - w%8)
out.write byte_acc
byte_acc[0] = 0
bit_num = 0
out.close
notes, command-line, and program output
NOTES:
64-bit Ubuntu quad core
v2.0.0-alpha.163
Wed, 30 Oct 2024 19:47:46 GMT
MAKE:
cp -r Include/toit/.packages .
cp -r Include/toit/package.lock .
cp -r Include/toit/package.yaml .
/opt/src/toit/bin/toit.compile -O2 --strip -o mandelbrot.toit-8.toit_run mandelbrot.toit-8.toit
0.66s to complete and log all make actions
COMMAND LINE:
./mandelbrot.toit-8.toit_run 16000
(BINARY) PROGRAM OUTPUT NOT SHOWN