#include /* sqrt() */ #include /* complex, I, creal(), cimag() */ #include "FatouComputation.h" #define LEEWAY 0.001 #define ITERATIONS 100 #define CLOSE_ENOUGH(z, x, y) \ (fabs(creal(z) - (x)) < LEEWAY && fabs(cimag(z) - (y)) < LEEWAY) unsigned int FatouComputation::compute(double x, double y) { double complex z = 0.1; double complex p = x + I * y; for (int iter = 0; iter < ITERATIONS; iter++) { z = p * (1 - z) * z; if (cabs(z) > 2.0) { return 0xFF * ((double) iter / (double) ITERATIONS); } } return 0; }