Skip to content

Commit e866070

Browse files
author
Release Manager
committed
Trac #32352: Efficient algorithm to compute products in the C' basis of an Iwahori-Hecke algebra
> '''(Update after review completed)''' The `Cp_Coxeter3` class mentioned below was eventually merged into the `Cp` class, and the `Cp_Coxeter3.product_on_basis` method is moved into the latter. This ticket introduces, in the class `IwahoriHeckeAlgebra.Cp_Coxeter3`, an alternative implementation of the Kazhdan--Lusztig C'-basis in an Iwahori--Hecke algebra. This new implementation is to be contrasted with the existing implementation of the same C'-basis via the class `IwahoriHeckeAlgebra.Cp`. The latter class computes products in the C'-basis indirectly by converting elements to the T-basis, performing multiplication there, and converting back, while the main feature of our new class is the direct computation of products in the C'-basis. By delegating some computations to the optional package coxeter3, the new class is able to compute products in the C'-basis more quickly, including some products that take prohibitively long in the existing `Cp` class. For example, the following calculation takes 5 seconds in `Cp` but is instant in `Cp_Coxeter3`: {{{ #!python sage: R.<v> = LaurentPolynomialRing(ZZ) # optional - coxeter3 sage: W = CoxeterGroup('H4', implementation='coxeter3') # optional - coxeter3 sage: H = IwahoriHeckeAlgebra(W, v**2) # optional - coxeter3 sage: Cp = H.Cp(); CpC = H.Cp_Coxeter3() # optional - coxeter3 sage: Cp[3,4,3]*Cp[3,4,3,4]*Cp[1,2,3,4] # long time (5 seconds) # optional - coxeter3 (v^-2+2+v^2)*Cp[4,3,4,3,4,1,2,3,4] + (v^-2+2+v^2)*Cp[4,3,4,3,4,1,2] + (v^-1+v)*Cp[3,4,1,2,3,4] + (v^-3+3*v^-1+3*v+v^3)*Cp[4,3,4,3,4,1] + (v^-1+v)*Cp[3,4,1,2] sage: CpC[3,4,3]*CpC[3,4,3,4]*CpC[1,2,3,4] # optional - coxeter3 (v^-2+2+v^2)*CpC[4,3,4,3,4,1,2,3,4] + (v^-2+2+v^2)*CpC[4,3,4,3,4,1,2] + (v^-1+v)*CpC[3,4,1,2,3,4] + (v^-3+3*v^-1+3*v+v^3)*CpC[4,3,4,3,4,1] + (v^-1+v)*CpC[3,4,1,2] }}} The following computation also seems infeasible in the existing `Cp` basis (it did not terminate in any reasonable time), but it is again instant in `Cp_Coxeter3`: {{{ #!python sage: W = CoxeterGroup('A9', implementation='coxeter3') # optional - coxeter3 sage: H = IwahoriHeckeAlgebra(W, v**2) # optional - coxeter3 sage: CpC = H.Cp_Coxeter3() # optional - coxeter3 sage: CpC[1,2,1,8,9,8]*CpC[1,2,3,7,8,9] # optional - coxeter3 (v^-2+2+v^2)*CpC[1,2,1,3,7,8,7,9,8,7] + (v^-2+2+v^2)*CpC[1,2,1,3,8,9,8,7] + (v^-3+3*v^-1+3*v+v^3)*CpC[1,2,1,3,8,9,8] }}} The main function for the class `IwahoriHeckeAlgebra.Cp_Coxeter3` is `IwahoriHeckeAlgebra.Cp_Coxeter3.product_on_basis`. Explanations of the relevant algorithms and detailed examples (including more previously infeasible computations) are given in the documentation for this function and the class. We also handle conversions between the C'-basis (implemented in `Cp_Coxeter3`) and other bases of the Iwahori--Hecke algebra, by building on existing conversions involving the `Cp` implementation of the same C'-basis in a trivial way. The product computations introduced in this ticket can potentially be used to calculate the left, right, or two-sided Kazhdan-Lusztig cell containing arbitrary Coxeter group elements, which can in turn be used to determine all cells in any finite Coxeter group. We have included functions in `sage/categories/coxeter_groups.py` that can calculate the cells containing an element or compute all cells within a finite Coxeter group. Some example computations are given below. {{{ #!python sage: W = CoxeterGroup('B3', implementation='coxeter3') # optional - coxeter3 sage: s1,s2,s3 = W.simple_reflections() # optional - coxeter3 sage: W.kazhdan_lusztig_cell(s1*s2*s1) # optional - coxeter3 {[2, 1, 2], [2, 3, 2, 1, 2], [3, 2, 1, 2]} sage: W.kazhdan_lusztig_cell(s3, side='right') # optional - coxeter3 {[3], [3, 2], [3, 2, 1], [3, 2, 3]} sage: W.kazhdan_lusztig_cell(s3, side='two-sided') # optional - coxeter3 {[1], [1, 2], [1, 2, 3], [1, 2, 3, 2], [1, 2, 3, 2, 1], [2], [2, 1], [2, 3], [2, 3, 2], [2, 3, 2, 1], [3], [3, 2], [3, 2, 1], [3, 2, 3]} }}} URL: https://trac.sagemath.org/32352 Reported by: gh-cemulate Ticket author(s): Chase Meadors, Tianyuan Xu Reviewer(s): Travis Scrimshaw
2 parents ab2c01c + 901699b commit e866070

File tree

2 files changed

+639
-4
lines changed

2 files changed

+639
-4
lines changed

0 commit comments

Comments
 (0)