Ultra Fractal supports arbitrary precision arithmetic to zoom as deep as you want, without hitting a precision limit. The drawback is that the further you go, the slower the calculations become. As soon as you go past the regular precision level, images typically take hours or even days instead of minutes to complete.
For some fractal types (for example Mandelbrot), it is possible to dramatically speed up deep zooming by a new calculation algorithm based on perturbation theory. This algorithm was discovered by K.I. Martin and first implemented in SuperFractalThing. Ultra Fractal now features this perturbation algorithm with further advancements to make it more user-friendly.
How does this work? Behind the scenes, the perturbation algorithm starts by calculating one pixel at the center of the image with full precision, storing all intermediate values for the main "Z" variable of the fractal formula. This is called the reference orbit. All other pixels are now calculated as a small deviation from the reference orbit ("perturbing" the reference orbit). The beauty of the algorithm is that this step can be done using regular double floating-point precision, which is fast. Nothing is perfect though: sometimes the regular double precision will not be enough to follow the orbit of a neighboring pixel closely enough. In this case a new reference orbit at this point is needed, because the original reference orbit differs too much. Most programs implementing the perturbation algorithm require you to manually examine the image and discover that it's unlikely to be correct (it will usually contain large blank areas or "blobs" where the precision was too low). The problem with this is that you can never be fully certain that the image is correct. The algorithm in Ultra Fractal has been extended to detect these precision problems and generate new reference orbits automatically. No manual intervention is needed and it's not even possible to manually add reference points. All that's left is worry-free deep zooming. However, you can adjust the precision tolerance for the algorithm: see the note below. For more information regarding the underlying mathematics, see the SuperFractalThing web site. |
Notes
Next: Public formulas
See Also
Fractal formulas