Skip to content

decompose identity into generators with coxeter3 #34812

@mantepse

Description

@mantepse

This fixes trivial multiplications:

sage: R.<v> = LaurentPolynomialRing(ZZ, 'v')                    # optional - coxeter3
sage: W = CoxeterGroup('A3', implementation='coxeter3')         # optional - coxeter3
sage: H = IwahoriHeckeAlgebra(W, v**2); Cp=H.Cp()               # optional - coxeter3
sage: Cp.product_on_basis(W([1,2,1]), W([]))                 # optional - coxeter3
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Input In [7], in <cell line: 1>()
----> 1 Cp.product_on_basis(W([Integer(1),Integer(2),Integer(1)]), W([]))                 # optional - coxeter3

File ~/sage-develop/src/sage/algebras/iwahori_hecke_algebra.py:2155, in IwahoriHeckeAlgebra.Cp.product_on_basis(self, w1, w2)
   2153 else:
   2154     side = 'right'
-> 2155     gen_expression = self._decompose_into_generators(w2)
   2156     other_element = self.monomial(w1)
   2158 # Multiplication: multiply the generators in each term of the above
   2159 # polynomial onto other_element and add that summand onto result.

File ~/sage-develop/src/sage/algebras/iwahori_hecke_algebra.py:2293, in IwahoriHeckeAlgebra.Cp._decompose_into_generators(self, u)
   2290     return {(u[0],): 1}
   2292 # l(y) > 1, use the recursive method described in product_on_basis
-> 2293 s = u[0]
   2294 w = u[1:]  # so CpC_s * CpC_w = CpC_u + lower order terms
   2296 # get the lower order terms ("sum_term")

File ~/sage-develop/src/sage/libs/coxeter3/coxeter_group.py:545, in CoxeterGroup.Element.__getitem__(self, i)
    533 """
    534 EXAMPLES::
    535 
   (...)
    542 
    543 """
    544 # Allow the error message to be raised by the underlying element
--> 545 return self.value[i]

File ~/sage-develop/src/sage/libs/coxeter3/coxeter.pyx:784, in sage.libs.coxeter3.coxeter.CoxGroupElement.__getitem__()
    782     i += len(self)
    783 if i >= len(self):
--> 784     raise IndexError("The index (%d) is out of range." % i)
    785 
    786 return self._parent_group.out_ordering[self.word[i]]

IndexError: The index (0) is out of range.

CC: @tscrim

Component: algebra

Author: Martin Rubey

Branch/Commit: 9e5f25f

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/34812

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions