sineGordon Ysystem plotter¶
This class builds the triangulations associated to sineGordon and reduced sineGordon Ysystems as constructed in [NS].
AUTHORS:
 Salvatore Stella (20140718): initial version
EXAMPLES:
A reduced sineGordon example with 3 generations:
sage: Y = SineGordonYsystem('A',(6,4,3)); Y
A sineGordon Ysystem of type A with defining integer tuple (6, 4, 3)
sage: Y.plot() #not tested
The same integer tuple but for the nonreduced case:
sage: Y = SineGordonYsystem('D',(6,4,3)); Y
A sineGordon Ysystem 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 sineGordon Ysystems, 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) sineGordon Ysystem
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 Ysystem to construct (either ‘A’ or ‘D’)na
– the tuple of positive integers defining the Ysystem withna[0] > 2
See [NS]
EXAMPLES:
sage: Y = SineGordonYsystem('A',(6,4,3)); Y A sineGordon Ysystem 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