sine-Gordon Y-system plotter¶
This class builds the triangulations associated to sine-Gordon and reduced sine-Gordon Y-systems as constructed in [NS].
AUTHORS:
Salvatore Stella (2014-07-18): initial version
EXAMPLES:
A reduced sine-Gordon example with 3 generations:
sage: Y = SineGordonYsystem('A',(6,4,3)); Y
A sine-Gordon Y-system of type A with defining integer tuple (6, 4, 3)
sage: Y.plot() #not tested
The same integer tuple but for the non-reduced case:
sage: Y = SineGordonYsystem('D',(6,4,3)); Y
A sine-Gordon Y-system of type D with defining integer tuple (6, 4, 3)
sage: Y.plot() #not tested
Todo
The code for plotting is extremely slow.
REFERENCES:
- NS(1,2,3,4,5)
T. Nakanishi, S. Stella, Wonder of sine-Gordon Y-systems, to appear in Trans. Amer. Math. Soc., arXiv 1212.6853
- class sage.combinat.sine_gordon.SineGordonYsystem(X, na)¶
Bases:
sage.structure.sage_object.SageObject
A class to model a (reduced) sine-Gordon Y-system
Note that the generations, together with all integer tuples, in this implementation are numbered from 0 while in [NS] they are numbered from 1
INPUT:
X
– the type of the Y-system to construct (either ‘A’ or ‘D’)na
– the tuple of positive integers defining the Y-system withna[0] > 2
See [NS]
EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)); Y A sine-Gordon Y-system of type A with defining integer tuple (6, 4, 3) sage: Y.intervals() (((0, 0, 'R'),), ((0, 17, 'L'), (17, 34, 'L'), ... (104, 105, 'R'), (105, 0, 'R'))) sage: Y.triangulation() ((17, 89), (17, 72), (34, 72), ... (102, 105), (103, 105)) sage: Y.plot() #not tested
- F()¶
Return the number of generations in
self
.EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.F() 3
- intervals()¶
Return, divided by generation, the list of intervals used to construct the initial triangulation.
Each such interval is a triple
(p, q, X)
wherep
andq
are the two extremal vertices of the interval andX
is the type of the interval (one of ‘L’, ‘R’, ‘NL’, ‘NR’).ALGORITHM:
The algorithm used here is the one described in section 5.1 of [NS]. The only difference is that we get rid of the special case of the first generation by treating the whole disk as a type ‘R’ interval.
EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.intervals() (((0, 0, 'R'),), ((0, 17, 'L'), (17, 34, 'L'), ... (104, 105, 'R'), (105, 0, 'R')))
- na()¶
Return the sequence of the integers \(n_a\) defining
self
.EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.na() (6, 4, 3)
- pa()¶
Return the sequence of integers
p_a
, i.e. the total number of intervals of types ‘NL’ and ‘NR’ in the(a+1)
-th generation.EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.pa() (1, 6, 25)
- plot(**kwds)¶
Plot the initial triangulation associated to
self
.INPUT:
radius
- the radius of the disk; by default the length of the circle is the number of verticespoints_color
- the color of the vertices; default ‘black’points_size
- the size of the vertices; default 7triangulation_color
- the color of the arcs; default ‘black’triangulation_thickness
- the thickness of the arcs; default 0.5shading_color
- the color of the shading used on neuter intervals; default ‘lightgray’reflections_color
- the color of the reflection axes; default ‘blue’reflections_thickness
- the thickness of the reflection axes; default 1
EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.plot() # long time 2s Graphics object consisting of 219 graphics primitives
- qa()¶
Return the sequence of integers
q_a
, i.e. the total number of intervals of types ‘L’ and ‘R’ in the(a+1)
-th generation.EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.qa() (6, 25, 81)
- r()¶
Return the number of vertices in the polygon realizing
self
.EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.r() 106
- rk()¶
Return the sequence of integers
r^{(k)}
, i.e. the width of an interval of type ‘L’ or ‘R’ in thek
-th generation.EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.rk() (106, 17, 4)
- triangulation()¶
Return the initial triangulation of the polygon realizing
self
as a tuple of pairs of vertices.Warning
In type ‘D’ the returned triangulation does NOT contain the two radii.
ALGORITHM:
We implement the four cases described by Figure 14 in [NS].
EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.triangulation() ((17, 89), (17, 72), ... (102, 105), (103, 105))
- type()¶
Return the type of
self
.EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.type() 'A'
- vertices()¶
Return the vertices of the polygon realizing
self
as the ring of integers moduloself.r()
.EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)) sage: Y.vertices() Ring of integers modulo 106