Improvement to LargerQuotientBySubgroupAbelianization - #6547
Conversation
eda5839 to
40f3c5e
Compare
|
With these changes, running the motivating example from #6545 needs only 10 seconds on my machine, which is really an impressive speedup. |
702e1e8 to
6efe36e
Compare
|
Moved the isomorphism commit into the right PR |
|
What I do not understand: |
|
We just merged #5173 and this lead to conflicts here, which I just resolved -- hopefully correctly. |
fingolfin
left a comment
There was a problem hiding this comment.
Thanks, that's a wonderful improvement. Some minor questions/remarks.
| if IsSubgroupFpGroup(v) then | ||
| ma:=SubFPMaxAbelian(v); | ||
| else |
There was a problem hiding this comment.
The main question I have is the same as the one by @ThomasBreuer: why is this safe now when using SubFPMaxAbelian as a method for MaximalAbelianQuotient wasn't ? I note that the same inputs that were buggy when SubFPMaxAbelian still was used as a method still cause it to error or return nonsense. Perhaps those inputs just can't happen at this point?
|
@ThomasBreuer wrote
Yes, that is very much a concern, and why I added a "do not merge" label. Apart from providing a motivation for fixing #5609 properly (that is something where AI might be able to help), we have, in this situation, a cheap way of checking (which is something I need to add before removing the "merge" label): First, the abelianization structure is computed with independent methods, so we can spot if the quotient does not produce the output. |
|
I believe I have fixed the error underlying #5609. Do we want:
|
|
Thanks. I can confirm that the last commit fixes the example from #5609. The most natural change would be to re-enable the method installation. |
|
I agree with @ThomasBreuer |
Re-enable method for MaximalAbelianQuotient through fixing the problem posed by gap-system#5609: The secondary images stored in the augmented coset tble need to be in the old numbering, not the one with treeNums.
|
OK. I have restored the method installation and removed the do not merge tag. The bug was in computing images, so should an assertion be in the |
Re-enable method for MaximalAbelianQuotient (that had thrown up problems in the general context and thus might need monitoring) for special use here.
This blows the kludge of #6545 out of the water. (Faster, better permutation degree)