Fractals/Iterations in the complex plane/atomdomains
< Fractals < Iterations in the complex planeName
Images
- animation
- 3D view of bof61
- 2D view of BOF61
Video:
Description
Atom domains in case of the Mandelbrot set ( parameter plane) are parts of parameter plane for which the index p≥1 at which |zp| is minimized during iteration of z0=0 and zn+1=z2n+c.
Properities
Note that :
- atom domains are overlapping
- "Atom domains surround hyperbolic components of the same period, and are generally much larger than the components themselves"[5]
- atom domain contain :
- component of mandelbrot set with period n mv
- exterior of this component
- some other componnets
Importance
It can be used for :
- fast finding of period n centers, components of Mandelbrot set
Algorithm
whole parameter plane
// code from :
// http://mathr.co.uk/blog/2014-11-02_practical_interior_distance_rendering.html
// C program by Claude Heiland-Allen
complex double z = 0;
complex double dc = 0;
double minimum_z2 = infinity; // atom domain
int period = 0;
// iteration
for (int n = 1; n <= maxiters; ++n) {
dc = 2 * z * dc + 1;
z = z * z + c;
double z2 = cabs2(z);
if (z2 < minimum_z2) {
minimum_z2 = z2;
period = n;}}
bof61
This is the method described in the book "The Beauty of Fractals" on page 63, but the image in on page 61.
Color of point is proportional to :
- the time it takes z to reach its smallest value
- iterate of the critical point makes the closest approach
- Index (c) is the iteration when point of the orbit was closest to the origin. Since there may be more than one, index(c) is the least such.
This algorithms shows borders of domains with the same index(c)[6] [7].
Fragment of code : fractint.cfrm from Gnofract4d [8]
bof61 { init: int current_index = -1 ; -1 to match Fractint's notion of iter count int index_of_closest_point = -1 float mag_of_closest_point = 1e100 loop: current_index = current_index + 1 float zmag = |z| if zmag < mag_of_closest_point index_of_closest_point = current_index mag_of_closest_point = zmag endif final: #index = index_of_closest_point /256.0 }
Cpp function
// function is based on function mclosetime
// from mbrot.cpp
// from program mandel by Wolf Jung
// http:www.iram.rwth-aachen.de/~jung/indexp.html
////8 = iterate = bof61
// bailout2=4
int mclosetime(std::complex<double> C , int iter_max, int bailout2)
{ int j, cln = 0;
double x = C.real(), y = C.imag(), u, cld = 4;
for (j = 0; j <= iter_max; j++)
{ u = x*x + y*y;
if (u > bailout2) return j;
if (u < cld) {cld = u;cln = j; }
u = x*x - y*y + C.real();
y = 2*x*y + C.imag();
x = u;
}
return iter_max + cln % 15; //iterate, bof61
}
It can be used :
// compute escape time
int last_iter= mclosetime(C,iter_max,bailout2);
// drawing code */
if (last_iter>=iter_max) { putpixel(ix,iy,last_iter - iter_max);} // interior
else putpixel(ix,iy,WHITE); // exterior

Note that this method can be applied to both exterior and interior. It is called atom domain [10]. It can also be modified [11]
Size of the atom domain
estimation of size [12]
Function for computing size estimation of atom domain from nucleus c and its period p :
// code by Claude Heiland-Allen
// from http://mathr.co.uk/blog/2013-12-10_atom_domain_size_estimation.html
real_t atom_domain_size_estimate(complex_t c, int_t p) {
complex_t z = c;
complex_t dc = 1;
real_t abszq = cabs(z);
for (int_t q = 2; q <= p; ++q) {
dc = 2 * z * dc + 1;
z = z * z + c;
real_t abszp = cabs(z);
if (abszp < abszq && q < p) {
abszq = abszp;
}
}
return abszq / cabs(dc);
}
References
- ↑ Atom Domain by Robert P. Munafo
- ↑ Practical interior distance rendering by Claude Heiland-Allen
- ↑ Bof61 algorithm in wikibooks
- ↑ An orbit trap at (0,0) by hobold
- ↑ misiurewicz_domains by Claude
- ↑ Fractint doc by Noel Giffin
- ↑ A Series of spiral bays in the Mandelbrot set by Patrick Hahn
- ↑ gnofract4d
- ↑ Practical interior distance rendering by Claude Heiland-Allen
- ↑ Atom Domain From the Mandelbrot Set Glossary and Encyclopedia, by Robert Munafo
- ↑ Modified Atom Domains by Claude Heiland-Allen
- ↑ Atom domain size estimation by Claude Heiland-Allen