Skip to content

Proof of concept project about adding arbitrary precision math to Fractal generation software GNofract4D.

Notifications You must be signed in to change notification settings

josebailo/c-mandelbrot-arbitrary-precision

 
 

Repository files navigation

Build Status

Mandelbrot in C language with arbitrary precision

This is a proof of concept project. The main goal is do some research in order to allow zooming further than limits of double-precision in the Fractal generation software Gnofract 4D. More details about the feature on:

Specific goals for this proof of concept are:

  • Implement and generate documentation for some techniques used by the software like period checking.
  • Performance analysis.
  • Try different approaches when arbitrary precision is not needed. How to support both at the same time.
  • Test some different C arbitrary precision libraries.

Installation

Install dependencies:

./bin/install_dependencies

Install app from source dir (after installing dependencies):

./bin/install

IMPORTANT!: installation is only tested for this Ubuntu version:

Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.4 LTS
Release:	18.04
Codename:	bionic

Run

Help:

./mandelbrot --help

You will see the list of options and arguments. And, for example, if you want to generate the full Mandelbrot Set in PPM format with color map "black on white":

./mandelbrot -prfy -- -2.0 -2.0 2.0 2.0 256 256 0 0

It generates a file in output folder with this name: mandelbrot-black-on-white-256x256.ppm

Generate samples:

./bin/samples/generate-all-samples.sh

This command generates one sample file in output folder for each color and ascii map available.

See more command samples in here.

Development

Requirements:

  • Docker version 18.09.7

All commands use docker under the hood.

Setup:

./bin/dev-setup

Execute tests:

./bin/test

Compile and run:

./bin/compile && ./bin/dev-run

Documentation

About

Proof of concept project about adding arbitrary precision math to Fractal generation software GNofract4D.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 72.7%
  • C++ 25.8%
  • Other 1.5%