home *** CD-ROM | disk | FTP | other *** search
- Ever wonder what evil lurks in the blackened depths of the inner circle of the
- Mandelbrot set? Long ago, when Robert French came out with the first widely
- distributed C language Mandelbrot set generator for the Amiga, I attempted to
- hack it to show what was going on in the inner reaches with a set of contours
- just like the outer Mandelbrot. I failed. My reasoning went something like
- this: The Mandelbrot fractal boundary is considered to be "stable". The points
- along the boundary are not migrating in the accumulated formulary sum. Points
- outside the boundary flee to infinity. Points inside the boundary fall to
- various limit cycles or to certain loci in the inner map, such as x=0,y=0.
- The destination points of the flight are known as "strange attractors".
- The outer infinite destination is a strange attractor at infinity. The one
- at the origin is perhaps easy to accept - the iterative product of real
- fractions, at least, ought to go to zero as a limit. The other points are
- elusive rascals to locate if one has no prior hueristic knowledge of likely
- sites for loci. The original Amiga Mand.c program, as improved by R. J. Mical
- had a small section of inescapable code (you had to reboot to get out of it)
- called the "Analyzer" with which you could, after executing "SA filename" and
- "L filename" followed by "A", examine the orbits of the Mandelbrot sum points
- on the fly. By leaning on the left mouse button and patrolling with the
- cursor, one could find the strange attractors (I think they're the places
- where the knot of points condenses into a minimum number of clusters of
- minimal diameter - one in the main body, three in the lobes at the top and
- bottom, four in the first lobe on the x axis, five for some intermediate lobes,
- etc.).
-
- Well, anyway, back to the matter at hand. The cause of my failure was rooted
- in the following reasoning: If the fleeing points are advancing toward what is
- nominally considered a bye-bye level of absolute radial magnitude 2.0 then we
- could suppose that points bound to collapse toward the inside may be considered
- doomed when they fall to absolute magnitude 0.5, right? So I set up a little
- if statement to trap this condition. Much to my surprise and horror, I found
- that many of the points destined to escape to the *outside* did so by orbiting
- through radial magnitudes 0.5 and lower. In fact, setting the separator as
- low as 0.03125 left zillions of points improperly sorted. I was forced to
- conclude that there was no practical lower value that would sort the inwardly
- collapsing points. And with that, I went on to other business and left the
- strange attractors to the math experts.
-
- Recently, there was Yet Another Mandelbrot Program, titled MandelVroom, posted
- to the net by one Kevin Clague at Amdahl. He added a Motorola floating point
- section that he claimed would give much improved resolution over the previously
- available Mandelbrots, though I haven't checked that out in detail yet. One
- thing that Kevin did make a note about in his code is the "Ring Detector" for
- ponderous points in the inner lobes of the Mandelbrot interior exo-set. This
- code detects non-migrating orbits for rotating points and escapes to more
- productive duty, setting the cell count to max on the way out. However,
- another thing it is capable of doing, so it turns out, is acting as a strange
- attractor contour generator of sorts. It doesn't do a perfect job of this,
- (in fact, I am wondering why it works at all) in that some places where there
- are inflections in the contour, (See Note 1. below) it just gets "noisy".
- Nonetheless, the contours produced may be of interest to some of you. And
- why not - the change to the source involves commenting out only three lines of
- assembly code. The results will not hold your attention as well as does the
- Mandelbrot set, but (Yawn) it's something to know about... In mand.c I put
- semicolons at the beginning of the lines as shown below:
- At line ~229 in mand.c find the ring detector loop and add (;)'s
- lloop1
- cmp.l (a0)+,d4
- bne skipit
- cmp.l (a1)+,d5
- bne nextl
- ; move.w _MaxCount,d0
- ; ext.l d0
- ; move.l d0,k(a5)
- ; move.l #0,l(a5)
- bra out
-
- If you make the patch, remember to select FFP in the Generator item submenu
- after opening the EDIT menu. For those with no Manx, I'll post a .uue that
- has this done for you, (along with an optimized color register set) in a
- following article.
- -----------------------------------------------------------------------------
- Note 1: See contour map, Fig 33 p.60, "The Beauty of Fractals" by
- H.-O. Peitgen - P.H. Richter, Springer-Verlag (Berlin, New York,...)
- -----------------------------------------------------------------------------
- Howard Hull
-
-
-