1 | initial version |
It is hard to extract (exactly the intentioned) question, but i will try to cover all nuances.
First of all, not all points are shown with a $Z$-normalized component, as the following example is showing it.
sage: E = EllipticCurve( GF(7), [3, 4] )
sage: for P in E:
....: print(P)
....:
(0 : 1 : 0)
(0 : 2 : 1)
(0 : 5 : 1)
(1 : 1 : 1)
(1 : 6 : 1)
(2 : 2 : 1)
(2 : 5 : 1)
(5 : 2 : 1)
(5 : 5 : 1)
(6 : 0 : 1)
And indeed, all but one points have a $Z$-component normalized to one, but the neutral point $O$ is shown as $(0:1:0)$. For all points we can initialize them using the $(x,y)$ notation (if the $Z$-component does not vanish), for instance:
sage: E.point( [2, 5] )
(2 : 5 : 1)
but also using "projective components" (in a list), for instance for the above point:
sage: E.point( [2, 5] )
(2 : 5 : 1)
sage: E.point( [2, 5, 1] )
(2 : 5 : 1)
sage: E.point( [4, 10, 2] )
(2 : 5 : 1)
sage: E.point( [6, 15, 3] )
(2 : 5 : 1)
sage: E.point( [-1, 1, 3] )
(2 : 5 : 1)
et caetera. The "infinity point" is
sage: E.point(0)
(0 : 1 : 0)
sage: E.point( [0, 1, 0] )
(0 : 1 : 0)
sage: E.point( [0, 2, 0] )
(0 : 1 : 0)
so we can introduce it in either of the above ways.