aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/fractals.c21
-rw-r--r--src/util.c22
-rw-r--r--src/util.h12
3 files changed, 34 insertions, 21 deletions
diff --git a/src/fractals.c b/src/fractals.c
index 1e27b9c..3c131f3 100644
--- a/src/fractals.c
+++ b/src/fractals.c
@@ -9,27 +9,6 @@
#include "fractals.h"
-/*
- * Converts a grid point into an complex number
- */
-double complex lattice_to_complex(const size_t index, const size_t x_res, const size_t y_res) {
- const double x_min = -2.0;
- const double x_max = 2.0;
- const double y_min = -2.0;
- const double y_max = 2.0;
-
- const double x_step = (x_max - x_min) / (double)x_res;
- const double y_step = (y_max - y_min) / (double)y_res;
-
- const size_t x_index = index % x_res;
- const size_t y_index = index / x_res;
-
- const double x = x_min + x_index * x_step;
- const double y = y_min + y_index * y_step;
-
- return x + y * I;
-}
-
int main(const int argc, char *argv[]) {
//default values
diff --git a/src/util.c b/src/util.c
new file mode 100644
index 0000000..b76da0b
--- /dev/null
+++ b/src/util.c
@@ -0,0 +1,22 @@
+#include "util.h"
+
+/*
+ * Converts a grid point into an complex number
+ */
+double complex lattice_to_complex(const size_t index, const vec2 resolution) {
+ const double x_min = -2.0;
+ const double x_max = 2.0;
+ const double y_min = -2.0;
+ const double y_max = 2.0;
+
+ const double x_step = (x_max - x_min) / (double)resolution.x;
+ const double y_step = (y_max - y_min) / (double)resolution.y;
+
+ const size_t x_index = index % resolution.x;
+ const size_t y_index = index / resolution.x;
+
+ const double x = x_min + x_index * x_step;
+ const double y = y_min + y_index * y_step;
+
+ return x + y * I;
+}
diff --git a/src/util.h b/src/util.h
new file mode 100644
index 0000000..798b73b
--- /dev/null
+++ b/src/util.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include <complex.h>
+#include <stddef.h>
+
+typedef struct {
+ size_t x;
+ size_t y;
+} vec2;
+
+double complex lattice_to_complex(const size_t index, const vec2 resolution);
+