extend the GAP library functions GO, GU, etc.#4
extend the GAP library functions GO, GU, etc.#4jdebeule merged 3 commits intogap-packages:masterfrom
GO, GU, etc.#4Conversation
... such that one can prescribe an invariant form. This will work as soon as the corresponding extensions in the GAP library become available. Some tests of the new code are provided in `tst/classic.tst`; currently they are not processed automatically when `tst/testall.g` is run, note that they require the corresponding changes in the GAP library. (Documentation for the new functions is missing.)
lib/classic.gi
Outdated
| ## | ||
| ## Return the matrix which has at position (i,j) the entry <mat>[j,i]^<q>. | ||
| ## | ||
| BindGlobal( "PowerTransposedMat", function( mat, q ) |
There was a problem hiding this comment.
This is transpose plus field involution, which I'd call a Chevalley involution and which other people call "adjoint", and yet other "conjugate transpose".
There was a problem hiding this comment.
@fingolfin I just need the functionality in two places, and I do not care much about the name.
In fact, I would prefer if the GAP library would provide such a function; it could be used for example in the membership test function for the groups GU and SU (see lib/grpmat.gi of GAP).
Thinking more about it, perhaps I really prefer a function name that expresses what the function does, and does not suggest a mathematical meaning.
(If the function would be documented for the case of a (square?) finite field matrix and an exponent that is a power of the characteristic then in the end one would have to add some tests inside the function whether these conditions are satisfied.)
There was a problem hiding this comment.
Note that forms also has TransposedFrobeniusMat which does the exact same thing (just with different code)
There was a problem hiding this comment.
Hehe, and also Forms_HERM_CONJ does it
Codecov Report
@@ Coverage Diff @@
## master #4 +/- ##
==========================================
- Coverage 67.87% 65.17% -2.70%
==========================================
Files 4 5 +1
Lines 2991 3632 +641
==========================================
+ Hits 2030 2367 +337
- Misses 961 1265 +304
|
lib/classic.gi
Outdated
| result:= NewZeroMatrix( ConstructingFilter( mat ), BaseDomain( mat ), | ||
| ncols, nrows ); |
There was a problem hiding this comment.
Shouldn't this be
| result:= NewZeroMatrix( ConstructingFilter( mat ), BaseDomain( mat ), | |
| ncols, nrows ); | |
| result:= NewZeroMatrix( ncols, nrows, mat ); |
or perhaps
| result:= NewZeroMatrix( ConstructingFilter( mat ), BaseDomain( mat ), | |
| ncols, nrows ); | |
| result:= ZeroMatrix( ncols, nrows, mat ); |
- removed `PowerTransposedMat`, call `TransposedFrobeniusMat` instead - added `Omega` methods with `GF(q)` as argument instead of `q`, extended the tests accordingly - test also the `GO`, `SO`, `Omega` variants without argument `e`
as discussed with @fingolfin: - The new test file `tst/classic_self_contained.tst` tests the new methods for `SymplecticGroupCons` etc. in the Forms package without assuming that the corresponding global functions `SymplecticGroup` etc. have already been extended in the GAP library. - The test file `tst/classic.tst` calls the global functions `SymplecticGroup` with arguments that belong to the methods for `SymplecticGroupCons` etc. in the Forms package. This way, we test whether the global functions work as expected. (Note that we cannot use a test file for the main GAP system for that.) - The list of test files in `tst/testall.g` has been extended by `tst/classic_self_contained.tst`; if the GAP version is at least 4.12 then also `tst/classic.tst` gets added to the list, assuming that GAP 4.12 will contain the extension.
... such that one can prescribe an invariant form.
This will work as soon as the corresponding extensions in the GAP library become available, see pull request gap-system/gap/pull/4489.
Some tests of the new code are provided in
tst/classic.tst;currently they are not processed automatically when
tst/testall.gis run,note that they require the corresponding changes in the GAP library.
(Documentation for the new functions is missing.)