Module: sage.combinat.crystals.fast_crystals
Fast Rank Two Crystals
Class: FastCrystal
Input: CartanType and a shape. The CartanType is ['A',2], ['B',2] or ['C',2]. The shape is of the form [l1,l2] where l1 and l2 are either integers or (in type B) half integers such that l1-l2 is integral. It is assumed that l1 >= l2 >= 0. If l1 and l2 are integers, this will produce the a crystal isomorphic to the one obtained by CrystalOfTableaux(type, shape=[l1,l2]). Furthermore FastCrystal(['B', 2], l1+1/2, l2+1/2) produces a crystal isomorphic to the following crystal T:
C = CrystalOfTableaux(['B',2], shape=[l1,l2]) D = CrystalOfSpins(['B',2]) T = TensorProductOfCrystals(C,D,C.list()[0],D.list()[0])
The representation of elements is in term of the Berenstein-Zelevinsky-Littelmann strings [a1, a2, ...] described under metapost in crystals.py. Alternative representations may be obtained by the options format="dual_string" or format="simple". In the simple format, the element is represented by and integer, and in the dual_string format, it is represented by the Berenstein-Zelevinsky-Littelmann string, but the underlying decomposition of the long Weyl group element into simple reflections is changed.
TESTS:
sage: C = FastCrystal(['A',2],shape=[4,1]) sage: C.count() 24 sage: C.check() True sage: C = FastCrystal(['B',2],shape=[4,1]) sage: C.count() 154 sage: C.check() True sage: C = FastCrystal(['B',2],shape=[3/2,1/2]) sage: C.count() 16 sage: C.check() True sage: C = FastCrystal(['C',2],shape=[2,1]) sage: C.count() 16 sage: C = FastCrystal(['C',2],shape=[3,1]) sage: C.count() 35 sage: C.check() True
| self, ct, shape, [format=string]) |
sage: C = FastCrystal(['A',2],shape=[4,1]); C The fast crystal for A2 with shape [4,1]
Functions: cmp_elements,
digraph,
list
| self, x, y) |
Returns True if and only if there is a path from x to y in the crystal graph.
Because the crystal graph is classical, it is a directed acyclic graph which can be interpreted as a poset. This function implements the comparison function of this poset.
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: x = C(0) sage: y = C(1) sage: C.cmp_elements(x,y) -1 sage: C.cmp_elements(y,x) 1 sage: C.cmp_elements(x,x) 0
| self) |
Returns the digraph associated to self.
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: C.digraph() Digraph on 8 vertices
| self) |
Returns a list of the elements of self.
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: C.list() [[0, 0, 0], [1, 0, 0], [0, 1, 1], [0, 2, 1], [1, 2, 1], [0, 1, 0], [1, 1, 0], [2, 1, 0]]
Special Functions: __call__,
__init__,
_type_a_init,
_type_bc_init
| self, value) |
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: C(0) [0, 0, 0] sage: C(1) [1, 0, 0]
| self, l1, l2) |
sage: C = FastCrystal(['A',2],shape=[1,1]) sage: C.delpat # indirect doctest [[0, 0, 0], [0, 1, 0], [1, 1, 0]] sage: C.gampat [[0, 0, 0], [1, 0, 0], [0, 1, 1]]
| self, l1, l2) |
sage: C = FastCrystal(['B',2],shape=[1]) sage: len(C.delpat) # indirect doctest 5 sage: len(C.gampat) 5 sage: C = FastCrystal(['C',2],shape=[1]) sage: len(C.delpat) 4 sage: len(C.gampat) 4
Class: FastCrystalElement
| self, parent, value, format) |
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: c = C(0); c [0, 0, 0]
Functions: e,
f,
parent,
weight
| self, i) |
Returns the action of
on self.
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: C(1).e(1) [0, 0, 0] sage: C(0).e(1) is None True
| self, i) |
Returns the action of
on self.
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: C(6).f(1) [1, 2, 1] sage: C(7).f(1) is None True
| self) |
Returns the parent of self.
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: C[0].parent() The fast crystal for A2 with shape [2,1]
| self) |
Returns the weight of self.
sage: [v.weight() for v in FastCrystal(['A',2], shape=[2,1])] [(2, 1, 0), (1, 2, 0), (1, 1, 1), (1, 0, 2), (0, 1, 2), (2, 0, 1), (1, 1, 1), (0, 2, 1)] sage: [v.weight() for v in FastCrystal(['B',2], shape=[1,0])] [(1, 0), (0, 1), (0, 0), (0, -1), (-1, 0)] sage: [v.weight() for v in FastCrystal(['B',2], shape=[1/2,1/2])] [(1/2, 1/2), (1/2, -1/2), (-1/2, 1/2), (-1/2, -1/2)] sage: [v.weight() for v in FastCrystal(['C',2], shape=[1,0])] [(1, 0), (0, 1), (0, -1), (-1, 0)] sage: [v.weight() for v in FastCrystal(['C',2], shape=[1,1])] [(1, 1), (1, -1), (0, 0), (-1, 1), (-1, -1)]
Special Functions: __cmp__,
__eq__,
__init__,
__repr__
| self, other) |
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: C(1) < C(2) True sage: C(2) < C(1) False sage: C(2) > C(1) True sage: C(1) <= C(1) True
| self, other) |
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: D = FastCrystal(['B',2],shape=[2,1]) sage: C(0) == C(0) True sage: C(1) == C(0) False sage: C(0) == D(0) False
| self) |
sage: C = FastCrystal(['A',2],shape=[2,1]) sage: C[0].__repr__() '[0, 0, 0]'
See About this document... for information on suggesting changes.