Hi,
Trying to work with WeylGroups I noticed that the notions of roots differ depending on whether implementation='matrix' or implementation='permutation'. I think it would be good if they didn't or at least if there was an error instead of nonsensical output.
Here is an example:
L = RootSystem(['A',3])
root_space = L.root_space()
root_to_ambient = root_space.to_ambient_space_morphism()
alpha = root_to_ambient(root_space.simple_roots()[1])
W = WeylGroup(L, implementation='matrix')
g = W[1]
print(alpha)
print(g.action(alpha))
The outputs are (1, -1, 0, 0) and (0, -1, 0, 1).
So far everything is as expected. Now if I replace W by the 'permutation'-version (which I had hoped to work as a drop-in replacement)
W = WeylGroup(L, implementation='permutation')
g = W[1]
print(g.action(alpha))
print(W.roots()[0])
the outputs are (1, -1, -1) and (1, 0, 0). What's a little annoying is that the root systems use different ambient spaces. What's extremely annoying is that g.action(alpha) accepts a 4-touple without raising an exception.
Is there a plan of making the behavior more coherent or should one never switch between the two implementations?
Best,
Stefan