Processing math: 100%
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Iterate over tranlsation elements of affine Weyl group

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 wW 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.)

Iterate over tranlsation elements of affine Weyl group

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 wW 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/Wfin. The method grassmannian_elements() works in the first setup.