edgarcosta / endomorphisms

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

separate the 3 methods for upper bounds #2

Open edgarcosta opened 6 years ago

edgarcosta commented 6 years ago

I have now implemented the generic approach for higher genus #8.

We still make available the two other approaches available, which are special cases of the generic one:

If I recall correctly, Davide's approach tackles the product of elliptic curves in more straightfoward way, while the generic code at the moment, tells you do some more work:

[-x^6 + 4*x^4 - 6*x^2 + 3, x, ['RR', 'RR']]: Failed to compute an upper bound!
We have putatively computed eta and t. However, we can't figure out the corresponding Frobenius polynomial for each factor
eta = 2, t = 2

Hopefully tonight, I will polish my code to be less lazy, and then I think we can just have the other two methods as possible alternative methods. How does this sound?

jvoight commented 6 years ago

Thanks Edgar for doing this! I think it's reasonable to stop at some point where you have to do "point counting on a factor", at least until we think about that more carefully. A slightly more helpful output statement would be something like "this abelian variety decomposes into distinct isogeny factors, and we need to be able to factor the Frobenius polynomial according to these factors".

I suppose one really stupid thing to do is to consider all possibilities as they arise: compute cp(T) = c{p,1}(T)c_{p,2}(T) cq(T) = c{q,1}(T)c_{q,2}(T) and just try the two possible matchings {p,1} <-> {q,1} and {p,1} <-> {q,2}. If in both cases you get intersection QQ, then you win. If not, and it looks like there is always a consistent matching where something nontrivial happens, that should be our guess.

I think it'll be fun for people to play around with all three methods, so I'm glad they're all there.

Can you show me a demo of this on Friday?

edgarcosta commented 6 years ago

@jvoight will do.

That is exactly what I meant by "to be less lazy". With this we should tackle without any issue g of modest size (certainly g <= 5)