@@ -2076,7 +2076,7 @@ def murphy_basis(self):
2076
2076
"""
2077
2077
return MurphyBasis (self )
2078
2078
2079
- @cached_method
2079
+ @cached_method ( key = lambda s , X , Y : ( StandardTableaux ()( X ), StandardTableaux ()( Y )))
2080
2080
def murphy_basis_element (self , S , T ):
2081
2081
r"""
2082
2082
Return the Murphy basis element indexed by ``S`` and ``T``.
@@ -2095,15 +2095,28 @@ def murphy_basis_element(self, S, T):
2095
2095
[[1, 3], [2]] [[1, 2], [3]] [1, 3, 2] + [3, 1, 2]
2096
2096
[[1, 2], [3]] [[1, 3], [2]] [1, 3, 2] + [2, 3, 1]
2097
2097
[[1, 2], [3]] [[1, 2], [3]] [1, 2, 3] + [3, 2, 1]
2098
+
2099
+ TESTS::
2100
+
2101
+ sage: SGA = SymmetricGroupAlgebra(QQ, 3)
2102
+ sage: SGA.murphy_basis_element([[1,2,3,4]], [[1,2],[3,4]])
2103
+ Traceback (most recent call last):
2104
+ ...
2105
+ ValueError: [[1, 2, 3, 4]] is not an element of Standard tableaux of size 3
2106
+ sage: SGA.murphy_basis_element([[1,2,3]], [[1,2],[3]])
2107
+ Traceback (most recent call last):
2108
+ ...
2109
+ ValueError: S and T must have the same shape
2098
2110
"""
2111
+ std_tab = StandardTableaux (self .n )
2112
+ S = std_tab (S )
2113
+ T = std_tab (T )
2099
2114
S = S .conjugate ()
2100
2115
T = T .conjugate ()
2101
2116
2102
2117
la = S .shape ()
2103
2118
if la != T .shape ():
2104
2119
raise ValueError ("S and T must have the same shape" )
2105
- if sum (la ) != self .n :
2106
- raise ValueError (f"the shape must be a partition of size { self .n } " )
2107
2120
2108
2121
G = self .group ()
2109
2122
ds = G (list (sum ((row for row in S ), ())))
0 commit comments