1 | initial version |
The following worked for me, regarding the computation of $F(a, b)$.
E = EllipticCurve('61a1')
Ep = E.change_ring(Qp(5))
Ef = Ep.formal_group()
F = Ef.group_law(16)
# t1, t2 = F.parent().gens()
a = Qp(5, prec=16)(5+3*5^2)
b = Qp(5, prec=16)(5^2-2*5^3)
print( F.polynomial()(a, b) )
which delivers
5 + 4*5^2 + 2*5^3 + 3*5^4 + 3*5^7 + 3*5^8 + 3*5^9 + 4*5^10 + 3*5^11 + 5^12 + 3*5^13 + 2*5^14 + 5^15 + 3*5^16 + O(5^17)
Here, we may go wrong with the "last $p$-adic digits", when precisions do not match in the sense of the (default) precision used inside F.parent()
.
Note: Unfortunately the base ring
sage: R = Qp(5)
sage: R
5-adic Field with capped relative precision 20
sage: R.is_exact()
False
is not an exact field. So sage lets the programmer arrange for controlling precision in the performed operations.