def dynkin_diagram(self): """ Returns a Dynkin diagram for type B. EXAMPLES:: sage: b = CartanType(['B',3]).dynkin_diagram() sage: b O---O=>=O 1 2 3 B3 sage: sorted(b.edges()) [(1, 2, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1)] sage: b = CartanType(['B',1]).dynkin_diagram() sage: b O 1 B1 sage: sorted(b.edges()) [] """ from dynkin_diagram import DynkinDiagram_class n = self.n g = DynkinDiagram_class(self) for i in range(1, n): g.add_edge(i, i + 1) if n >= 2: g.set_edge_label(n - 1, n, 2) return g
def dynkin_diagram(self): """ Returns a Dynkin diagram for type B. EXAMPLES:: sage: b = CartanType(['B',3]).dynkin_diagram() sage: b O---O=>=O 1 2 3 B3 sage: sorted(b.edges()) [(1, 2, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1)] sage: b = CartanType(['B',1]).dynkin_diagram() sage: b O 1 B1 sage: sorted(b.edges()) [] """ from dynkin_diagram import DynkinDiagram_class n = self.n g = DynkinDiagram_class(self) for i in range(1, n): g.add_edge(i, i + 1) if n >= 2: g.set_edge_label(n - 1, n, 2) return g
def dynkin_diagram(self): """ Returns the extended Dynkin diagram for affine type C. EXAMPLES:: sage: c = CartanType(['C',3,1]).dynkin_diagram() sage: c O=>=O---O=<=O 0 1 2 3 C3~ sage: sorted(c.edges()) [(0, 1, 2), (1, 0, 1), (1, 2, 1), (2, 1, 1), (2, 3, 1), (3, 2, 2)] """ n = self.n if n == 1: import cartan_type res = cartan_type.CartanType(["A",1,1]).dynkin_diagram() res._cartan_type = self return res from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) for i in range(1, n): g.add_edge(i, i+1) g.set_edge_label(n,n-1,2) g.add_edge(0,1,2) return g
def dynkin_diagram(self): """ Returns the extended Dynkin diagram for affine type B. EXAMPLES:: sage: b = CartanType(['B',3,1]).dynkin_diagram() sage: b O 0 | | O---O=>=O 1 2 3 B3~ sage: sorted(b.edges()) [(0, 2, 1), (1, 2, 1), (2, 0, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1)] sage: b = CartanType(['B',2,1]).dynkin_diagram(); b O=>=O=<=O 0 2 1 B2~ sage: sorted(b.edges()) [(0, 2, 2), (1, 2, 2), (2, 0, 1), (2, 1, 1)] sage: b = CartanType(['B',1,1]).dynkin_diagram(); b O<=>O 0 1 B1~ sage: sorted(b.edges()) [(0, 1, 2), (1, 0, 2)] """ import cartan_type n = self.n if n == 1: res = cartan_type.CartanType(["A", 1, 1]).dynkin_diagram() res._cartan_type = self return res if n == 2: res = cartan_type.CartanType(["C", 2, 1]).relabel({ 0: 0, 1: 2, 2: 1 }).dynkin_diagram() res._cartan_type = self return res from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) for i in range(1, n): g.add_edge(i, i + 1) g.set_edge_label(n - 1, n, 2) g.add_edge(0, 2) return g
def dynkin_diagram(self): """ Returns the extended Dynkin diagram for affine type B. EXAMPLES:: sage: b = CartanType(['B',3,1]).dynkin_diagram() sage: b O 0 | | O---O=>=O 1 2 3 B3~ sage: sorted(b.edges()) [(0, 2, 1), (1, 2, 1), (2, 0, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1)] sage: b = CartanType(['B',2,1]).dynkin_diagram(); b O=>=O=<=O 0 2 1 B2~ sage: sorted(b.edges()) [(0, 2, 2), (1, 2, 2), (2, 0, 1), (2, 1, 1)] sage: b = CartanType(['B',1,1]).dynkin_diagram(); b O<=>O 0 1 B1~ sage: sorted(b.edges()) [(0, 1, 2), (1, 0, 2)] """ import cartan_type n = self.n if n == 1: res = cartan_type.CartanType(["A",1,1]).dynkin_diagram() res._cartan_type = self return res if n == 2: res = cartan_type.CartanType(["C",2,1]).relabel({0:0, 1:2, 2:1}).dynkin_diagram() res._cartan_type = self return res from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) for i in range(1, n): g.add_edge(i, i+1) g.set_edge_label(n-1, n, 2) g.add_edge(0,2) return g
def dynkin_diagram(self): """ Returns a Dynkin diagram for type G. EXAMPLES:: sage: g = CartanType(['G',2]).dynkin_diagram() sage: g 3 O=<=O 1 2 G2 sage: sorted(g.edges()) [(1, 2, 1), (2, 1, 3)] """ from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) g.add_edge(1, 2) g.set_edge_label(2, 1, 3) return g
def dynkin_diagram(self): """ Returns a Dynkin diagram for type G. EXAMPLES:: sage: g = CartanType(['G',2]).dynkin_diagram() sage: g 3 O=<=O 1 2 G2 sage: sorted(g.edges()) [(1, 2, 1), (2, 1, 3)] """ from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) g.add_edge(1,2) g.set_edge_label(2,1,3) return g
def dynkin_diagram(self): """ Returns the extended Dynkin diagram for type G. EXAMPLES:: sage: g = CartanType(['G',2,1]).dynkin_diagram() sage: g 3 O=<=O---O 1 2 0 G2~ sage: sorted(g.edges()) [(0, 2, 1), (1, 2, 1), (2, 0, 1), (2, 1, 3)] """ from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) g.add_edge(1, 2) g.set_edge_label(2,1,3) g.add_edge(0, 2) return g
def dynkin_diagram(self): """ Returns a Dynkin diagram for type F. EXAMPLES:: sage: f = CartanType(['F',4]).dynkin_diagram() sage: f O---O=>=O---O 1 2 3 4 F4 sage: sorted(f.edges()) [(1, 2, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1), (3, 4, 1), (4, 3, 1)] """ from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) for i in range(1, 4): g.add_edge(i, i+1) g.set_edge_label(2,3,2) return g
def dynkin_diagram(self): """ Returns a Dynkin diagram for type F. EXAMPLES:: sage: f = CartanType(['F',4]).dynkin_diagram() sage: f O---O=>=O---O 1 2 3 4 F4 sage: sorted(f.edges()) [(1, 2, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1), (3, 4, 1), (4, 3, 1)] """ from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) for i in range(1, 4): g.add_edge(i, i + 1) g.set_edge_label(2, 3, 2) return g
def dynkin_diagram(self): """ Returns the extended Dynkin diagram for affine type F. EXAMPLES:: sage: f = DynkinDiagram(['F', 4, 1]) sage: f O---O---O=>=O---O 0 1 2 3 4 F4~ sage: sorted(f.edges()) [(0, 1, 1), (1, 0, 1), (1, 2, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1), (3, 4, 1), (4, 3, 1)] """ from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) for i in range(1, 4): g.add_edge(i, i + 1) g.set_edge_label(2, 3, 2) g.add_edge(0, 1) return g
def dynkin_diagram(self): """ Returns the extended Dynkin diagram for affine type F. EXAMPLES:: sage: f = DynkinDiagram(['F', 4, 1]) sage: f O---O---O=>=O---O 0 1 2 3 4 F4~ sage: sorted(f.edges()) [(0, 1, 1), (1, 0, 1), (1, 2, 1), (2, 1, 1), (2, 3, 2), (3, 2, 1), (3, 4, 1), (4, 3, 1)] """ from dynkin_diagram import DynkinDiagram_class g = DynkinDiagram_class(self) for i in range(1, 4): g.add_edge(i, i+1) g.set_edge_label(2,3,2) g.add_edge(0, 1) return g