| Super MANDELZOOM |
Robert P. Munafo, 1999 Feb 2.
It was written entirely in assembly language (165K of source code) and a very large amount of time was spent optimizing the critical sections. The current version is 1.19 (1992 Oct 25).
There are 4 different integer iterator routines - 16-bit, 18-bit, 30-bit, and 32-bit. Each is faster than the next, and you use whichever is the lowest number of bits that will work at your current magnification level. Switching between the four routines is user-controlled, because sometimes you don't need to view the image at full resolution, and in those cases you can sometimes save time by using the faster iterator.
The user interface for controlling the image computation is better than that of any other Mandelbrot program yet reviewed. The central algorithm for scheduling the iteration of individual pixels is Successive Refinement in its full Adjacency Optimization form. The user sees a coarse image right away, then after a few seconds a somewhat finer image, then finer again after a while more, etc. It is integrated into the user interface, unlike in MandelZot 3.0 where you have to keep manually turning Successive Refinement on and off each time you zoom.
While this drawing is going on, the user can select a rectangle with the cursor. Image computation continues while the user is dragging the mouse to select. When the mouse button is released, the area inside the rectangle is given first priority over the rest of the image, and everything inside that rectangle is doubled in resolution before SMZ continues with the rest of the image. You may at any time select a new rectangle, and when you release the button, your new rectangle becomes first priority (and the other rectangle, if it was still being worked on, is forgotten). By selecting the same rectangle multiple times you can bring a region to arbitrarily high resolution (up to 1x1 pixels, the highest resolution available.)
This work is licensed under a
Creative Commons Attribution 2.5 License
.