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
Bug in finite field element GAP-to-Sage conversion when explicit field is specified #23153
Comments
comment:1
namely
and in this case one has |
comment:2
Indeed, different entries of a matrix might belong to different subfields of the field of definition; this test is simply wrong here (there is an element from the order 4 subfield in one of these matrices). |
comment:3
Amending this to reflect the real underlying bug: |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. New commits: |
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:9
This fix looks as if it might lead to a huge slowdown. |
comment:10
I also do not understand how libGAP handles finite fields obtained by specifying an explicit irreducible polynomial, e.g.
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Author: Itay Bookstein |
comment:14
Sorry, missed your comments before I wrapped it all up and submitted it for review, assumed such comments would be part of the review.
|
comment:15
A comment about your code; you create a lot of temporary variables without a reason; one does not need Otherwise, your patch looks good; I now realise that because we deal with only "standard" finite fields here, for them Regarding the latter (finite fields with non-default (non-Conway) modulus polynomial); so you think they are not handled in libGAP? If so, could you please open a ticket to deal with this? |
Reviewer: Dima Pasechnik |
comment:16
No problem getting rid of them, just thought they make the code more readable (are these temporaries a performance concern?). I was under the impression that the field creation within GAP might be performance issue, not the Regarding the finite fields with non-default (non-Conway) modulus polynomials, see |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:18
OK, this looks good enough. Regarding the non-Conway irreducible polynomials for GFs, I have opened #23452. |
comment:19
Should we also open tickets about the following two enhancements?
|
comment:20
IMHO Sage's support for GF(q) with large q is much better than in GAP - in particular for q=2k, where Anyhow, why does one even need to call |
comment:21
Regarding the Regarding the |
comment:22
Unless I miss something, for sufficiently big q GF(q) in Sage is implemented using NTL. |
comment:23
They are, but once you try doing things in e.g.
This is because the objects being coerced are deduced as generic |
comment:24
I'm not very well acquainted with the development cycle (and didn't see anything about it on the developer guide), am I supposed to merge it to develop or is that on one of the admins? |
comment:25
Replying to @sagetrac-ibookstein:
the rest is normally done by the release manager, no need to do anything at this point on your side. |
Changed branch from u/ibookstein/gap_to_sage_ffe_conversion_bugfix to |
As reported on sage-devel
Specifically, one gets
The actual underlying bug is the fact that the
GapElement_FiniteField.sage
method malfunctions when an explicitring
argument is specified and the element lies in a subfield of the field passed in that argument (note that GAP performs such reductions automatically).One would reasonably expect this to work, but a
ValueError
is thrown on the last line:CC: @vbraun
Component: group theory
Author: Itay Bookstein
Branch/Commit:
117599e
Reviewer: Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/23153
The text was updated successfully, but these errors were encountered: