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
Enumeration functionality for products of projective spaces over fields and finite fields #19635
Comments
Branch: u/gjorgenson/ticket/19635 |
This comment has been minimized.
This comment has been minimized.
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Reviewer: Ben Hutz |
comment:5
A few minors things and a few larger things. I think before I do functionality testing some of these coding improvements should be made. Minor
points function
Major
points function
You should be able to improve the indices creator in points_of_bounded_height and rational_points as well
speaking of which. I'd like to see this as an |
comment:6
The need to use copy() in the iterator was bothering me and this seems to be a more endemic problem. If you initialize a point with a list of points and change an element of that list, it changes the point. This does not seem like desired behavior as it does not behave like that for regular projective points.
Consequently, I think the copy needs to be somewhere in |
comment:8
Okay I think I addressed the issues from the review and this should be ready for another look-over. I added an I'm not exactly sure why the output of some of the projective morphism examples got rearranged, but it definitely happened when I changed the hash function. I think it might be related to the use of I also tried to address the copy issue for the
Also, copy for projective space points seems to be too shallow:
I'm not sure whether this really is an issue, but if it is, maybe we could override |
comment:9
Why did you duplicate the code in
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:11
Replying to @videlec:
I wasn't thinking; |
comment:12
Much improved. Still a couple things.
What you are doing is in line with everything else, so will be resolved when the more general generic/point copy is resolved.
versus
or the same for QQbar...
or
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:14
I think I've resolved everything from the review, but I don't know whether my changes are really the right ways to address the issues in 4) and 5). For the base extension issues in 4), the problem actually seemed to be from
vs
This seemed to be happening because of line 1520 of The issue in 5) seemed to be related to a coercion problem. There is some coercion in place when initializing projective points from lists, but not for initializing points of products of projective spaces. Things like
don't work. The problem causing the issues with finite fields seemed to come from this, though I don't know why a list of rational numbers is being used to initialize a point. I think this list came about from |
comment:15
I think the fix for 4 is the right thing to do. I don't fully understand what issue you are describing for (5). _fast_eval will only be called for evaluation maps and there are no maps here. I see the issue you are pointing out in the example above, and you've fixed that issue. Could you explain where this list of rational numbers is showing up in the code in my examples (4)? |
comment:16
The coercion problem comes up in the example
when using the affine morphisms corresponding to the affine patches used for finding points. In particular, a rational number list shows up when evaluating one of the affine morphisms at the rational points from the corresponding patch. The following traces some of the code in
Adding the coercion got around the issue, but I'm not sure why |
comment:17
ok. _fast_eval is returning a list defined over a ring based on what will be most quickly computed. Then the coordinates are coerced when it is made into a point. However, for subschemes, check_satisfies_equations was being called before the coordinates were coerced, causing the error. So your fix does solve the problem, by coercing first. The functionality checkouts to me. There are just a couple very minor things:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:19
Thanks. I also removed a couple lines in |
Changed branch from u/gjorgenson/ticket/19635 to |
Implement enumeration functionality for products of projective spaces over fields/finite fields. Some basic class structure will need to be added to enable working specifically with such product spaces.
Also will make points of products of projective spaces hashable to increase the efficiency of the enumeration functionality. There is currently a bug with the hash implementations for points of projective spaces
so this will be addressed here as well. Some examples in projective_morphism need to be updated because of reordering in their outputs from the hash changes.
CC: @bhutz
Component: algebraic geometry
Author: Grayson Jorgenson
Branch/Commit:
be82af5
Reviewer: Ben Hutz
Issue created by migration from https://trac.sagemath.org/ticket/19635
The text was updated successfully, but these errors were encountered: