AUTHORS:
Bases: sage.structure.unique_representation.UniqueRepresentation, sage.structure.sage_object.SageObject
A Kazhdan-Lusztig polynomial.
INPUT:
OPTIONAL:
The parent of q may be a PolynomialRing or a LaurentPolynomialRing.
REFERENCES:
[KL79] | D. Kazhdan and G. Lusztig. Representations of Coxeter groups and Hecke algebras. Invent. Math. 53 (1979). no. 2, 165–184. doi:10.1007/BF01390031 MathSciNet MR0560412 |
[Dy93] | M. J. Dyer. Hecke algebras and shellings of Bruhat intervals. Compositio Mathematica, 1993, 89(1): 91-115. |
[BB05] | A. Bjorner, F. Brenti. Combinatorics of Coxeter groups. New York: Springer, 2005. |
EXAMPLES:
sage: W = WeylGroup("B3",prefix="s")
sage: [s1,s2,s3] = W.simple_reflections()
sage: R.<q> = LaurentPolynomialRing(QQ)
sage: KL = KazhdanLusztigPolynomial(W,q)
sage: KL.P(s2,s3*s2*s3*s1*s2)
1 + q
A faster implementation (using the optional package Coxeter 3) is given by:
sage: W = CoxeterGroup(['B', 3], implementation='coxeter3') # optional - coxeter3
sage: W.kazhdan_lusztig_polynomial([2], [3,2,3,1,2]) # optional - coxeter3
1 + q
Return the Kazhdan-Lusztig polynomial.
If the rank is large, this runs slowly at first but speeds up as you do repeated calculations due to the caching.
INPUT:
See also
kazhdan_lusztig_polynomial for a faster implementation using Fokko Ducloux’s Coxeter3 C++ library.
EXAMPLES:
sage: R.<q> = QQ[]
sage: W = WeylGroup("A3", prefix="s")
sage: [s1,s2,s3] = W.simple_reflections()
sage: KL = KazhdanLusztigPolynomial(W, q)
sage: KL.P(s2,s2*s1*s3*s2)
q + 1
Return the Kazhdan-Lusztig polynomial.
INPUT:
EXAMPLES:
sage: R.<q>=QQ[]
sage: W = WeylGroup("A2", prefix="s")
sage: [s1,s2]=W.simple_reflections()
sage: KL = KazhdanLusztigPolynomial(W, q)
sage: [KL.R(x,s2*s1) for x in [1,s1,s2,s1*s2]]
[q^2 - 2*q + 1, q - 1, q - 1, 0]
Return the Kazhdan-Lusztig polynomial.
Information about the polynomials can be found in
[Dy93] and [BB05].
INPUT:
EXAMPLES:
sage: R.<q> = QQ[]
sage: W = WeylGroup("A2", prefix="s")
sage: [s1,s2] = W.simple_reflections()
sage: KL = KazhdanLusztigPolynomial(W, q)
sage: [KL.R_tilde(x,s2*s1) for x in [1,s1,s2,s1*s2]]
[q^2, q, q, 0]