@@ -2319,6 +2319,22 @@ def gens(self, proof=None, **kwds):
2319
2319
sage: E1.gens(algorithm="pari") #random
2320
2320
[(-400 : 8000 : 1), (0 : -8000 : 1)]
2321
2321
2322
+ TESTS::
2323
+
2324
+ sage: E = EllipticCurve('389a')
2325
+ sage: len(E.gens())
2326
+ 2
2327
+ sage: E.saturation(E.gens())[1]
2328
+ 1
2329
+ sage: len(E.gens(algorithm="pari"))
2330
+ 2
2331
+ sage: E.saturation(E.gens(algorithm="pari"))[1]
2332
+ 1
2333
+ sage: E = EllipticCurve([-3/8,-2/3])
2334
+ sage: P = E.lift_x(10/9)
2335
+ sage: set(E.gens()) <= set([P,-P])
2336
+ True
2337
+
2322
2338
"""
2323
2339
if proof is None :
2324
2340
from sage .structure .proof .proof import get_flag
@@ -2370,23 +2386,29 @@ def _compute_gens(self, proof,
2370
2386
sage: proved
2371
2387
True
2372
2388
2373
- TESTS::
2374
-
2375
2389
sage: E = EllipticCurve([-127^2,0])
2376
- sage: E.gens(use_database=False, algorithm="pari")
2377
- Traceback (most recent call last):
2378
- ...
2379
- RuntimeError: generators could not be determined. So far we found []. Hint: increase pari_effort.
2380
- sage: E.gens(use_database=False, algorithm="pari",pari_effort=4)
2390
+ sage: E.gens(use_database=False, algorithm="pari",pari_effort=4) # random
2381
2391
[(611429153205013185025/9492121848205441 : 15118836457596902442737698070880/924793900700594415341761 : 1)]
2382
2392
2393
+ TESTS::
2394
+
2395
+ sage: P = E.lift_x(611429153205013185025/9492121848205441)
2396
+ sage: set(E.gens(use_database=False, algorithm="pari",pari_effort=4)) <= set([P+T for T
2397
+ ....: in E.torsion_points()] + [-P+T for T in E.torsion_points()])
2398
+ True
2399
+
2383
2400
sage: E = EllipticCurve([-157^2,0])
2384
2401
sage: E.gens(use_database=False, algorithm="pari")
2385
2402
Traceback (most recent call last):
2386
2403
...
2387
2404
RuntimeError: generators could not be determined. So far we found []. Hint: increase pari_effort.
2388
- sage: E.gens(use_database=False, algorithm="pari",pari_effort=10) # long time
2405
+ sage: ge = E.gens(use_database=False, algorithm="pari",pari_effort=10)
2406
+ sage: ge #random
2389
2407
[(-166136231668185267540804/2825630694251145858025 : 167661624456834335404812111469782006/150201095200135518108761470235125 : 1)]
2408
+ sage: P = E.lift_x(-166136231668185267540804/2825630694251145858025)
2409
+ sage: set(E.gens(use_database=False, algorithm="pari",pari_effort=4)) <= set([P+T for T
2410
+ ....: in E.torsion_points()] + [-P+T for T in E.torsion_points()])
2411
+ True
2390
2412
2391
2413
"""
2392
2414
# If the optional extended database is installed and an
@@ -2532,6 +2554,11 @@ def gens_certain(self):
2532
2554
2533
2555
TESTS::
2534
2556
2557
+ sage: E = EllipticCurve('37a1')
2558
+ sage: P = E([0,-1])
2559
+ sage: set(E.gens()) <= set([P,-P])
2560
+ True
2561
+
2535
2562
sage: E = EllipticCurve([2, 4, 6, 8, 10])
2536
2563
sage: E.gens_certain()
2537
2564
Traceback (most recent call last):
0 commit comments