Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!hao!hull From: hull@hao.UCAR.EDU (Howard Hull) Newsgroups: comp.sys.amiga Subject: The Interior Mandelbrot Message-ID: <710@hao.UCAR.EDU> Date: Sun, 31-May-87 01:34:19 EDT Article-I.D.: hao.710 Posted: Sun May 31 01:34:19 1987 Date-Received: Tue, 2-Jun-87 01:16:12 EDT Organization: High Altitude Obs./NCAR, Boulder CO Lines: 81 Keywords: Yawn; Strange Attractors 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 [If yet unproven concepts are outlawed in the range of discussion... ...Then only the deranged will discuss yet unproven concepts] {ucbvax!hplabs | decvax!noao | mcvax!seismo | ihnp4!seismo} !hao!hull for domain mailers: hull@hao.ucar.edu