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
Random failure in enum_projective_number_field #17907
Comments
comment:2
There seems to be an issue with the way 'bound' is defined for points_of_bounded_height. If the expected bound is an absolute height bound and you want to convert to a relative height bound, you need to raise to the power (degree of number field), not 1/(degree of number field). In particular, the expected output in this example contains points with relative height at most 5. For example, the point (2 : 2 : 1) doesn't appear in the expected output, though it certainly has height (relative and absolute) less than 125. This doesn't address the discrepancy in the two lists, though, at least not entirely. The issue must be related to the floating point arithmetic being used for elements_of_bounded_height. The four points appearing in the "expected" list and not the "for" list have relative height exactly equal to 5, which is the bound that is being passed to the elements_of_bounded_height function. I seem to remember something like this happening when we were testing elements_of_bounded_height, where sometimes points of exact height B would appear in the output, and occasionally they would not, depending on the machine. One last comment: Because of the floating point arithmetic involved, the output of elements_of_bounded_height cannot be guaranteed correct (as per the warning in the documentation). Probably a warning to this effect should be included in the documentation here. |
Branch: u/bhutz/ticket/17907 |
Commit: |
comment:4
I've made a start here. I fixed the exponent on the bound. I added a precision parameter and the warning to the appropriate functions. I also upped the precision for the failed example, but since I can't reproduce, I can't be sure that will fix it. I guess I'll mark this as needs-review, although I'm not 100% sure I've resolved it. I won't be able to work on this for a few days if someone wants to take over in the meantime. New commits:
|
Author: Ben Hutz |
comment:5
Seems to fix the issue, at least. Of course it would be nice to pick the right precision automatically ... |
Reviewer: Volker Braun |
comment:6
Thanks for checking this. I've been having trouble finding someone with a machine which can reproduce the original error. Yes, there is a TODO in the enumeration of points of bounded height in number fields (from #15389) to address the precision sensitivity. |
Changed branch from u/bhutz/ticket/17907 to |
Changed commit from |
enum_projective_number_field
(#17386) is missing points on OSX 10.6.8, possibly other platforms. This suggests that there is a bug in the algorithm where memory locations (determining sort order of objects without coercion into a common parent) matter.CC: @sagetrac-gjorgenson @bhutz @sagetrac-dkrumm @sagetrac-jdoyle
Component: algebraic geometry
Keywords: random_fail
Author: Ben Hutz
Branch:
4882838
Reviewer: Volker Braun
Issue created by migration from https://trac.sagemath.org/ticket/17907
The text was updated successfully, but these errors were encountered: