Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add LatticeSubgroups method for the case IsHandledByNiceMonomorphism #4639

Merged

Conversation

ThomasBreuer
Copy link
Contributor

resolves #4637

for the case `IsHandledByNiceMonomorphism`
@ThomasBreuer ThomasBreuer added release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes kind: enhancement Label for issues suggesting enhancements; and for pull requests implementing enhancements topic: library labels Aug 25, 2021
> [ 0*Z(5), 0*Z(5), 0*Z(5), 0*Z(5), Z(5)^0, 0*Z(5) ],
> [ Z(5), 0*Z(5), Z(5)^2, Z(5)^2, Z(5)^2, Z(5)^0 ],
> [ Z(5)^3, Z(5), Z(5)^3, 0*Z(5), 0*Z(5), Z(5)^0 ] ] ] );;
gap> Length( ConjugacyClassesSubgroups( g ) );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How long does this actually take, though?x

When I tried something in this vein earlier today, the "nice" permutation group had relatively large degree and working with was rather slow.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This example needs about 30 seconds on my notebook.
The permutation group is clearly not optimal --I get degree 7560, the smallest possible degree would be 200.
In larger examples, no reasonable faithful permutation representation exists at all, but this argument affects all methods that are based on the "nice monomorphism" idea.

I would say that the new method yields an improvement for "middle-sized examples" and does not cause problems for situations where better methods may become available. (This is how I understand @hulpke 's suggestion.)
But if we think that it would be better not to provide an admittedly slow way to computations like in this example (compared to what Magma offers) then perhaps we should discuss about restricting the "nice monomorphism" approach to small enough situations.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nah, I am fine with this PR, just wondering how effective it is in this example

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What irritates me is that the "nice monomorphism" approach in this example is faster than what one gets when the matgrp package is loaded and FittingFreeLiftSetup for the group is set; I get about 50 seconds in this situation.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am actually pleased that the lattice computation goes through with matgrp without a hitch, as I have not really tried it before.
As for the performance, I can think of two possibilities:

  • Some calculation still goes through nice monomorphisms -- not every subroutine used has a solvable radical analog
  • Certain calculations that happen frequently (say element membership) actually take significantly longer in the matrix representation and we need to figure out how to improve this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I had noticed that the NiceMonomorphism value is set in the group after the computations with matgrp.

@ThomasBreuer ThomasBreuer merged commit 3c581ce into gap-system:master Aug 26, 2021
@ThomasBreuer ThomasBreuer deleted the TB_lattice_via_nice_monomorphism branch August 26, 2021 20:30
@fingolfin fingolfin changed the title added a LatticeSubgroups method for the case IsHandledByNiceMonomorphism Add LatticeSubgroups method for the case IsHandledByNiceMonomorphism Aug 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: enhancement Label for issues suggesting enhancements; and for pull requests implementing enhancements release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes topic: library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

subgroup lattice for matrix groups
3 participants