Height of rational points
Hi, I'm looking at this example of enumeration of rational points from the documentation Enumeration of rational points on projective schemes. Here I'm considering the entire projective plane.
from sage.schemes.projective.projective_rational_point import enum_projective_number_field
u = QQ['u'].0
K = NumberField(u^3 - 5, 'v')
P.<x,y,z> = ProjectiveSpace(K, 2)
enum_projective_number_field(P, bound=RR(5^(1/3)), prec=2^10)
The returned result includes several points like (v : 1/5*v^2 : 1)
. If I'm not mistaken, this point is of height 25^(1/3) instead of 5^(1/3): for the infinite place the first coordinate provides a 5^(1/3), and for the place 5 the second coordinate provides another 5^(1/3). Is this a bug?
Edit. I reviewed the code, it seems that the problem is in the file schemes/projective/projective_space.py
, the method points_of_bounded_height
of class ProjectiveSpace_field
. When enumerating points with bounded height over a number field, it uses the method elements_of_bounded_height
: this gives not just algebraic integers but all field elements with bounded height.
I'm not an expert but
gives 0.536479304144700, which is smaller than 5^(1/3).
Thanks for the comment! First of all,
global_height
gives the logarithm height, so one should consider exp(0.53...) which is actually equal to 5^(1/3). But this only computes the maximal height among the three coordinates, instead of the height as a homogeneous coordinate. The former is not a well-defined function, for example for (1:1:1)=(2:2:2) it can give both 0=ln(1) and ln(2).My code for enumeration of points using elimination is here if anyone is interested. There is a hacked-up global height function for homogeneous coordinates.