Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: mfcuspval
Section: modular_forms
C-Name: mfcuspval
Prototype: GGGb
Help: mfcuspval(mf,F,cusp): valuation of modular form F in the space mf at
cusp, which can be either oo or any rational number. The result is
either a rational number or oo if F is zero. Let chi be the Nebentypus of
the space mf; if Q(F) != Q(chi), return the vector of valuations attached to
the [Q(F):Q(chi)] complex embeddings of F.
Doc: valuation of modular form $F$ in the space \kbd{mf} at
\kbd{cusp}, which can be either $\infty$ or any rational number. The
result is either a rational number or $\infty$ if $F$ is zero. Let
$\chi$ be the Nebentypus of the space \kbd{mf}; if $\Q(F) \neq \Q(\chi)$,
return the vector of valuations attached to the $[\Q(F):\Q(chi)]$ complex
embeddings of $F$.
\bprog
? T=mfTheta(); mf=mfinit([12,1/2]); mfcusps(12)
%1 = [0, 1/2, 1/3, 1/4, 1/6, 1/12]
? apply(x->mfcuspval(mf,T,x), %1)
%2 = [0, 1/4, 0, 0, 1/4, 0]
? mf=mfinit([12,6,12],1); F=mfbasis(mf)[5];
? apply(x->mfcuspval(mf,F,x),%1)
%4 = [1/12, 1/6, 1/2, 2/3, 1/2, 2]
? mf=mfinit([12,3,-4],1); F=mfbasis(mf)[1];
? apply(x->mfcuspval(mf,F,x),%1)
%6 = [1/12, 1/6, 1/4, 2/3, 1/2, 1]
? mf = mfinit([625,2],0); [F] = mfeigenbasis(mf); mfparams(F)
%7 = [625, 2, 1, y^2 - y - 1, t - 1] \\ [Q(F):Q(chi)] = 2
? mfcuspval(mf, F, 1/25)
%8 = [1, 2] \\ one conjugate has valuation 1, and the other is 2
? mfcuspval(mf, F, 1/5)
%9 = [1/25, 1/25]
@eprog