algorithms for finding second angle from pair or parameter rays of root point
 Devaney's method for finding external angles for root points of primary buds of main carioid.
Professor Douglas C. Ravenel :
"In Devaney's paper The Mandebrot set and the Farey tree, another method for computing external angles of primary bud is given.
Let I denote the either of the halfopen unit intervals, I = (0, 1] or I+ = [0, 1), and suppose it has been partitioned into two subintervals (both halfopen in the same way) which we call I0 and I1.
Now consider the sequence {p/q, 2p/q, 3p/q, ...} where we subtract whatever whole number is required from m*p/q to get an answer in the interval I. This sequence will be periodic with period q.
Each point lies in either I0 or I1, and we can use this data to define a binary expansion. We get two such expansions by considering two different partitions, namely
I partition :
I0 = (0, 1  p/q]
I1 = (1  p/q, 1]
and
I+ partition :
I0+ = [0, 1  p/q)
I1+ = [1  p/q, 1)
We will illustrate with the case p/q = 2/5.
I0 = (0 , 3/5]
I1 = (3/5 , 1]
I1+ = [3/5 , 1)
I0+ = [0 , 3/5)
In I the sequence begins with {2/5, 4/5, 1/5, 3/5, 1} so the binary expansion starts with .01001,
which gives a Ray value of 9/31.
In I+ the sequence begins with {2/5, 4/5, 1/5, 3/5, 0} so the binary expansion starts with .01010, which gives a Ray value of 10/31."


Douady and Hubbard method for computing external angles for values of c outside of M and near the real axis.
Professor Douglas C. Ravenel :
"Call such an angle 2Pi*Ray, where 0 < = Ray < 1.
The number Ray can be written as a binary decimal, i.e, as a sequence of zeroes and ones. To find it, consider the sequence
{Arg[c], Arg[c^2 +c], Arg[(c^2 + c)^2 + c], ...}.
We replace Arg[z] by 0 of 0 < = Arg[z] < Pi, and by 1 otherwise. Here is some code for this.
c = .75 +.0001*I; z = 0;
Do[z = z^2 + c; Print[Abs[Floor[Arg[z]/Pi]]], {n, 1, 10}]
in maxima it is :
c:.75 +.0001*%i;
z:0;
for n: 1 thru 3 do block(
z:z*z+c,
display(a:abs(floor(carg(z)/%pi))));
This produces the sequence {0, 1, 0, 1, 0, 1, 0, ...}, while c = .75  .0001*I produces {1, 0, 1, 0, 1, 0, 1, ...}.
These are the binary expansions for 1/3 and 2/3 respectively".
code in maxima :
b(nmax,c):=block(
[z:0,t:0],
for n: 1 thru nmax do block(
z:z*z+c,
a:abs(floor(carg(z)/%pi)),
if a=1 then t:t+2^(n)
),
trigsimp(float(t))
);
(%i36) c:.75 +.0001*%i;
(%o36) 1.0*10^4*%i0.75
(%i37) b(30,c);
`rat' replaced 0.33333333302289 by 1/3 = 0.33333333333333
(%o37) 1/3
(%i38) c:.75 .0001*%i;
(%o38) 1.0*10^4*%i0.75
(%i39) b(30,c);
`rat' replaced 0.66666666604578 by 2/3 = 0.66666666666667
(%o39) 2/3
"the point c0 = .75 is the root of the period 2 bud.
There are two rays leading inward to it, one coming from above and one from below. The two values of c we have chosen lie on or very near these two rays.
Rays leading to 5/4, the root of a period 4 bud should be 2/5=6/15 and 3/5=9/15.
(%i42) c:5/4 +.0001*%i;
(%o42) 1.0*10^4*%i5/4
(%i43) b(30,c);
`rat' replaced 0.27499999944121 by 11/40 = 0.275
(%o43) 11/40
So there is a bug in above code (:


Douady and Hubbard algorithm for finding values of angles for a preperiodic point c0 in M
Professor Douglas C. Ravenel :
Thay may have several rays leading to it.
"Consider the Julia set J(c0).
Let z1 and z2 denote the left and right fixed points of the function z^2 + c0.
The spine of J(c0) is the path within it from z2 to z2. Now choose a point z near c0 but not in J(c0).
Form a binary expansion by looking at the orbit of z and assigning 0 to each point above the spine and 1 to each point below it. This sequence is the binary epansion of the ray through z. It follows from Lei's theorem that we get the same Ray value for a point near c0 and not in M. Here are some examples. In each case the essentail information about the Julia set can be found in its Hubbard tree.
* For c0 = 2, J(c0) is the line segment from 2 to 2 and its its own spine. An easy calculation shows that the ray leading to 2 has Ray value 1/2. The external rays for are hyperbolas, and the equipotential lines are ellipses.The Ray values for the nearest period n cardioid are (2^(n1)1)/(2^n  1)and 2^(n1)/(2^n  1).
* For c0 = I, J(c0) is a dendrite and the right fixed point is 1.30024  .624811*I, which is also the rightmost point of the Julia set. The orbit of a point near I is near {I, 1 + I, I, 1 + I, ...}, yielding the sequence {0, 0, 1, 0, 1,...} which makes the Ray value 1/6.
* For c0 = .101096 + 0.965287*I, there are three external angle to compute. It turns out that their Ray values are 9/56, 11/56 and 15/56. The critical orbit is
{0, 0.101096+0.956287I, 1.00536+0.762932 I, 0.3275860.577756I, 0.327586+0.577756 I, 0.327586+0.577756 I, ...}
"