Skip to content

Meataxe: should MTX.IsomorphismModules automatically delegate to MTX.IsomorphismIrred if appropriate? #6271

@fingolfin

Description

@fingolfin

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:

  1. 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?
  2. if both input modules are known to be irreducible, shouldn't MTX.IsomorphismModules just delegate to MTX.IsomorphismIrred
  3. 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
  4. in fact: why doesn't MTX.IsomorphismIrred perform 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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic: performancebugs or enhancements related to performance (improvements or regressions)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions