@@ -2,49 +2,47 @@ include("OrientTrees.jl")
2
2
include (" ../spidermap/SpiderMap.jl" )
3
3
include (" ../parameters/DynamicRays.jl" )
4
4
5
- struct EmbeddedHubbardTree
6
- zero :: Sequence
7
- adj:: Dict{Sequence ,Vector{Sequence }}
8
- boundary:: Vector{Sequence }
9
- onezero:: Dict{Sequence{Char}, Char }
5
+ struct HyperbolicComponent
6
+ criticalpoint :: Sequence
7
+ adj:: Dict{KneadingSequence ,Vector{KneadingSequence }}
8
+ boundary:: Vector{KneadingSequence }
9
+ onezero:: Dict{KneadingSequence, Union{Nothing,Digit{2}} }
10
10
angle:: Rational
11
- rays:: Dict{Rational ,Vector{ComplexF64}}
11
+ rays:: Dict{BinaryExpansion ,Vector{ComplexF64}}
12
12
parameter:: ComplexF64
13
- vertices:: Dict{Sequence , ComplexF64} # maps each vertex in the tree to a point in the plane
14
- edges:: Dict{Set{Sequence{Char}} , Tuple{Sequence{Char} , Vector{ComplexF64}}} # maps each edge to an oriented polyline
13
+ vertices:: Dict{KneadingSequence , ComplexF64} # maps each vertex in the tree to a point in the plane
14
+ edges:: Dict{Set{KneadingSequence} , Tuple{KneadingSequence , Vector{ComplexF64}}} # maps each edge to an oriented polyline
15
15
end
16
16
17
- function EmbeddedHubbardTree (OHT:: OrientedHubbardTree )
17
+ function HyperbolicComponent (OHT:: OrientedHubbardTree )
18
18
19
19
OZ = labelonezero (OHT)
20
20
anglelist = allanglesof (OZ,OHT)
21
21
22
- criticalorbit = orbit (OHT. zero ) # This is a sequence orbit
22
+ criticalorbit = orbit (OHT. criticalpoint ) # This is a sequence orbit
23
23
24
- theta = angleof (first (criticalanglesof (OZ,OHT)))
24
+ theta = Rational (first (criticalanglesof (OZ,OHT)))
25
25
c = parameter (standardspider (theta),250 )
26
- println (c)
27
26
28
27
# critical orbit
29
28
rays = Dict ()
30
29
# periodic branch points
31
30
characteristicpoints = characteristicset (OHT)
32
31
for point in characteristicpoints
33
- merge! (rays,dynamicrays (c,angleof ( first (anglelist[point]) ),100 ,10 ,20 ))
32
+ merge! (rays,dynamicrays (c,first (anglelist[point]),100 ,10 ,20 ))
34
33
end
35
-
34
+
36
35
# preperiod branch points. This is slow!
37
36
for node in keys (OHT. adj)
38
37
for angle in anglelist[node]
39
38
if ! (angle in keys (rays))
40
- phi = angleof (angle)
41
- push! (rays,Pair (phi,dynamicrays (c,phi,100 ,10 ,20 )[phi]))
39
+ push! (rays,Pair (angle,dynamicrays (c,angle,100 ,10 ,20 )[angle]))
42
40
end
43
41
end
44
42
end
45
43
46
- merge! (rays,dynamicrays (c,1 // 2 ,100 ,10 ,40 ))
47
- merge! (rays,dynamicrays (c,0 // 1 ,100 ,10 ,40 ))
44
+ merge! (rays,dynamicrays (c,BinaryExpansion ( 1 // 2 ) ,100 ,10 ,40 ))
45
+ merge! (rays,dynamicrays (c,BinaryExpansion ( 0 // 1 ) ,100 ,10 ,40 ))
48
46
49
47
paramorbit = [0.0 + 0.0im ]
50
48
n = period (theta)
@@ -56,19 +54,19 @@ function EmbeddedHubbardTree(OHT::OrientedHubbardTree)
56
54
57
55
zvalues = Dict {Sequence,ComplexF64} ()
58
56
for node in keys (OHT. adj)
59
- if ' * ' in node. items # then it is in the critical orbit
60
- idx = findone (x-> x== ' * ' ,node. items)
57
+ if star () in node. items # then it is in the critical orbit
58
+ idx = findone (x-> x== star () ,node. items)
61
59
push! (zvalues,Pair (node,paramorbit[mod1 (n- idx+ 2 ,n)]))
62
60
else
63
- list = [rays[angleof ( angle) ][end ] for angle in anglelist[node]]
61
+ list = [rays[angle][end ] for angle in anglelist[node]]
64
62
push! (zvalues,Pair (node,sum (list)/ length (list)))
65
63
end
66
64
end
67
- E = standardedges (OHT. adj,OHT. zero ,zvalues)
68
- return EmbeddedHubbardTree (OHT. zero ,OHT. adj,OHT. boundary,OZ,theta,rays,c,zvalues,E)
65
+ E = standardedges (OHT. adj,OHT. criticalpoint ,zvalues)
66
+ return HyperbolicComponent (OHT. criticalpoint ,OHT. adj,OHT. boundary,OZ,theta,rays,c,zvalues,E)
69
67
end
70
68
71
- function Base. show (io:: IO ,H:: EmbeddedHubbardTree )
69
+ function Base. show (io:: IO ,H:: HyperbolicComponent )
72
70
return println (io," Embedded Hubbard tree of " * repr (H. angle)* " with " * repr (length (keys (H. adj)))* " vertices" )
73
71
end
74
72
@@ -120,15 +118,15 @@ function edgepath(graph,start, finish)
120
118
end
121
119
122
120
function refinedtree (OHT,zvalues,steps)
123
- c = zvalues[shift (OHT. zero )]
121
+ c = zvalues[shift (OHT. criticalpoint )]
124
122
E = standardedges (OHT,zvalues)
125
123
for ii in 1 : steps
126
124
E = refinetree (OHT,c,E)
127
125
end
128
126
return E
129
127
end
130
128
131
- function refinetree! (EHT:: EmbeddedHubbardTree )
129
+ function refinetree! (EHT)
132
130
133
131
newedges = []
134
132
for edge in keys (EHT. edges)
0 commit comments