Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: mspadicinit Section: modular_symbols C-Name: mspadicinit Prototype: GLLD-1,L, Help: mspadicinit(M, p, n, {flag}): M being a full modular symbol space, as given by msinit and a prime p, initialize technical data needed to compute with overconvergent modular symbols (modulo p^n). If flag is unset, allow all symbols; if flag = 0, restrict to ordinary symbols; else initialize for symbols phi such that Tp(phi) = a_p * phi, with v_p(a_p) >= flag. Doc: $M$ being a full modular symbol space, as given by \kbd{msinit}, and $p$ a prime, initialize technical data needed to compute with overconvergent modular symbols, modulo $p^n$. If $\fl$ is unset, allow all symbols; else initialize only for a restricted range of symbols depending on $\fl$: if $\fl = 0$ restrict to ordinary symbols, else restrict to symbols $\phi$ such that $T_p(\phi) = a_p \phi$, with $v_p(a_p) \geq \fl$, which is faster as $\fl$ increases. (The fastest initialization is obtained for $\fl = 0$ where we only allow ordinary symbols.) For supersingular eigensymbols, such that $p\mid a_p$, we must further assume that $p$ does not divide the level. \bprog ? E = ellinit("11a1"); ? [M,phi] = msfromell(E,1); ? ellap(E,3) %3 = -1 ? Mp = mspadicinit(M, 3, 10, 0); \\ commit to ordinary symbols ? PHI = mstooms(Mp,phi); @eprog If we restrict the range of allowed symbols with \fl (for faster initialization), exceptions will occur if $v_p(a_p)$ violates this bound: \bprog ? E = ellinit("15a1"); ? [M,phi] = msfromell(E,1); ? ellap(E,7) %3 = 0 ? Mp = mspadicinit(M,7,5,0); \\ restrict to ordinary symbols ? PHI = mstooms(Mp,phi) *** at top-level: PHI=mstooms(Mp,phi) *** ^--------------- *** mstooms: incorrect type in mstooms [v_p(ap) > mspadicinit flag] (t_VEC). ? Mp = mspadicinit(M,7,5); \\ no restriction ? PHI = mstooms(Mp,phi); @eprog\noindent This function uses $O(N^2(n+k)^2p)$ memory, where $N$ is the level of $M$.