Iterate over tranlsation elements of affine Weyl group

asked 2024-07-22 17:40:50 +0200

SDawydiak gravatar image

updated 2024-07-23 12:53:58 +0200

I want to do some computations in the Kazhdan-Lusztig basis of an affine Hecke algebra.

Sometimes I want these computations to iterate over just the the translation subgroup of the affine Weyl group $W$. Is it possible do do this?

For example, if I set things up as

R.<v> = LaurentPolynomialRing(ZZ)
H = IwahoriHeckeAlgebra(['A',2,1], v^2)
W= H.coxeter_group()

Then I can iterate over things indexed by elements of $W$ just fine. Is there a function to determine which $w\in W$ are translation elements? For example

s=W.simple_reflections()
s[0].is_translation()
AttributeError: 'CoxeterMatrixGroup_with_category.element_class' object has no attribute 'is_translation'

doesn't work.

On the other hand, if I use the ExtendedAffineWeylGroup class

R.<v> = LaurentPolynomialRing(ZZ)
W = ExtendedAffineWeylGroup( ["A", 3, 1 ])

then

W.an_element().is_translation()
False

works, but I can't loop over $W$ (or really access the elements of $W$ at all)

for w in W:
    if w.is_translation():
        print(w)

gives a long error that ends with

AttributeError: 'ExtendedAffineWeylGroup_Class_with_category' object has no attribute 'list'

Is there any setup in Sage such that one can simultaneously determine which elements are translation elements, and iterate over $W$? (It would also be great to simultaneously have elements_of_length() work; that's another thing that only seems to work in the first setup.)

EDIT: For future visitors, while I still want to know the answer to my question, it seems actually to be more efficient in my case to iterate over the Grassmannian elements of $W$, the minimal length elements of $W/W_{fin}$. The method grassmannian_elements() works in the first setup.

edit retag flag offensive close merge delete