def saturate_rank_one(E, norm_bound):
v = E.simon_two_descent()
Q = v[len(v)-1][0]
if Q.order()
for p in prime_range(norm_bound):
if len(Q.division_points(p)) != 0:
Q = Q.division_points(p)[0]
return Q
def saturate_rank_01(E, norm_bound):
v = E.simon_two_descent()
Q = v[len(v)-1][0]
if Q.order() == +Infinity:
for p in prime_range(norm_bound):
if len(Q.division_points(p)) != 0:
Q = Q.division_points(p)[0]
return Q
else:
return 0
(0 : 0 : 1)
Time: CPU 5.50 s, Wall: 5.72 s
(0 : 0 : 1)
Time: CPU 5.50 s, Wall: 5.72 s
def regulator_new(E):
M = saturate_rank_01(E,20)
if M:
return M.height()
else:
return 1