mdescribe
A program to automatically describe Mandelbrot set locations.
1 Hyperbolic Components
Hyperbolic components are the cardioidlike and disklike shapes. Each of these “atoms” has a “nucleus” at its center, which is strictly periodic (after \(p\) iterations starting from \(0\) it gets back to \(0\)).
Each component has a size and orientation which can be calculated numerically given the center and period. Local atom coordinate can be calculated, they have magnitude 1 at the boundary of the component.
Each component is surrounded by an atom domain within which the iterations reach a new minimum at iteration number \(p\). Local atom domain coordinates can be calculated, they have magnitude 1 at the boundary of the domain. The size of the atom domain can be estimated.
2 Misiurewicz Points
Misiurewicz points are the centers of spirals and tips. They are strictly preperiodic (after \(q\) iterations starting from \(0\), it repeats every additional \(p\) iterations).
Each Misiurewicz point has a multiplier which is related to the shape of the spiral.
Each Misiurewicz point is surrounded by a Misiurewicz domain within which the iterations are influenced by the Misiurewicz point. Local Misiurewicz domain coordinates can be calculated, they have magnitude 1 at the boundary of the domain. The size of the Misiurewicz domain can be estimated.
3 External Angles
Rational angles measured in turns correspond to external rays landing on (pre)periodic points of the Mandelbrot set. They are conveniently expressed in binary.
They are expensive to calculate so are only shown for low periods.
4 Usage
mdescribe precision maxperiod maxiters re im [ppperiod ...]

precision
: the number of bits to use for \(c\) 
maxperiod
: the maximum (pre)period to consider 
maxiters
: the maximum iteration count to consider 
re
,im
: the coordinates of \(c\) 
ppperiod
: a possibly empty list of periods of Misiurewicz points to consider
5 Bugs
 no way to force calculation of deep external angles if so desired
 Misiurewicz points are only calculated for shallow depths (due to using orbit structures based on double precision)

output is hard to parse programmatically
(better would be to output
mperturbatorgtk
parameters and have a converter from that to humanfriendly text)
6 Example
Using a location inspired by OlbaidST’s Deep Mandelbrot Set 052:
$ mdescribe 500 10000 100000 \
4.0243740663687506686349081347095971380324381796312098357350797449341544850002707515101493549323254350822554132467297577406826786498627645430708023384339183695760724680078503042069514064070521638596836009025044795704767276259425892328329909712841051456171292989594823614584891421442775087875358790106842413539087124102620332984528096350858097516212101308170805060977898694689089020108291092763528138377334070495186464709998280810308715383876381416845030306994395269250468571545204056890192316317241273555192774246428247170462152750382326191975843272713412093777265167083402457907173991169783894733534983411150426828014261573003993599225584667479050994132331181124257668460240548732794417364932670680868884011962125064601687152817971292139021882208159959349451093591387895375109404826748002304205107432012047552213679317158141493952019717690562051030815099944243694696592157940278618844600506307865432077640071845999706671513058222341652617628226345874376346595456807715650249216376752269241511411930742001723005817525301606816154355954153098218118789850554581875904425182377824804509819414292215510661604040395632544356635277117343476481294802792136242e01 \
3.4183779921922478807186828969752819226770234636084858673850706372489020727204940152394159008174848092471443787339121912877709703688488958784815362543087806396747038897094297202358272577444188513582805703068698620535046901656035674035624660013263211317544722515943615621028094024671937113660585731477872978586143510090595026837338099361250764416328866041424412715288903991690968247867610083259598666780404510438064815389857486937054036568264306635859610102447359273222269561004512014325370274225408768850117825563929076355221454015368233062085297559239215193336243247947786550490312986368112989337995378414137892259917695467628842749916926794402397672454321325947625087917250783709528216688631379564948250224026048758245520306056387169607790469798439064125370636249991958149710071016761999745374960101931849020026288806482985749851222468005570023427046293214557223751421907126347671670002585361442054821931945576492590926533792035134879635905297836231016547338645729347269254503431218243592348565763614907985087368384744609597132666214690267763959842980753711215617996854796057290603088034689768204294929602508508273518080550999505912731444857220225061e01 \
1
the input point was 4.0243740663687506686349081347095971380324381796312098357350797449341544850002707515101493549323254350822554132467297577406826786498627645430708023384339e01 + 3.4183779921922478807186828969752819226770234636084858673850706372489020727204940152394159008174848092471443787339121912877709703688488958784815362543088e01 i
nearby hyperbolic components to the input point:
 a period 1 cardioid
