Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Testing latest pari + WASM + node.js... and it works?! Wow.

28495 views
License: GPL3
ubuntu2004
Function: msqexpansion
Section: modular_symbols
C-Name: msqexpansion
Prototype: GGDP
Help: msqexpansion(M,projH,{B = seriesprecision}): M being a full modular
 symbol space, as given by msinit, and projH being a projector on a
 Hecke-simple subspace, return the Fourier coefficients [a_n, n <= B]
 of the corresponding normalized newform. If B omitted, use seriesprecision.
Doc:
 $M$ being a full modular symbol space, as given by \kbd{msinit},
 and \var{projH} being a projector on a Hecke-simple subspace (as given
 by \tet{mssplit}), return the Fourier coefficients $a_n$, $n\leq B$ of the
 corresponding normalized newform. If $B$ is omitted, use
 \kbd{seriesprecision}.

 This function uses a naive $O(B^2 d^3)$
 algorithm, where $d = O(kN)$ is the dimension of $M_k(\Gamma_0(N))$.
 \bprog
 ? M = msinit(11,2, 1); \\ M_2(Gamma_0(11))^+
 ? L = mssplit(M, msnew(M));
 ? msqexpansion(M,L[1], 20)
 %3 = [1, -2, -1, 2, 1, 2, -2, 0, -2, -2, 1, -2, 4, 4, -1, -4, -2, 4, 0, 2]
 ? ellan(ellinit("11a1"), 20)
 %4 = [1, -2, -1, 2, 1, 2, -2, 0, -2, -2, 1, -2, 4, 4, -1, -4, -2, 4, 0, 2]
 @eprog\noindent The shortcut \kbd{msqexpansion(M, s, B)} is available for
 a symbol $s$, provided it is a Hecke eigenvector:
 \bprog
 ? E = ellinit("11a1");
 ? [M,S] = msfromell(E); [sp,sm] = S;
 ? msqexpansion(M,sp,10) \\ in the + eigenspace
 %3 = [1, -2, -1, 2, 1, 2, -2, 0, -2, -2]
 ? msqexpansion(M,sm,10) \\ in the - eigenspace
 %4 = [1, -2, -1, 2, 1, 2, -2, 0, -2, -2]
 ? ellan(E, 10)
 %5 = [1, -2, -1, 2, 1, 2, -2, 0, -2, -2]
 @eprog