add ConformalSymplecticGroup and some generalizations
#80
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add
ConformalSymplecticGroup(addresses #43),essentially analogous to the implementation of
SymplecticGroup:ConformalSymplecticGroupand a constructorConformalSymplecticGroupCons,ConformalSymplecticGroupCons,IsFullSubgroupGLRespectingBilinearFormUpToScalarsthat is set in the groups returned byConformalSymplecticGroup,\inmethod for a matrix and a group inIsFullSubgroupGLRespectingBilinearFormUpToScalars,The proposed implementation differs from that of
SymplecticGroupand is intended as a pattern for changing the implementation ofSymplecticGroupand the other classical groups, and for adding the other types of conformal groups.These are the differences:
Do not delegate from the variants where a finite field is given to the variants with given size of the field, but the other way round. This way, it will be possible to use elements from
StandardFiniteField( p, n )instead ofGF( p, n )in the matrices.We might recommend to choose an
IsMatrixObjrepresentation for the matrices if the entries are fromStandardFiniteField( p, n ).For that (and also in general), an "experimental" global option
ConstructingFilteris supported that prescribes the internal format of the matrices. Currently one can use for exampleIsPlistRepMatrixas the value for this option, such that one can make experiments with matrix groups whose elements are inIsMatrixObj. More usefulIsMatrixObjrepresentations will hopefully become available. (Note: We can viewIsPlistRepas the default for theConstructingFilteroption, but then the matrices need not be inIsPlistRepbecause theImmutableMatrixcalls in the code convert the generators toIsGF2MatrixReporIs8BitMatrixRepif possible.)Once we decide about the setup that we want for
ConformalSymplecticGroup, the implementation ofSymplecticGroupetc. in the GAP library and the relevant methods in the Forms package can be rewritten accordingly.