with nucleus at 0.00000e+00 + 0.00000e+00 i
the component has size 1.00000e+00 and is pointing west
the atom domain has size 0.00000e+00
the atom domain coordinates of the input point are nan + nan i
the atom domain coordinates in polar form are nan to the east
the atom coordinates of the input point are 0.40244 + 0.34184 i
the atom coordinates in polar form are 0.52802 to the northeast
the nucleus is 5.28024e01 to the southwest of the input point
 a period 5 circle
with nucleus at 3.7951374e01 + 3.3493233e01 i
the component has size 4.73645e02 and is pointing eastnortheast
the atom domain has size 8.37849e02
the atom domain coordinates of the input point are 0.24361 + 0.22024 i
the atom domain coordinates in polar form are 0.32841 to the southwest
the atom coordinates of the input point are 0.50446 + 0.031861 i
the atom coordinates in polar form are 0.50547 to the west
the nucleus is 2.39413e02 to the westsouthwest of the input point
external angles of this component are:
.(00001)
.(00010)
 a period 10 circle
with nucleus at 4.0851820e01 + 3.4003806e01 i
the component has size 1.17014e02 and is pointing east
the atom domain has size 2.33061e02
the atom domain coordinates of the input point are 0.24569 + 0.10372 i
the atom domain coordinates in polar form are 0.26669 to the eastsoutheast
the atom coordinates of the input point are 0.49982 + 0.20948 i
the atom coordinates in polar form are 0.54195 to the eastsoutheast
the nucleus is 6.34152e03 to the eastsoutheast of the input point
external angles of this component are:
.(0000100010)
.(0001000001)
 a period 366 cardioid
with nucleus at 4.02437406636875066863490796805746116e01 + 3.41837799219224788071868286444707750e01 i
the component has size 3.75098e30 and is pointing southwest
the atom domain has size 2.26862e17
the atom domain coordinates of the input point are 3.6977e10 + 6.5074e10 i
the atom domain coordinates in polar form are 7.4846e10 to the southsoutheast
the atom coordinates of the input point are 3395.3 + 2993.9 i
the atom coordinates in polar form are 4526.7 to the southeast
the nucleus is 1.69797e26 to the west of the input point
 a period 1092 cardioid
with nucleus at 4.02437406636875066863490813470959713803243812766752361907e01 + 3.41837799219224788071868289697528192267702346881439608130e01 i
the component has size 4.98290e51 and is pointing southsouthwest
the atom domain has size 6.18843e37
the atom domain coordinates of the input point are 7.9395e09 + 2.8601e09 i
the atom domain coordinates in polar form are 8.4389e09 to the westnorthwest
the atom coordinates of the input point are 4.5506e+05 + 9.4412e+05 i
the atom coordinates in polar form are 1.0481e+06 to the southsoutheast
the nucleus is 5.22238e45 to the west of the input point
 a period 3512 cardioid
with nucleus at 4.024374066368750668634908134709597138032438179631209835735079744934154485000270751510149354932325243302468290733086119e01 + 3.418377992192247880718682896975281922677023463608485867385070637248902072720494015239415900817484811588161107419668447e01 i
the component has size 2.23284e112 and is pointing northnorthwest
the atom domain has size 1.10549e75
the atom domain coordinates of the input point are 6.9982e24 + 1.5875e23 i
the atom domain coordinates in polar form are 1.7349e23 to the southsouthwest
the atom coordinates of the input point are 3.8818e+13 + 7.6625e+13 i
the atom coordinates in polar form are 8.5897e+13 to the northnortheast
the nucleus is 1.91794e98 to the west of the input point
the point escaped with dwell 21905.75639
nearby Misiurewicz points to the input point:
 141p1
