Skip to content

Comments

fix a problem with a new feature for matrix groups#6232

Draft
ThomasBreuer wants to merge 5 commits intogap-system:masterfrom
ThomasBreuer:TB_Nicomorphism_cache
Draft

fix a problem with a new feature for matrix groups#6232
ThomasBreuer wants to merge 5 commits intogap-system:masterfrom
ThomasBreuer:TB_Nicomorphism_cache

Conversation

@ThomasBreuer
Copy link
Contributor

@ThomasBreuer ThomasBreuer commented Feb 12, 2026

(resolves #6222)

  • add a description of the cache FULLGLNICOCACHE in the code; it is used only by NicomorphismFFMatGroupOnFullSpace
  • change the keys of FULLGLNICOCACHE: take the field of the matrix entries into account (not only its size), take the ConstructingFilter of the matrices into account
  • in NicomorphismFFMatGroupOnFullSpace, deal with special cases of matrices in IsBlockMatrixRep (which have no ConstructingFilter) and in Is8BitMatrixRep in the situation that the group itself lives over GF(2)
  • add Matrix calls in the function that computes preimages under an action homomorphism with Source a matrix group, in order to support matrix group elements of prescribed kinds of IsMatrixObj.
  • add tests for the new supported situations (most of the changes were actually forced by already available tests)
  • add \in methods for GL and SL groups where the first argument is in IsMatrixObj (such that no nice monomorphism is used in this situation)
  • introduce NormedRowVectors_internal( F, base ) and AsListOfFreeLeftModule_internal( F, base, zero ),
    in order to admit IsVectorObjs in base without supporting the whole vector space machinery for these objects
  • introduce ExternalSet( G ) for matrix groups G, meaning the natural G-set (an undocumented method for permutation groups G was already available)
  • change NicomorphismFFMatGroupOnFullSpace such that we can act with the IsMatrixObj matrices on their IsVectorObj vectors, without unpacking the matrices
  • support IsMatrixObj matrices in the Random methods for GL and SL

(Some of the changes were forced by the fact that functionality for the intended new tests was missing.
In fact the list of known missing functionality is rather growing this way. Issue #6241 was also found just by trying to add tests. Until this problem is fixed, the current pull request deals only partially with the ideas from #6234.)

- add a description of the cache `FULLGLNICOCACHE` in the code;
  it is used only by `NicomorphismFFMatGroupOnFullSpace`

- change the keys of `FULLGLNICOCACHE`:
  take the field of the matrix entries into account (not only its size),
  take the `ConstructingFilter` of the matrices into account

- in `NicomorphismFFMatGroupOnFullSpace`, deal with special cases of
  matrices in `IsBlockMatrixRep` (which have no `ConstructingFilter`)
  and in `Is8BitMatrixRep` in the situation that the group itself
  lives over `GF(2)`

- in order to admit the action of `IsMatrixObj` matrices on vectors
  supported by GAP's `Enumerator`s of vector spaces,
  add a `\^` method that `Unpack`s the matrix object
  (Eventually we want to avoid this overhead, but then we need
  `Enumerator`s consisting of vector objects corresponding to the
  matrix objects.)

- add `Matrix` calls in the function that computes preimages under
  an action homomorphism with `Source` a matrix group,
  in order to support matrix group elements of prescribed kinds of
  `IsMatrixObj`.

- add tests for the new supported situations
  (most of the changes were actually forced by already available tests)
@ThomasBreuer ThomasBreuer added kind: bug Issues describing general bugs, and PRs fixing them topic: library release notes: not needed PRs introducing changes that are wholly irrelevant to the release notes labels Feb 12, 2026
@ThomasBreuer
Copy link
Contributor Author

repeated failures due to problems like
connection error: 12029 fetching http://mirrors.kernel.org/sourceware/cygwin/x86_64/setup.zst.sig

- introduce `NormedRowVectors_internal( F, base )`,
  and `AsListOfFreeLeftModule_internal( F, base, zero )`,
  in order to admit `IsVectorObj`s in `base` without supporting
  the whole vector space machinery for these objects

- introduce `ExternalSet( G )` for matrix groups `G`,
  meaning the natural `G`-set
  (an undocumented method for permutation groups `G` was already available)

- change `NicomorphismFFMatGroupOnFullSpace` such that we can act
  with the `IsMatrixObj` matrices on their `IsVectorObj` vectors,
  without unpacking the matrices

- support `IsMatrixObj` matrices in the `Random` methods for GL and SL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind: bug Issues describing general bugs, and PRs fixing them release notes: not needed PRs introducing changes that are wholly irrelevant to the release notes topic: library

Projects

None yet

Development

Successfully merging this pull request may close these issues.

problem with a new feature for matrix groups

1 participant