"Source: Text/Geometry/CrvHyp.text";
"Line: 2902";
"Date: Fri Sep 26 09:12:34 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/CrvHyp.text, line: 2902
// Example: H137E21 ()
print "Example: H137E21";
ei := GetEchoInput();
SetEchoInput(true);
// Comparison between Shanks and Pollard:
P<x> := PolynomialRing(GF(1000003));
f := x^7 + 123456*x^6 + 123*x^5 + 456*x^4 + 98*x^3 + 76*x^2 + 54*x + 32;
J := Jacobian(HyperellipticCurve(f));
curr_mem := GetMemoryUsage();
ResetMaximumMemoryUsage();
time Order(J : ShanksLimit := 10^15);
assert $1 eq 1001800207033014252;
GetMaximumMemoryUsage() - curr_mem;
delete J`Order;   // clear the result which has been stored
curr_mem := GetMemoryUsage();
ResetMaximumMemoryUsage();
time Order(J : ShanksLimit := 0);
assert $1 eq 1001800207033014252;
GetMaximumMemoryUsage() - curr_mem;
assert $1 eq 0;
SetEchoInput(ei);