with center at 4.0243925949534396006509e01 + 3.4183348912402132572910e01 i
the Misiurewicz domain has size 3.48611e05
the Misiurewicz domain coordinate radius is 0.13808
the center is 4.69148e06 to the southsoutheast of the input point
the multiplier has radius 1.029841382409056871e+00 and angle 0.204594579220551631 (in turns)
 182p1
with center at 4.024374181484419131097728e01 + 3.418377766889058461432212e01 i
the Misiurewicz domain has size 3.74500e08
the Misiurewicz domain coordinate radius is 0.67898
the center is 2.53008e08 to the southsoutheast of the input point
the multiplier has radius 1.045680217979079840e+00 and angle 0.203056192938225688 (in turns)
 228p1
with center at 4.02437406710970129957003331e01 + 3.41837799103035218552660747e01 i
the Misiurewicz domain has size 1.38494e10
the Misiurewicz domain coordinate radius is 1
the center is 1.37805e10 to the southsoutheast of the input point
the multiplier has radius 1.045680114697290719e+00 and angle 0.203056201695327121 (in turns)
 274p1
with center at 4.0243740663733737772365189460e01 + 3.4183779921863294279149417813e01 i
the Misiurewicz domain has size 7.54355e13
the Misiurewicz domain coordinate radius is 1.0006
the center is 7.51007e13 to the southeast of the input point
the multiplier has radius 1.045662246168962861e+00 and angle 0.203058077262370823 (in turns)
 320p1
with center at 4.0243740663687810530046334376801e01 + 3.4183779921922147988557518921382e01 i
the Misiurewicz domain has size 4.10887e15
the Misiurewicz domain coordinate radius is 1.1007
the center is 4.49179e15 to the southeast of the input point
the multiplier has radius 1.042600520123719843e+00 and angle 0.203448680313569830 (in turns)
 3282p1
with center at 4.024374066368750668634908134709597138032438179421752942360731505e01 + 3.418377992192247880718682896975281922677023463323950739208442333e01 i
the Misiurewicz domain has size 3.46762e47
the Misiurewicz domain coordinate radius is 1.0153
the center is 3.53316e47 to the southwest of the input point
the multiplier has radius 1.045680218568957986e+00 and angle 0.203056192898907972 (in turns)
 3328p1
with center at 4.02437406636875066863490813470959713803243817963020204969243287537e01 + 3.41837799219224788071868289697528192267702346360681445571267999413e01 i
the Misiurewicz domain has size 1.94235e49
the Misiurewicz domain coordinate radius is 1.0153
the center is 1.95173e49 to the southsouthwest of the input point
the multiplier has radius 1.045680217979079840e+00 and angle 0.203056192938225688 (in turns)
 3374p1
with center at 4.0243740663687506686349081347095971380324381796312052389968280659803e01 + 3.4183779921922478807186828969752819226770234636084762808055367852984e01 i
the Misiurewicz domain has size 1.05814e51
the Misiurewicz domain coordinate radius is 1.0153
the center is 1.06317e51 to the southsouthwest of the input point
the multiplier has radius 1.045680114697290719e+00 and angle 0.203056201695327121 (in turns)
 3420p1
with center at 4.024374066368750668634908134709597138032438179631209815776808658544966e01 + 3.418377992192247880718682896975281922677023463608485812990450128805340e01 i
the Misiurewicz domain has size 5.76353e54
the Misiurewicz domain coordinate radius is 1.0159
the center is 5.79405e54 to the southsouthwest of the input point
the multiplier has radius 1.045662246168962417e+00 and angle 0.203058077262370740 (in turns)
 3466p1
with center at 4.024374066368750668634908134709597138032438179631209835642019499445428759e01 + 3.418377992192247880718682896975281922677023463608485867051255818895798595e01 i
the Misiurewicz domain has size 3.13932e56
the Misiurewicz domain coordinate radius is 1.1176
the center is 3.46544e56 to the southsouthwest of the input point
the multiplier has radius 1.042600520123571961e+00 and angle 0.203448680313557950 (in turns)
With higher precision, more hyperbolic components are found, all the way to the final central mini, but that’s all the Misiurewicz points that get reported (see bugs list).