New experimental GP function 'ellheegnertwist'

Bill Allombert <[email protected]> Tue, 21 Jul 2026 15:28:51 +0200
Newsgroups gmane.comp.mathematics.pari.devel
Message-ID <al90E5eS8bXy39aD@seventeen>
Dear PARI-dev,

I have added a new epxerimental GP function ellheegnertwist() that use a
different algorithm than ellheegner() which is faster for twists by large
discriminants.

For example:

? E=3Dellinit([-157^2,0])
%1 =3D [0,0,0,-24649,0,0,-49298,0,-607573201,1183152,0,958468597212736,1728=
,Vecsmall([1]),[Vecsmall([128,1])],[0,0,0,0,0,0,0,0]]
? ellheegnertwist(E)
%2 =3D [69648970982596494254458225/166136231668185267540804,538962435089604=
615078004307258785218335/67716816556077455999228495435742408]
  ***   last result computed in 66 ms.
? ellheegner(E)
%3 =3D [69648970982596494254458225/166136231668185267540804,538962435089604=
615078004307258785218335/67716816556077455999228495435742408]
  ***   last result computed in 1,061 ms.

? E=3Dellinit("27a1");F=3Delltwist(E,20021);
? P=3Dellheegnertwist(F)
%21 =3D [462187990027564409938776933325806377737105147957336077191871156878=
124463962918902563016358000576814943397231336390279192386124536425868730639=
914007186290620081019831068166263867981945812833149140119197664602721731118=
661665699433781287251876755814222583556420127440342825580039181092921111351=
777037931479629571365112249337050758109212137514616912663696620921833978606=
/11685042109023289191596196264504592197228063661878080714469694158113423484=
545027967807315972151592060981749708472443593613758724491690025811511364801=
234234321929192985835910335926046736171090875129716556249618017366376372920=
074586101125038061402391013025952837787121912043015365455677570343009773629=
076521562499495692508166729435580709556595541548295759730041225,11132352177=
578924215872407898505308673367058719903952922208768405656131690236058741329=
591827547551713026667398286060866373392782564763448166725504137637272901560=
261393659588110991818490056608303721198304039256706182684898398335961639922=
660952375908440148581673239760956820975891689118500246445078049987784859826=
061055463093072766774586130059685471042825778564180227792673085531467325309=
198822153592303447387341369696737416274474078354161021042409876027047769995=
386486832720685195553098278470620525225862472636506307985749800061492923076=
0089101668121/3994343616650143411901589059204396730990201509676015856186185=
559265329098494291406774176919299768947568092147363237939292334133830066232=
863552313850434303341732609464024813462708791229657671781170371721624807473=
962006076665893468737062511195877597901834178557885404136644903955753723195=
877955980650663332486217329122532442414917130627501762087598288959067385299=
344417446247928300529422588531143714085992997451133639043591096380624478393=
525353989641064125544261676570490867028059517983975770369112010473848337392=
2919495530988212950058987142875]
  ***   last result computed in 1,589 ms.

? E=3Dellinit("11a1");F=3Delltwist(E,11*9631);
? P=3Dellheegnertwist(F)

it take some time but then you get the origin of the point in the post
"Game: find the curve" (April 2024), see
https://pari.math.u-bordeaux.fr/archives/pari-users-2404/msg00006.html
? E=3Dellinit("11a1");F=3Delltwist(E,11*9631);
? P=3Dellheegnertwist(F);
  ***   last result: cpu time 8min, 22,937 ms, real time 44,093 ms.
? sizebyte(P)
%5 =3D 5856

Some inspiration for the algorithm:

Mock Heegner Points and Congruent Numbers
Paul Monsky
Mathematische Zeitschrift (1990) Volume: 204, Issue: 1, page 45-68
ISSN: 0025-5874; 1432-1823
https://gdz.sub.uni-goettingen.de/id/PPN266833020_0204
https://link.springer.com/article/10.1007/BF02570859

Regulators of rank one quadratic twists
Christophe Delaunay, Xavier-Francois Roblot
Journal de theorie des nombres de Bordeaux, Tome 20 (2008) no. 3, pp. 601-6=
24
https://jtnb.centre-mersenne.org/item/10.5802/jtnb.643.pdf

and of course:
Computation of mock Heegner points on modular elliptic curves,
Andre Edward Robatino, Ph.D. Thesis

Many thanks to Randall Rathburn for preserving Robatino work for 20 years a=
nd bringing it
to our attention.

Cheers,
Bill and Henri.