edgarcosta / endomorphisms

Rigorous computation of the endomorphism ring of a Jacobian
GNU General Public License v2.0
10 stars 8 forks source link

Too small precision in HeuristicEndomorphismFieldAsSplittingField() returns wrong results #74

Open shiva-chid opened 6 months ago

shiva-chid commented 6 months ago
P<x> := PolynomialRing(Rationals());
f := 6394*x^6 + 31183*x^5 + 20576*x^4 - 437722*x^3 + 411052*x^2 - 201058*x + 43872;
X := SimplifiedModel(HyperellipticCurveOfGenus(2,f));

for prec in [30, 100, 1000] do
    try
        EndfieldGalgrp, Endfieldpols := HeuristicEndomorphismFieldAsSplittingField(ChangeRing(X,RationalsExtra(prec)));
        print prec, #EndfieldGalgrp;
    catch e;
        print prec, e;
    end try;
end for;

returns

30 322560
100 Runtime error: Failed to find minimal polynomial using LLL. Try increasing 
the precision.
1000 2
edgarcosta commented 6 months ago

After #75:

30 322560
100 8
1000 4
> Endfieldpols;
[
x - 1,
x^4 + 2*x^3 + 509/577*x^2 - 68/577*x + 76841/665858
]
edgarcosta commented 6 months ago

also

> time HeuristicEndomorphismFieldAsSplittingField(ChangeRing(X,RationalsExtra(10000)));
Permutation group acting on a set of cardinality 5
Order = 4 = 2^2
(1, 2)(3, 4)
(1, 3)(2, 4)
[
x - 1,
x^4 + 2*x^3 + 509/577*x^2 - 68/577*x + 76841/665858
]
Time: 298.750