You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
josch 2276fa1e1f add README 11 years ago
Makefile add anti aliasing 11 years ago
README.md add README 11 years ago
colors.h add anti aliasing 11 years ago
doubledouble.h add anti aliasing 11 years ago
mandel.c add doubledouble version 11 years ago
mandel_dd.c fix bailout value 11 years ago
mandel_dd_aa.c update mandel_dd_aa 11 years ago
mandel_mpfr.c fix bailout value 11 years ago
mandel_quad.c add libquadmath implementation 11 years ago
run.sh add options to run.sh 11 years ago

README.md

= 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