Skip to content

extend the GAP library functions GO, GU, etc.#4

Merged
jdebeule merged 3 commits intogap-packages:masterfrom
ThomasBreuer:TB_support_form_as_argument
Jul 7, 2021
Merged

extend the GAP library functions GO, GU, etc.#4
jdebeule merged 3 commits intogap-packages:masterfrom
ThomasBreuer:TB_support_form_as_argument

Conversation

@ThomasBreuer
Copy link
Contributor

... 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.g is run,
note that they require the corresponding changes in the GAP library.

(Documentation for the new functions is missing.)

... 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 )
Copy link
Member

Choose a reason for hiding this comment

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

This is transpose plus field involution, which I'd call a Chevalley involution and which other people call "adjoint", and yet other "conjugate transpose".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@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.)

Copy link
Member

Choose a reason for hiding this comment

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

Note that forms also has TransposedFrobeniusMat which does the exact same thing (just with different code)

Copy link
Member

Choose a reason for hiding this comment

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

Hehe, and also Forms_HERM_CONJ does it

@codecov
Copy link

codecov bot commented May 13, 2021

Codecov Report

Merging #4 (61e11bd) into master (cb93426) will decrease coverage by 2.69%.
The diff coverage is 52.57%.

❗ Current head 61e11bd differs from pull request most recent head dda25b4. Consider uploading reports for the commit dda25b4 to get more accurate results

@@            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     
Impacted Files Coverage Δ
lib/classic.gi 52.57% <52.57%> (ø)

lib/classic.gi Outdated
Comment on lines 25 to 26
result:= NewZeroMatrix( ConstructingFilter( mat ), BaseDomain( mat ),
ncols, nrows );
Copy link
Member

Choose a reason for hiding this comment

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

Shouldn't this be

Suggested change
result:= NewZeroMatrix( ConstructingFilter( mat ), BaseDomain( mat ),
ncols, nrows );
result:= NewZeroMatrix( ncols, nrows, mat );

or perhaps

Suggested change
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.
@jdebeule jdebeule merged commit aaa4baf into gap-packages:master Jul 7, 2021
@ThomasBreuer ThomasBreuer deleted the TB_support_form_as_argument branch July 7, 2021 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants