# Exterior Distance
Formalizes the dwell gradient idea, in that closeness of dwell bands is related to closeness to the boundary of the set. In Heinz-Otto Peitgen and Dietmar Saupe’s “The Science of Fractal Images” (1988) Appendix D, Yuval Fisher bounds the distance \(d(c, M)\) between a point \(c\) outside \(M\) and \(M\) itself by:
\[\frac{\sinh G(c)}{2 e^{G(c)} \left|\frac{d}{dc}G(c)\right|} < d(c, M) < \frac{2 \sinh G(c)}{\left|\frac{d}{dc}G(c)\right|}\]
where \(G(c)\) is the potential of the point \(c\). The upper bound can be approximated by using a large escape radius; for escaped \(z\):
\[d = 2 \frac{\left|z\right| \log \left|z\right|} {\left|\frac{\partial}{\partial c}z\right|}\]
There is a point in the Mandelbrot set within \(d\). No point in the Mandelbrot set is within \(\frac{d}{4}\). Compare with pixel spacing to know if the Mandelbrot set might intersect a pixel.
A complex-valued distance estimate (with directional information) can be calculated by:
\[d = 2 \frac{z \log \left|z\right|}{\frac{\partial}{\partial c}z}\]
Distance estimation (2010) and Circular wavefronts (2010) use distance estimates to give progressively finer approximations to the exterior, while Adaptive super-sampling using distance estimate (2014) describes an adaptive supersampling method.
# 1 C99 Code
#include <complex.h>
#include <math.h>
double _Complex m_exterior_distance
(int N, double R, double _Complex c)
{
double _Complex z = 0;
double _Complex dc = 0;
for (int n = 0; n < N; ++n)
{
if (cabs(z) > R)
return 2 * z * log(cabs(z)) / dc;
dc = 2 * z * dc + 1;
z = z * z + c;
}
return 0;
}