File:Part of parameter plane with external 5 rays landing on the Mandelbrot set.png

Original file (1,920 × 1,080 pixels, file size: 1.24 MB, MIME type: image/png)
![]() | This is a file from the Wikimedia Commons. Information from its description page there is shown below. Commons is a freely licensed media file repository. You can help. |
Summary
DescriptionPart of parameter plane with external 5 rays landing on the Mandelbrot set.png |
English: Part of parameter plane with 5 external rays landing on the Mandelbrot set |
Date | |
Source | Made with c program[1] by Claude Heiland-Allen[2] |
Author | Adam majewski |
Licensing



- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
Software
Program :
- is made with c / gcc
- uses GMP for arbitrary precision rationals
- MPFR for arbitrary precision floating point
- OpenMP
Algorithms
- exterior :
- Smooth colouring with continuous escape time
- grid based on integer escape time and binary decomposition
- Atom domains
- external rays : the Newton Method[3]
- interior :
- boundary : distance estimation ( DEM/M)
All algorithms are described in the book : "How To Write A Book About The Mandelbrot Set" by Claude Heiland-Allen[6]
Image description
This image show part of parameter plane of complex quadratic polynomial.
Plane
Center c = -1.1815256967956639e-01 +6.4962873032063617e-01 * i
radius =1.75e-04
External rays
G Pastor gave an example of external rays for which the resolution of the IEEE 754 is not sufficient [7]:
( period 3, lands on root point of period 3 component c3 = -0.125000000000000 +0.649519052838329i )
One can analyze these angles using program by Claude Heiland-Allen :
./bin/mandelbrot_describe_external_angle ".(001)"
binary: .(001)
decimal: 1/7
preperiod: 0
period: 3
./bin/mandelbrot_describe_external_angle
".(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010)"
binary:
.(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010)
decimal:
33877456965431938318210482471113262183356704085033125021829876006886584214655562/237142198758023568227473377297792835283496928595231875152809132048206089502588927
preperiod: 0
period: 267
./bin/mandelbrot_describe_external_angle
".(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010001)"
binary:
.(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010001)
decimal:
33877456965431938318210482471113262183356704085033125021829876006886584214655569/237142198758023568227473377297792835283496928595231875152809132048206089502588927
preperiod: 0
period: 267
./bin/mandelbrot_describe_external_angle
".(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010001)"
binary:
.(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010001)
decimal:
67754913930863876636420964942226524366713408170066250043659752013773168429311121/474284397516047136454946754595585670566993857190463750305618264096412179005177855
preperiod: 0
period: 268
./bin/mandelbrot_describe_external_angle
".(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010)"
binary:
.(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010)
decimal:
67754913930863876636420964942226524366713408170066250043659752013773168429311122/474284397516047136454946754595585670566993857190463750305618264096412179005177855
preperiod: 0
period: 268
Landing points of above rays are roots with angled internal addresses ( description by Claude Heiland-Allen) :
- the upper one will be 1 -> 1/3 -> 3 -> 1/(period/3) -> period because it's the nearest bulb to the lower root cusp of 1/3 bulb and child bulbs of 1/3 bulb have periods 3 * denominator(internal angle) ie, 1 -> 1/3 -> 3 -> 1/89 -> 267
- the lower one will be 1 -> floor(period/3)/period -> period because it's the nearest bulb below the 1/3 cusp ie, 1 -> 89/268 -> 268
- the middle ray .(001) lands at the root of 1 -> 1/3 -> 3, from the cusp on the lower side (which is on the right in a standard unrotated view)
Bash source code
"... be aware that the code is in alpha state and might change making the examples incompatible " Claude Heiland-Allen
Note :
- heredoc syntax
- pipeline
#!/bin/bash
# test by M. Romera, G. Pastor, A. B. Orue, A. Martin, M.-F. Danca, and F. Montoya
# calculation of external angles in ghci:
# > let rep n s = concat (replicate n s)
# > putStrLn $ ".(" ++ rep 88 "001" ++ "010)"
# > putStrLn $ ".(" ++ rep 87 "001" ++ "010001)"
# > putStrLn $ ".(" ++ rep 88 "001" ++ "0001)"
# > putStrLn $ ".(" ++ rep 88 "001" ++ "0010)"
# labels computed by ray-in.c, output pasted below
# right hand cusp of 1/3 bulb
re="-1.1815256967956639e-01"
im="6.4962873032063617e-01"
r="1.75e-04"
view="$re $im $r"
# escape radius
er="512"
# filename stem
stem="ray-in"
# image size in pixels
w="1920"
h="1080"
# maximum iterations
n="65536"
# interior rendering
i="1"
# ray depth
d="8192"
# render background image
./render $view "$er" "$stem" "$w" "$h" "$n" "$i" && ./colour "$stem" > "$stem.ppm"
# compute rays in parallel
./ray_in ".(001)" $d > "$stem-ray1.txt" &
./ray_in ".(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010)" $d > "$stem-ray2.txt" &
./ray_in ".(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010001)" $d > "$stem-ray3.txt" &
./ray_in ".(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010001)" $d > "$stem-ray4.txt" &
./ray_in ".(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010)" $d > "$stem-ray5.txt" &
wait
# annotate background with rays and labels
./annotate "$stem.ppm" "$stem.png" <<EOF
rgba 1 1 1 1
line cat "$stem-ray1.txt" | ./rescale 100 53 $view 0
line cat "$stem-ray2.txt" | ./rescale 100 53 $view 0
line cat "$stem-ray3.txt" | ./rescale 100 53 $view 0
line cat "$stem-ray4.txt" | ./rescale 100 53 $view 0
line cat "$stem-ray5.txt" | ./rescale 100 53 $view 0
text `echo '-1.1822526882505369174786906160298e-01 6.4976152480139330552861597620428e-01' | ./rescale 100 53 $view 0` 1/89
text `echo '-1.1822493706369402373694114253571e-01 6.497492977188836930425943612155e-01' | ./rescale 100 53 $view 0` 267
text `echo '-1.1823989797024315747580621362645e-01 6.4947944517318122236851485691881e-01' | ./rescale 100 53 $view 0` 89/268
text `echo '-1.182402951560276787014475129283e-01 6.4949165134945441813936036487738e-01' | ./rescale 100 53 $view 0` 268
EOF
References
- ↑ c program by Claude Heiland-Allen
- ↑ Claude Heiland-Allen - blog
- ↑ An algorithm to draw external rays of the Mandelbrot set by Tomoki KAWAHIRA. Archived from the original on 2011-07-17. Retrieved on 2014-10-14.
- ↑ Interior coordinates in the Mandelbrot set
- ↑ Modified Atom Domains
- ↑ Mandelbrot Notebook
- ↑ A Method to Solve the Limitations in Drawing External Rays of the Mandelbrot Set M. Romera,1 G. Pastor, A. B. Orue,1 A. Martin, M.-F. Danca,and F. Montoya
Captions
Items portrayed in this file
depicts
some value
13 October 2014
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 16:46, 1 August 2023 | ![]() | 1,920 × 1,080 (1.24 MB) | wikimediacommons>Obscure2020 | Optimized with OxiPNG and ZopfliPNG. |
File usage
The following page uses this file: