aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/shared-fractals.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared-fractals.c')
-rw-r--r--src/shared-fractals.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/shared-fractals.c b/src/shared-fractals.c
index 836d271..a45d366 100644
--- a/src/shared-fractals.c
+++ b/src/shared-fractals.c
@@ -24,7 +24,7 @@ size_t mandelbrot(const CBASE complex z0, const size_t max_iterations){
/*
* Fills a grid with mandelbrot values
*/
-void mandelbrot_grid(grid_t* restrict grid){
+void mandelbrot_grid(grid_t* restrict grid, const grid_gen_params* params){
const size_t size = grid->size;
const size_t max_iterations = grid->max_iterations;
size_t* data = grid->data;
@@ -53,7 +53,7 @@ size_t tricorn(const CBASE complex z0, const size_t max_iterations){
/*
* Fills a grid with tricorn values
*/
-void tricorn_grid(grid_t* grid){
+void tricorn_grid(grid_t* grid, const grid_gen_params* params){
const size_t size = grid->size;
const size_t max_iterations = grid->max_iterations;
size_t* data = grid->data;
@@ -84,7 +84,7 @@ size_t burning_ship(const CBASE complex z0, const size_t max_iterations) {
/*
* Fills a grid with burning_ship values
*/
-void burning_ship_grid(grid_t* grid){
+void burning_ship_grid(grid_t* grid, const grid_gen_params* params){
const size_t size = grid->size;
const size_t max_iterations = grid->max_iterations;
size_t* data = grid->data;
@@ -113,7 +113,8 @@ size_t multibrot(const CBASE complex z0, const size_t max_iterations, const doub
/*
* Fills a grid with multibrot values
*/
-void multibrot_grid(grid_t* restrict grid, const double d){
+void multibrot_grid(grid_t* restrict grid, const grid_gen_params* params){
+ const double d = params->degree;
const size_t size = grid->size;
const size_t max_iterations = grid->max_iterations;
size_t* data = grid->data;
@@ -142,7 +143,8 @@ size_t multicorn(const CBASE complex z0, const size_t max_iterations, const doub
/*
* Fills a grid with multicorn values
*/
-void multicorn_grid(grid_t* grid, const double d){
+void multicorn_grid(grid_t* grid, const grid_gen_params* params){
+ const double d = params->degree;
const size_t size = grid->size;
const size_t max_iterations = grid->max_iterations;
size_t* data = grid->data;
@@ -170,13 +172,15 @@ size_t julia(const CBASE complex z0, const CBASE complex c, const size_t max_ite
return iteration;
}
-void julia_grid(grid_t* restrict grid, const complex_t constant, const double R){
+void julia_grid(grid_t* grid, const grid_gen_params* params){
+ const complex_t constant = params->cr.constant;
+ const double radius = params->cr.radius;
const size_t size = grid->size;
const size_t max_iterations = grid->max_iterations;
const CBASE complex c = constant.re + constant.im * I;
size_t* data = grid->data;
- #pragma omp parallel for default(none) shared(data, size, grid, max_iterations, c, R) schedule(dynamic)
+ #pragma omp parallel for default(none) shared(data, size, grid, max_iterations, c, radius) schedule(dynamic)
for(size_t i = 0; i < size; i++){
- data[i] = julia(grid_to_complex(grid, i), c, max_iterations, R);
+ data[i] = julia(grid_to_complex(grid, i), c, max_iterations, radius);
}
}