-
Notifications
You must be signed in to change notification settings - Fork 181
Closed
Labels
topic: performancebugs or enhancements related to performance (improvements or regressions)bugs or enhancements related to performance (improvements or regressions)
Description
It turns out that we have two isomorphism tester for Meataxe modules. My student found and used MTX.IsomorphismModules (sensible! given that name) but it was too slow. I started debugging, but then realized: his modules were both irreducible, and thus MTX.IsomorphismIrred was applicable, and much faster.
As an example, read this file: meataxe-iso-modules.txt ; then run this code:
gap> fail <> MTX.IsomorphismIrred(M1, M2); time;
true
16
gap> fail <> MTX.IsomorphismModules(M1, M2); time;
true
1596
Which raises some wishes and question:
- the two functions are documented in different sections (66.9-3 and 66.10-3) -- close by, but not next to each other. So maybe each should reference the other?
- if both input modules are known to be irreducible, shouldn't
MTX.IsomorphismModulesjust delegate toMTX.IsomorphismIrred - going one further: the irreducibility check is usually (in my experience) much cheaper than the full works done by
MTX.IsomorphismModules; so why doesn't it just perform those checks; and then delegate / return fail / proceed as before depending on the outcome - in fact: why doesn't
MTX.IsomorphismIrredperform those irreducibility checks, too? After all if you called, you had a reason... being told "Error, Neither module is known to be irreducible" is not that helpful.
And at that point 4, one could basically just merge the two into one function... no?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
topic: performancebugs or enhancements related to performance (improvements or regressions)bugs or enhancements related to performance (improvements or regressions)