No description
Find a file
2013-06-28 16:46:43 +02:00
colors.h add anti aliasing 2013-06-28 09:09:55 +02:00
doubledouble.h add anti aliasing 2013-06-28 09:09:55 +02:00
Makefile add anti aliasing 2013-06-28 09:09:55 +02:00
mandel.c add doubledouble version 2013-06-28 07:34:40 +02:00
mandel_dd.c fix bailout value 2013-06-28 15:54:33 +02:00
mandel_dd_aa.c update mandel_dd_aa 2013-06-28 15:55:46 +02:00
mandel_mpfr.c fix bailout value 2013-06-28 15:54:33 +02:00
mandel_quad.c add libquadmath implementation 2013-06-27 15:18:37 +02:00
README.md add README 2013-06-28 16:46:43 +02:00
run.sh add options to run.sh 2013-06-28 16:45:40 +02:00

= Introduction =

Calculating Mandelbrot using different ways. It tries to imitate the Mandelbrot calculation by Zom-B but be faster in doing so.

This project started by trying to reproduce this zoom sequence but in higher resolution:

https://en.wikipedia.org/wiki/File:Mandelbrot_sequence_new.gif

The generator used for this version is available here:

https://github.com/josch/mandelbrot_zomb

= Overview =

mandel: straight forward "long double" based mandelbrot this is obviously the fastest implementation but has limited precision mandel_mpfr: mandelbrot using the arbitrary precision mpfr library mandel_quad: mandelbrot using gcc libquad mandel_dd: mandelbrot using custom double double math this is the fastest implementation given double double precision mandel_dd_aa: with antialiasing it is more than three times faster than the Zom-B version (see below)

= How to compile =

Compile by running make.

= How to execute =

Each of the tools takes as arguments the width, height, coordinates and magnification. Output is in PPM format on standard output.

$ ./mandel_dd_aa 1920 1080 0.0 0.0 1.0 > out.ppm

You can compress the ppm by using:

$ convert out.ppm -format png out.png

And even compress it further by doing:

$ optipng -o4 -i0 out.png
$ advpng -z4 out.png

= How to generate zoom animation =

The shell script (with a small python helper) run.sh will generate and execute a list of commands to create a zooming sequence of images.

You can create a video of the resulting sequence using:

$ avconv -i %05d.png out.mp4

= Benchmark =

Benchmark against mandelbrot computation by Zom-B:

at zoom coordinates: x = -0.743643887037158704752191506114774 y = 0.131825904205311970493132056385139

1 to 1e32 in 100 steps at 320x240 and no AA took mandel_dd 1:28 h mandel_zomb 2:45 h

1.0e17 at 1920x1080 with 5xAA took mandel_dd_aa 2:38 h mandel_zomb 8:40 h