# Exponential Map

Robert P. Munafo, 2010 Dec 5.

Coordinates can be transformed between polar and orthogonal in a mathematically natural way by using the complex exponential and logarithm functions.

An exponential coordinate transformaion can be applied to a Mandelbrot or Julia view to give additional insight into its structure.

Here is an ordinary zoom sequence:         Center: -0.128219857864 +0.839741062363 i; size ranges from 2.0 down to 2.0×10-8 in successive powers of 10

And here is the same location in the Mandelbrot set viewed through an exponential map:     There is another example in my Leavitt navigation description.

### Identities

Some things to note about exponential maps:

• The exponential mapping transforms the entire complex plane into a strip that has unlimited length along the real axis, and a width of 2π along the imaginary axis. (In the example shown here, the width is 512 pixels from left to right: I rotated the strip to make it run vertically down the page.)
• Circles that are centered on the point of interest become horizontal lines in the transformed image. Offset circles turn into a sort of sinewave (one can be seen at the bottom edge of the example image).
• Spirals that are centered on the point of interest become diagonal lines in the transformed image.
• In the vertical direction, a distance of 1.0 corresponds to a distance ratio of e=2.7182... in the original coordinates. (In the example shown here, 2π is 512 pixels, so one unit is 256/π = 81.49 pixels. When you move that far down in the image, you are moving 2.7182... times as far away from the central point -0.128219857864 + 0.839741062363i)
• The left and right edges of the strip correspond to east (the direction in which the real coordinate increases, commonly depicted as being towards the right) in the normal coordinate space. (Thus, the right edge slices through R2.1/3.1/2a because you pass through that mu-atom if you start at -0.128219857864 + 0.839741062363i and move in the increasing real direction.)
• The center line of the strip (midway between the left and right edges) corresponds to west (the direction in which the real coordinate decreases, commonly depicted as being towards the left) in the normal coordinate space. (Thus, the tip R2t, also called the spike, is found near the center at the bottom-most end of the strip image)
• Vertical lines 1/4 and 3/4 of the way from the strip's left edge to its right edge correspond to north and south respectively. (In the image, the period-4 island R2F(1/3B1)S is at about the 1/4 point because it is located "north" of -0.128219857864 + 0.839741062363i. The cusp R2.C(1/3) is about 3/4 of the way across because it is "south" of -0.128219857864 + 0.839741062363i, and a tiny R2.2/3a can be seen below that.)
• Circular mu-atoms appear as "ellipses" (they are not really ellipses, both because the logarithm function is nonlinear and because the mu-atom itself is not a perfect circle). The "eccentricity" is related to the ratio between the distance from the center point to the mu-atom and the radius of the mu-atom. Thus, mu-atoms that are large in comparison to their distance from the center-point appear as more eccentric "ellipses". The long axis is always vertical. (In the example image shown here, the largest mu-atom is R2.1/3a. It appears to the right of the centerline because it is to the south of the center coordinate of the area of interest.)
• Cardioid (seed) mu-atoms are similarly transformed.
• Repeating features created by the self-squaring action of the influencing island appear as identical units, tiled in a binary cascade (a self-simlar tesselation). Similar tesselations are seen near the edges of the M. C. Escher work Square Limit. (In normal coordinates, these repeated features appear more like an inside-out version of Escher's Circle Limit III).

### Optimization for Zoom Animations

If rendered at suitable resolution, and using bilinear interpolation, an exponential strip image can be used as source data for rendering frames of a Mandelbrot zoom animation. An inverse mapping (using the complex logarithm function) is used to compute the location (in the strip) of needed data for any given location in the normal orthogonal coordinate space.

This is an almost ideal speed improvement: all features will be rendered at exactly the resolution needed for the zoom animation, and no Mandelbrot iterations get computed twice.

### History

I discovered the utility of this coordinate transform in April 2002 while searching for the "Polaftis" image (see Reverse Bifurcation) of Jonathan Leavitt

### C Source Code

The above images were created by replacing the "normal" coordinate transform:

Normal grid-scan plotting (showing coordinate computation only) /* Plot a single pixel, row i and column j   NOTE: itmax is the maximum number of Mandelbrot iterations ctr_r and ctr_i are the real and imaginary coordinates of the center of the view we want to plot min_r is the real coordinate of the left edge of the image max_i is the imaginary coordinate of the top of the image px_spacing is the width of the image (in real coordinates) divided by the number of pixels in a row px_radius is half the width of the image (in real coordinates) */ void pixel_53(int i, int j, int itmax) { double cr, ci;   ci = max_i - ((double) i) * px_spacing; cr = min_r + ((double) j) * px_spacing; evaluate_and_plot(cr, ci, itmax, i, j); }

With an exponential mapping:

The equivalent routine for a grid scan with exponential coordiante mapping /* Plot a single pixel, row i and column j. Use as many rows as you need for the image to show the whole Mandelbrot set. */ void pixel_53(int i, int j, int itmax) { double cr, ci, o_r, o_i, angle, radius;   /* compute angle and radius */ angle = ((double) j) * px_spacing / px_radius * 3.14159265359; radius = ((double) i) * px_spacing / px_radius * 3.14159265359;   /* compute offsets */ o_r = cos(angle) * px_radius * exp(radius); o_i = sin(angle) * px_radius * exp(radius);   ci = ctr_i + o_i; cr = ctr_r + o_r; evaluate_and_plot(cr, ci, itmax, i, j); }

revisions: 20101205 First version; 20101206 simplify source code and clarify comments

From the Mandelbrot Set Glossary and Encyclopedia, by Robert Munafo, (c) 1987-2020.     Mu-ency index

This page was written in the "embarrassingly readable" markup language RHTF, and was last updated on 2020 Jan 15. s.11