Open edgarcosta opened 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?
@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)
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:
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?