Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: ellisdivisible
Section: elliptic_curves
C-Name: ellisdivisible
Prototype: lGGGD&
Help: ellisdivisible(E,P,n,{&Q}): given E/K and P in E(K),
checks whether P = [n]R for some R in E(K) and sets Q to one such R if so;
the integer n >= 0 may be given as ellxn(E,n).
Doc: given $E/K$ a number field and $P$ in $E(K)$
return $1$ if $P = [n]R$ for some $R$ in $E(K)$ and set $Q$ to one such $R$;
and return $0$ otherwise.
\bprog
? K = nfinit(polcyclo(11,t));
? E = ellinit([0,-1,1,0,0], K);
? P = [0,0];
? ellorder(E,P)
%4 = 5
? ellisdivisible(E,P,5, &Q)
%5 = 1
? lift(Q)
%6 = [-t^7-t^6-t^5-t^4+1, -t^9-2*t^8-2*t^7-3*t^6-3*t^5-2*t^4-2*t^3-t^2-1]
? ellorder(E, Q)
%7 = 25
@eprog\noindent We use a fast multimodular algorithm over $\Q$ whose
complexity is essentially independent of $n$ (polynomial in $\log n$).
Over number fields, we compute roots of division polynomials and the
algebraic complexity of the underlying algorithm is in $O(p^4)$, where $p$ is
the largest prime divisor of $n$. The integer $n \geq 0$ may be given as
\kbd{ellxn(E,n)}, if many points need to be tested; this provides a modest
speedup over number fields but is likely to slow down the algorithm over
$\Q$.