American Citizen on Thu, 07 Mar 2024 17:57:05 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: question on inconsistent results for a curve and ellrank() command


Aurel:

Thank you for the reply. It turns out that the curve does have SHA > 1, my best estimate is SHA=9

For those who like to know, this elliptic curve is a bit unusual, as the 4th generator is significantly higher than the other 3.

e = [0,12304376939822994932659524,0,-3648259547053109398533591982691229700073064038400,0] MW_pts = [[1400650711366853768290560,4666571880720187680622289494327841280],[597507505680042881763840,1557660631597565910427943559692743680],[1910041765787625231041280,6699967211953306552674675136155240960],[2283738942442691504242557493982452515296885368573255561307043758442240927185853664/139918493230305356926881857257071496605320691716223246289,143967496803053198802470727018467319173904232793442308182221768412335727985088750240137534120161342906625450912826244360000/1655055948180891329722008983187988514269081118289967648775651182429065015843146253337]]
regulator = 44936.543916...
est_SHA = 9 (from approx. L-series calculations)
pt_heights = [6.4951..., 6.9582..., 7.0529..., 144.5035...]
Will I have to just do multiple runs, and select the run which gives the most found points?

For nearly all of the 328 elliptic curves I am using, ellrank() did find a representative set of the Mordell-Weil basis, only that my program flagged the unusual results coming from this curve and that is how I found out what was happening. I will accept that setting the precision is not the controlling factor here.

Randall

On 3/6/24 23:34, Aurel Page wrote:
Dear Randall,

Bill will confirm, but I think ellrank uses a random search, so the points found may not be the same on several runs. I don't think this has anything to do with the precision.
For instance I get:
? ellrank(E,1)
% = [2, 6, 0, [[-821148234320121552464836608/121, 22227642712180677905417915898820314918912/1331]]]
? ellrank(E,1)
% = [2, 6, 0, [[-371764877985768391740000, 1733635091788436792108632377956904000], [482298396787552594734284800, 10726073559724236251459173261972663500800]]]
? ellrank(E,1)
% = [2, 6, 0, [[1910041765787625231041280, 6699967211953306552674675136155240960]]]
? ellrank(data,1)
% = [4, 6, 0, [[-2604689033065838647568640, 8678086907094504656562057134370808320], [-1406975789099557808651520, 5167717070222070579741742214157519360], [1005530876255752038297064960/81, 44725001024807552828328543783945972536320/729]]]

Note that if you want to start again with higher effort because you did not find all the points, you can provide the previously found points to ellrank (optional argument points).

Cheers,
Aurel

On 07/03/2024 02:12, American Citizen wrote:
Hello:

See attached gp-pari file.

While running my programs I stumbled across an inconsistent results which caused me to take a careful look.

Here are those results involving a certain elliptic curve:

E = [0, 12304376939822994932659524, 0, -3648259547053109398533591982691229700073064038400, 0]

3 points of the 4 points Mordell-Weil basis (set) [ I had to do some work to finally settle down on these 3 points ]

p = [[-999779060917633308399360, 3866142351194747967608412122674782720], [-293883589543938115962240, 1452405131779215974552917691531685120], [-1406975789099557808651520, 5167717070222070579741742214157519360]]

I am trying to recover the 4th point right now.

However when I run the ellrank(E,{effort}) command, differing results come up.

[0, 12304376939822994932659524, 0, -3648259547053109398533591982691229700073064038400, 0] [[-999779060917633308399360, 3866142351194747967608412122674782720], [-293883589543938115962240, 1452405131779215974552917691531685120], [-1406975789099557808651520, 5167717070222070579741742214157519360]]
e is a rank 4 curve with SHA > 1
setting precision = 19
ellrank(E)
[0, 6, 0, []]
ellrank(E,2)
[2, 6, 0, [[-293883589543938115962240, 1452405131779215974552917691531685120]]]
ellrank(E,3)
setting precision = 38
ellrank(E)
[0, 6, 0, []]
ellrank(E,2)
[2, 6, 0, [[-6105797019069920466053760, 15917389406358134595823780451205131520], [-1910041765787625231041280, 6699967211953306552674675136155240960]]]
ellrank(E,3)
setting precision = 57
ellrank(E)
[0, 6, 0, []]
ellrank(E,2)
[2, 6, 0, [[-2604689033065838647568640, 8678086907094504656562057134370808320]]]
ellrank(E,3)
setting precision = 84
ellrank(E)
[0, 6, 0, []]
ellrank(E,2)
[2, 6, 0, [[482298396787552594734284800, 10726073559724236251459173261972663500800]]]
ellrank(E,3)
setting precision = 96
ellrank(E)
[0, 6, 0, []]
ellrank(E,2)
[0, 6, 0, []]
ellrank(E,3)
setting precision = 115
ellrank(E)
[0, 6, 0, []]
ellrank(E,2)
[2, 6, 0, [[-1406975789099557808651520, 5167717070222070579741742214157519360], [-999779060917633308399360, 3866142351194747967608412122674782720]]]
ellrank(E,3)
How would one know which exact precision and which effort setting to use, to recover at least 2 if not 3 points for the Mordell Weil basis??? Right now it appears that this is just hit-or-miss. So how do we aim to get the maximum hit? Some of the attempts come up empty-handed. This doesn't seem right.

Randall