Commit 7b338f81 authored by Peter Bruin's avatar Peter Bruin

exploit Frobenius orbits as in Mascot's paper on Hensel-lifting torsion points

parent 63d1f866
......@@ -269,19 +269,30 @@ eval_function(GEN J, GEN D, GEN multiples_O, long *w) {
static GEN
values_from_basis(GEN J, GEN V1, GEN V2, long l, GEN matrix,
GEN multiples_O) {
unsigned long p = curve_base_field_characteristic(J);
pari_sp av = avma;
long i, j, w, W = 0;
GEN D, V;
GEN D, V, v, a;
err_printf("computing function values:");
V = zeromatcopy(l, l);
for (i = 0; i < l; i++) {
for (j = 0; j < l; j++) {
if (!isintzero(gcoeff(V, i + 1, j + 1)))
continue;
err_printf(" (%li, %li)", i, j);
err_flush();
D = jacobian_addflip(J, gel(V1, i + 1), gel(V2, j + 1));
gcoeff(V, i + 1, j + 1) = eval_function(J, D, multiples_O, &w);
W += w;
a = eval_function(J, D, multiples_O, &w);
v = mkvecsmall2(i, j);
while (1) {
gcoeff(V, v[1] + 1, v[2] + 1) = a;
W += w;
v = Flm_Flc_mul(matrix, v, l);
if (!isintzero(gcoeff(V, v[1] + 1, v[2] + 1)))
break;
a = gpowgs(a, p);
}
if (gc_needed(av, 1))
V = gerepilecopy(av, V);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment