aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/fractals.h
blob: 611e4e6d831e61811cdb5867be048855e8975ff1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once

#include <complex.h>
#include <stddef.h>
#include <stdint.h>
#include "grids.h"
#include "precision.h"

typedef union {
    CBASE degree;
    struct {
        complex_t constant;
        double radius;
    } cr ;
} grid_gen_params ;

typedef void (*fractal_generator)(grid_t* , const grid_gen_params* );

size_t mandelbrot(const CBASE complex z0, const size_t max_iterations);
void mandelbrot_grid(grid_t* grid, const grid_gen_params* params);

size_t tricorn(const CBASE complex z0, const size_t max_iterations);
void tricorn_grid(grid_t* grid, const grid_gen_params* params);

size_t burning_ship(const CBASE complex z0, const size_t max_iterations);
void burning_ship_grid(grid_t* grid, const grid_gen_params* params);

size_t multibrot(const CBASE complex z0, const size_t max_iterations, const double d);
void multibrot_grid(grid_t* grid, const grid_gen_params* params);

size_t multicorn(const CBASE complex z0, const size_t max_iterations, const double d);
void multicorn_grid(grid_t* grid, const grid_gen_params* params);

size_t julia(const CBASE complex z0, const CBASE complex c, const size_t max_iterations, const double R);
void julia_grid(grid_t* grid, const grid_gen_params* params);