def DynkinDiagram(*args): """ INPUT: - ``ct`` - a Cartan Type Returns a Dynkin diagram for type ct. The edge multiplicities are encoded as edge labels. This uses the convention in Kac / Fulton Harris, Representation theory / Wikipedia (http://en.wikipedia.org/wiki/Dynkin_diagram). That is for i != j:: j --k--> i <==> a_ij = -k <==> -scalar(coroot[i], root[j]) = k <==> multiple arrows point from the longer root to the shorter one EXAMPLES:: sage: DynkinDiagram(['A', 4]) O---O---O---O 1 2 3 4 A4 sage: DynkinDiagram(['A',1],['A',1]) O 1 O 2 A1xA1 sage: R = RootSystem("A2xB2xF4") sage: DynkinDiagram(R) O---O 1 2 O=>=O 3 4 O---O=>=O---O 5 6 7 8 A2xB2xF4 SEE ALSO: :func:`CartanType` for a general discussion on Cartan types and in particular node labeling conventions. """ if len(args) == 0: return DynkinDiagram_class() ct = CartanType(*args) if hasattr(ct, "dynkin_diagram"): return ct.dynkin_diagram() else: raise ValueError, "Dynkin diagram data not yet hardcoded for type %s"%ct
def DynkinDiagram(*args): r""" Return a Dynkin diagram for type ``ct``. INPUT: - ``ct`` -- a Cartan Type The edge multiplicities are encoded as edge labels. This uses the convention in Hong and Kang, Kac, Fulton Harris, and crystals. This is the **opposite** convention in Bourbaki and Wikipedia's Dynkin diagram (:wikipedia:`Dynkin_diagram`). That is for `i \neq j`:: i <--k-- j <==> a_ij = -k <==> -scalar(coroot[i], root[j]) = k <==> multiple arrows point from the shorter root to the longer one For example, in type `C_2`, we have:: sage: C2 = DynkinDiagram(['C',2]); C2 O=<=O 1 2 C2 sage: C2.cartan_matrix() [ 2 -2] [-1 2] However Bourbaki would have the Cartan matrix as: .. MATH:: \begin{bmatrix} 2 & -1 \\ -2 & 2 \end{bmatrix}. EXAMPLES:: sage: DynkinDiagram(['A', 4]) O---O---O---O 1 2 3 4 A4 sage: DynkinDiagram(['A',1],['A',1]) O 1 O 2 A1xA1 sage: R = RootSystem("A2xB2xF4") sage: DynkinDiagram(R) O---O 1 2 O=>=O 3 4 O---O=>=O---O 5 6 7 8 A2xB2xF4 .. SEEALSO:: :func:`CartanType` for a general discussion on Cartan types and in particular node labeling conventions. """ if len(args) == 0: return DynkinDiagram_class() ct = CartanType(*args) if hasattr(ct, "dynkin_diagram"): return ct.dynkin_diagram() else: raise ValueError, "Dynkin diagram data not yet hardcoded for type %s"%ct
def DynkinDiagram(*args): r""" Return a Dynkin diagram for type ``ct``. INPUT: - ``ct`` -- a Cartan Type The edge multiplicities are encoded as edge labels. This uses the convention in Hong and Kang, Kac, Fulton Harris, and crystals. This is the **opposite** convention in Bourbaki and Wikipedia's Dynkin diagram (:wikipedia:`Dynkin_diagram`). That is for `i \neq j`:: i <--k-- j <==> a_ij = -k <==> -scalar(coroot[i], root[j]) = k <==> multiple arrows point from the longer root to the shorter one For example, in type `C_2`, we have:: sage: C2 = DynkinDiagram(['C',2]); C2 O=<=O 1 2 C2 sage: C2.cartan_matrix() [ 2 -2] [-1 2] However Bourbaki would have the Cartan matrix as: .. MATH:: \begin{bmatrix} 2 & -1 \\ -2 & 2 \end{bmatrix}. EXAMPLES:: sage: DynkinDiagram(['A', 4]) O---O---O---O 1 2 3 4 A4 sage: DynkinDiagram(['A',1],['A',1]) O 1 O 2 A1xA1 sage: R = RootSystem("A2xB2xF4") sage: DynkinDiagram(R) O---O 1 2 O=>=O 3 4 O---O=>=O---O 5 6 7 8 A2xB2xF4 .. SEEALSO:: :func:`CartanType` for a general discussion on Cartan types and in particular node labeling conventions. """ if len(args) == 0: return DynkinDiagram_class() ct = CartanType(*args) if hasattr(ct, "dynkin_diagram"): return ct.dynkin_diagram() else: raise ValueError, "Dynkin diagram data not yet hardcoded for type %s" % ct