Ask Your Question

Revision history [back]

The thing is that the points of the curve are defined up to a multiplicative constant, since the equation that defines them is homogenous:

sage: EC.defining_polynomial()
-x^3 + y^2*z - 2*x*z^2 - 3*z^3

So if i take a random point :

sage: p = EC.random_point()
sage: p
(50 : 60 : 1)

there is no canonical choice of which multiple (a*50, a*60, a*1) that represents that point.

That said, you can decide to fix the x coordinate to be equal to 1:

sage: p.dehomogenize(0)
(82, 99)

or the y coordinate:

sage: p.dehomogenize(1)
(85, 32)

or the z coordinate:

sage: p.dehomogenize(2)
(50, 60)

The thing is that the points of the curve are defined up to a multiplicative constant, since the equation that defines them the curve is homogenous:

sage: EC.defining_polynomial()
-x^3 + y^2*z - 2*x*z^2 - 3*z^3

So if i take a random point :

sage: p = EC.random_point()
sage: p
(50 : 60 : 1)

there is no canonical choice of which multiple (a*50, a*60, a*1) that represents that point.

That said, you can decide to fix the x coordinate to be equal to 1:

sage: p.dehomogenize(0)
(82, 99)

or the y coordinate:

sage: p.dehomogenize(1)
(85, 32)

or the z coordinate:

sage: p.dehomogenize(2)
(50, 60)